PR# 19923 Multiple Inheritance selecting wrong attribute in out routine

Problem Report Summary
Submitter: brotherbill
Category: EiffelStudio
Priority: High
Date: 2024/06/06
Class: Bug
Severity: Serious
Number: 19923
Release: 23.09
Confidential: No
Status: Analyzed
Responsible:
Environment: win
Synopsis: Multiple Inheritance selecting wrong attribute in out routine

Description
FRENCH_US_DRIVER in out routine on line 77 has french_address.out in the source code, but is using the value of us_address.out.
To Reproduce
Execute the app, debugging FRENCH_US_DRIVER out routine.
After line 77 executes, in the debugger, french_address has the correct french_address, but Result has appended to it the us_address.

If lines 14 - 18 are uncommented, and lines 29-33 are commented, Result has appended to it the french_address.
Problem Report Interactions
From:brotherbill@duck.com    Date:2024/06/29    Status: Analyzed    Download   
Hacked a workaround.  See attachment.

Attachment: p544-548.zip     Size:4463
From:brotherbill    Date:2024/06/26    Status: Analyzed    Download   
Is there a work around for this on the developer's side?

From:brotherbill    Date:2024/06/26    Status: Analyzed    Download   
Is there a work around for this on the developer's side?

From:brotherbill    Date:2024/06/26    Status: Analyzed    Download   
Is there a workaround for this on the developer's side?

From:jfiat_es    Date:2024/06/26    Status: Analyzed    Download   
Dear William,

This issue is indeed an annoying issue, however it will not be solve in the near future as it is quite complex to solve without having significant performance loss.
And also this pattern is not that frequent in usual project.
This issue exists also in other Eiffel implementation such as GoboEiffel.

When we find a proper solution, we will let you know.


From:brotherbill    Date:2024/06/23    Status: Open    Download   
Using the debugger, make_french_us_driver, 
after french_address := a_french_address
the debugger has value of `french_address' as "1 Eiffel Tower, Paris, France"' as expected.
The next 5 lines have the "bug", which is that french_address is Void.
The debugger says that a_french_address is a STRING_8 with expected content, but the attachment query and the print routine both say it is void.

I also removed any side issues of it being a SCOOP project.

It does this in Eiffel Studio version 24.05.

The zip file, including EIFGENs folder is at: https://www.adrive.com/public/Q7EUFW/p544-548.zip

I would like to have this working this week, as the Udemy Eiffel Course is going live no later than Thursday, June 27, 2024.

From:brotherbill    Date:2024/06/23    Status: Open    Download   
Using the debugger, make_french_us_driver, 
after french_address := a_french_address
the debugger has value of `french_address' as "1 Eiffel Tower, Paris, France"' as expected.
The next 5 lines have the "bug", which is that french_address is Void.
The debugger says that a_french_address is a STRING_8 with expected content, but the attachment query and the print routine both say it is void.

I also removed any side issues of it being a SCOOP project.

It does this in Eiffel Studio version 24.05.

The zip file, including EIFGENs folder is at: https://www.adrive.com/public/Q7EUFW/p544-548.zip

I would like to have this working this week, as the Udemy Eiffel Course is going live no later than Thursday, June 27, 2024.

From:brotherbill    Date:2024/06/23    Status: Open    Download   
Using the debugger, make_french_us_driver, 
after french_address := a_french_address
the debugger has value of `french_address' as "1 Eiffel Tower, Paris, France"' as expected.
The next 5 lines have the "bug", which is that french_address is Void.
The debugger says that a_french_address is a STRING_8 with expected content, but the attachment query and the print routine both say it is void.

I also removed any side issues of it being a SCOOP project.

It does this in Eiffel Studio version 24.05.

The zip file, including EIFGENs folder is at: https://www.adrive.com/public/Q7EUFW/p544-548.zip

I would like to have this working this week, as the Udemy Eiffel Course is going live no later than Thursday, June 27, 2024.

From:brotherbill    Date:2024/06/06    Download   
Attachments for problem report #19923

Attachment: p544-548.zip     Size:4110