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
From:ted_eiffel    Date:2009/08/05    Status: Suspended    Download   
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.

From:prestoat2000    Date:2006/07/30    Download   
Attachments for problem report #10828

Attachment: test.e     Size:560
Attachment: test1.e     Size:340