- Software Installation
- EiffelStudio How To's
- EiffelStudio: A Guided Tour
- EiffelStudio Reference
- EiffelStudio release notes
- EiffelStudio: General interface description
- Browsing tools
- EiffelStudio Editor
- Contract Editor tool
- EiffelStudio: Project settings window
- Compiler
- Debugger
- Error List Tool
- Diagram tool
- Metrics tool
- Console tool
- Outputs tool
- Eiffel Information System
- AutoTest
- Wizards and dialogs
- EiffelStudio Preferences
- Formatted information about compiled classes and features
- Beta documentation
Major changes between ISE Eiffel 6.8 and ISE Eiffel 7.0
Contents
|
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:
make (...) do ... -- Some attributes are not initialized. die (1) -- Compiler does not report VEVI errors. end
- or
make (...) do ... -- Some attributes are not initialized. check implemented: False then end -- Compiler does not report VEVI errors. end
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
acrossandsomefrom the provisional syntax variant to the standard one. - Made class
BIT_REFoptional as soon as aBITtype is not used in a system (to be ready to drop support forBITtypes in the next releases). - Replaced keyword completion for
indexingwith 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 Currentas attached regardless of attached-by-default option. - Prohibited assignment of
Voidto a variable of a reference formal generic type that has nodetachablemark. - 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
VTCTerror andVTCMwarning 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 Currentwhen 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.