PR# 18448 Change to named tuple member names not being recompiled correctly
Problem Report Summary
Submitter: finnianr
Category: Compiler
Priority: Low
Date: 2012/12/13
Class: Bug
Severity: Non-critical
Number: 18448
Release: 7.1.8.8986
Confidential: No
Status: Open
Responsible:
Environment: Ubuntu Linux x86_64
Synopsis: Change to named tuple member names not being recompiled correctly
Description
Under certain circumstances, changing a tuple member name does not cause references to the old name to be picked up as a compiler error message. In others words the old name is still being cached somewhere and hasn't been updated. If any references are now changed to the new name, the compiler reports that the member doesn't exist, which is a false error message.
To Reproduce
These are the circumstances in which it happened. In the TUPLE below I changed a member name from 'is_path_required' to 'path_exists'. However I did not change the reference to the old name in feature {PYXIS_TO_XML_APP}.specify_arguments. It compiled without any errors and this shouldn't be. -- Class fragment 1 deferred class EL_UNIVERSAL_SUB_APPLICATTION . . feature {NONE} -- Implementation last_argument_spec: like Type_argument_spec feature {NONE} -- Type definitions Type_argument_spec: TUPLE [ word_option, help_description: STRING; is_required, path_exists: BOOLEAN encoding: INTEGER; default_value: ANY ] once end end -- Class fragment 2 class PYXIS_TO_XML_APP . . feature {NONE} -- Implementation specify_arguments do specifiy_required_argument (1, "in", "Input file path") last_argument_spec.is_path_required := True specifiy_optional_argument (2, "out", "Output file path", create {FILE_NAME}.make) end end
Problem Report Interactions
I tried the obvious routes to get it to recompile correctly, but in the end I had to do a clean build.