Version
Major changes between ISE Eiffel 6.8 and ISE Eiffel 7.0
What's new
- Supported development of incomplete void-safe classes (so called "design mode") by avoiding reporting void-safety errors for unreachable code, e.g. for the code after a call to a feature that never returns normally, say, to
{EXCEPTIONS}.die . As a result it became possible to declare a creation procedure that does not initialize attached attributes properly (because the corresponding effective classes are not available yet), for example:
or
Improvements
- Enforced full class checking for void-safe classes.
- Disallowed void-safety mismatch when a descendant or a client have stricter void-safety setting than the corresponding ancestor or supplier.
- Taken into account changes of class options when performing recompilation.
- Changed processing of "stable" features to follow the recent modifications to the standard.
- Avoided reporting errors related to variable initialization when the right-hand part of assignment to this variable causes an error.
- Promoted keywords
across andsome from the provisional syntax variant to the standard one. - Made class
BIT_REF optional as soon as aBIT type is not used in a system (to be ready to drop support forBIT types in the next releases). - Replaced keyword completion for
indexing with keyword completion fornote .
Changes
- Changed default options: default syntax variant is set to standard, attached-by-default is set to true unless specified otherwise.
- Moved attached-by-default option to Advanced section.
Bug fixes
Language issues
- Considered
like Current as attached regardless of attached-by-default option. - Prohibited assignment of
Void to a variable of a reference formal generic type that has nodetachable mark. - Supported attachment marks on the type
NONE , including implicit setting via attached-by-default option. - Corrected processing of self-initializing attributes to follow the standard rules.
Compiler issues
- Included location information in
VTCT
error andVTCM
warning reports. - Fixed several recompilation issues.
- Fixed several cases that could lead to a compiler crash.
- Corrected checks for attachment status of variables to include not only a body of a loop, but also its invariant, variant and exit condition when a variable may be detached in the loop body.
- Taken into account attachment status of
like Current when checking for conformance. - Taken separateness status into account when checking for formal generic type equality and conformance as well as when substituting actual generics.
- Made custom conditions in ECF case-insensitive to be in line with the processing of custom variables.
- Changed context of inherited assertion evaluation to use the one of the inherited assertion so that the types are evaluated correctly (this in particular affects qualified anchored types that involve formal generics that are no longer present in a descendant class).
Runtime/code generation issues
- Fixed several issues with separate feature calls.
Store/Retrieve issues
- Fixed an issue when there are too many mismatches in a storable, the retrieval would fail with an invalid object being retrieved.
Back to Compiler History