PR# 10828 Extra parentheses around operator feature call that was identifier call in ancestor
Problem Report Summary
Submitter: prestoat2000
Category: EiffelStudio
Priority: Medium
Date: 2006/07/30
Class: Bug
Severity: Non-critical
Number: 10828
Release: 5.7.61824
Confidential: No
Status: Suspended
Responsible:
Environment: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.7) Gecko/20060120
Solaris 10 on x86
Synopsis: Extra parentheses around operator feature call that was identifier call in ancestor
Description
You already know about this, but I wanted to put it in the list so it might eventually be fixed. A call to an operator feature that was a call to an identifier feature in the ancestor class has an extra set of parentheses around it that should not be there. See flat form of feature `infix "@hamster"' in class TEST after compiling with attached classes.
To Reproduce
Problem Report Interactions
With current implementation, this is not easy to fix. Since a call implies the top precedence. Parentheses are needed when you have something like this in TEST1: infix "@wimp", hamster (n: INTEGER): TEST1 is do print (@weasel Current); print (turkey); print (Current @wimp 29); print (hamster (47).hamster (47)); end without parentheses, the flat view will look like: infix "@hamster" (n: INTEGER_32): TEST1 -- (from TEST1) do print (Current.weasel) print (@turkey Current) print (Current.wimp (29)) print (Current @hamster (47).hamster (47)) end The last line is not valid code. Now suspend until we have a better solution.