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
Is there a work around for this on the developer's side?
Is there a work around for this on the developer's side?
Is there a workaround for this on the developer's side?
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.
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.
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.
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.