PR# 19592 Client set of a feature
Problem Report Summary
Submitter: gobobe
Category: Compiler
Priority: Low
Date: 2019/10/19
Class: Bug
Severity: Non-critical
Number: 19592
Release: 19.09
Confidential: No
Status: Open
Responsible:
Environment: win
Synopsis: Client set of a feature
Description
The release notes of 19.07 I can read: ~~ compiler: test#valid297, test#valid298 — Changed rules how export status of features is computed **to follow the standard** to avoid CAT calls: a feature could be made available only to more classes, not fewer. ~~ It looks like a case has been forgotten: when there is a New_export clause in the inheritance clause and the feature is redeclared: ~~~~~~~~~~~~~~ class FOO feature {A} f do ... end end ~~~~~~~~~~~~~~ class BAR inherit FOO export {B} f redefine f feature {C} f do ... end end ~~~~~~~~~~~~~~~ According to the ECMA standard, `f` should be exported to {A, B, C}. But it looks like in EiffelStudio it is only exported to {A, C}. See "Definition: Client set of a feature" in ECMA standard, section 8.7.12. -- Eric Bezault
To Reproduce
Problem Report Interactions
The `gecop` test cases for the definition of client set can be found here: https://github.com/gobo-eiffel/gobo/tree/master/tool/gecop/validation/definition/dlcf
EiffelStudio also erroneously claims that `f` is not exported to ZZ in the following cases: ~~~~~~~~~~~~~~~~~~~~~~ class CC inherit BB export {YY} f end BB export {ZZ} f end end ~~~~~~~~~~~~~~~~~~~~~~ class CC inherit BB export {YY} f end BB export {ZZ} all end end ~~~~~~~~~~~~~~~~~~~~~~ class CC inherit BB export {YY} all end BB export {ZZ} all end ANY end ~~~~~~~~~~~~~~~~~~~~~~