PR# 12282 Expression with INTEGER_32 times REAL_64 interpreted as INTEGER_32 by full class checker

Problem Report Summary
Submitter: prestoat2000
Category: Compiler
Priority: Medium
Date: 2007/03/12
Class: Bug
Severity: Serious
Number: 12282
Release: 6.0.67183
Confidential: No
Status: Closed
Responsible: manus_eiffel
Environment: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8.0.7) Gecko/20060915 Firefox/1.5.0.7 Solaris 9 on SPARC
Synopsis: Expression with INTEGER_32 times REAL_64 interpreted as INTEGER_32 by full class checker

Description
An expression that is an INTEGER_32 times a REAL_64 is treated as being
of type INTEGER_32 by the full class checker, though it produces the
correct result when full class checking is turned off.
To Reproduce
Compile with attached classes and .ecf file.
Compiler reports VUAR(2) error, where it seems to be interpreting an
expression that is INTEGER_32 * REAL_64 as being of type INTEGER_32.

Error code: VUAR(2)
Type error: non-conforming actual argument in feature call. 
What to do: make sure that type of actual argument conforms to type
  of corresponding formal argument. 

Class: TEST
Source class: TEST1
Feature: try
Called feature: min (other: [like Current] INTEGER_32): [like Current] INTEGER_32 from COMPARABLE
Argument name: other
Argument position: 1
Actual argument type: REAL_64
Formal argument type: INTEGER_32
Line: 10
      do
->      x := (2 * double1).min (double2)

Now change full_class_checking to false.  Compile.  Execute system.
Produces expected result where `2 * double1' is a REAL_64, not an INTEGER_32.
Problem Report Interactions
From:prestoat2000    Date:2008/10/13    Status: Closed    Download   
This seems to be fixed by rev 74890.  Test svalid001 passes with rev 75070.
Closing report.

From:manus_eiffel    Date:2008/05/05    Download   
I've modified test#svalid001 to re-exhibit the problem.

From:manus_eiffel    Date:2008/04/18    Status: Analyzed    Download   
Actually this has not been fixed but somehow it is getting through. I'm reopening it until I find why it seems to be fixed.

From:prestoat2000    Date:2008/04/18    Status: Closed    Download   
This seems to be fixed in 6.2.72969.  Compiler accepts classes with 
full_class_checking enabled, as it should.  Closing report.

From:manus_eiffel    Date:2007/03/12    Status: Analyzed    Download   
I already have an eweasel test for it, it is svalid001. I hope to be able to fix it this week. At the moment the full class checker will fail each time you perform the check of a routine call involving a conversion.

From:prestoat2000    Date:2007/03/12    Download   
Attachments for problem report #12282

Attachment: test.e     Size:80
Attachment: test1.e     Size:232
Attachment: test.ecf     Size:1003