Liberty Eiffel - Tasks: task #12654, add warning in case of effectless...
You are not allowed to post comments on this tracker with your current authentication level.
task #12654: add warning in case of effectless command executed on expanded type
Submitter: | Cyril Adrian <cadrian> | ||
Submitted: | Fri 07 Jun 2013 08:26:15 AM UTC | ||
Should Start On: | Thu 06 Jun 2013 10:00:00 PM UTC | Should be Finished on: | Thu 06 Jun 2013 10:00:00 PM UTC |
Category: | SmartEiffel | Priority: | 5 - Normal |
Status: | None | Assigned to: | None |
Percent Complete: | 0% | Open/Closed: | Open |
Fixed Release: | None | Planned Release: | None |
Effort: | 0.00 |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
Carbon-Copy List
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follows 1 latest change.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2013-06-07 | cadrian | Category | None | SmartEiffel |
Powered by Savane 3.13-d3ae.
Corresponding source code
https://github.com/LibertyEiffel/Liberty/issues/68
Liberty should issue a warning in case a command is executed on a qualified expression of expanded type.
See also discussion on
http://wiki.liberty-eiffel.org/index.php/Expanded_or_reference#Traps_to_avoid_with_expanded_classes
For discussion here:
assume a force_to_bounds(a, b: INTEGER) feature in class INTEGER
class AUX
int: INTEGER
end
class TEST
test: is
local
a_int: INTEGER
do
create a_aux
a_aux.int.force_to_bounds(1, 2) -- [1] this has no effect and shall emit the warning
a_int.force_to_bounds(1, 2) -- [2] this has effect and shall just work
my_int.force_to_bounds(1, 2) -- [3] this has effect and shall just work
end
my_int: INTEGER
end
The warning shall occur, whenever command (or other feature call with side effects on the call target) is called on a foreign target I. e. with a statement containing at least two dots (.) before the command.
Commands directly executed on local variables or attributes of Current should be find from my understanding.