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
From:finnianr    Date:2012/12/13    Download   
I tried the obvious routes to get it to recompile correctly, but in the end I had to do a clean build.