[[Property:modification_date|Wed, 25 Jul 2018 07:17:36 GMT]]
[[Property:publication_date|Wed, 27 Jun 2018 08:33:05 GMT]]
[[Property:uuid|73F20392-AB22-4CD6-BFE5-83296B8BD64B]]
[[Property:title|Release notes for EiffelStudio 18.07]]
[[Property:link_title|18.07]]
[[Property:weight|0]]

==Graphical environment==
===Improvements ===
* Extended sets of constructs checked by some default rules of the code analyzer and made sure the checks do not trigger false positives.
* The execution parameters can be automatically loaded from the default file saved from a previous execution session (this way, an Eiffel project can have default execution parameters).
* The debugger string viewer now displays information about the current cursor (character, position, ...). In addition, a new "JSON" string debugger viewer is available.

===User changes===
* Made completion more consistent: the selection list is shown even when there is just one item.
* Used single-click for completion dialog. And show tool-tip when the pointer is over the entry.
* New icons for '''class''' features (implying minor changes on existing features icons).
* The auto-completion is not triggered anymore for `|.`  or  `..` cases.

==Compiler==
* It is now possible to extend a project target from a different project (ECF).
* The rules for '''class''' features were relaxed.  Re-declaration into or joining with a class feature is valid as soon as combined assertions satisfy the class feature conditions. A non-static external and constant feature automatically gets a class post-condition if its contracts do not involve constructs that can access Current object .
* Updated the Eiffel grammar to support bracket expressions as bracket targets (such as `table[x][y][z]`)
* Supported detection of '''VHPR(5)''' violations for arbitrary ancestors, not just for immediate parents. This may be a breaking change for classes that inherit different generic derivations of the same class.
* Added detection of a type mismatch between a manifest array and a target of the reattachment where the manifest array is used for projects created before 18.01 release to facilitate migration to the new typing rules for manifest arrays. A per-library option and a project-wide setting are available to control the checks.

==Libraries==
* EiffelBase:
** Added `{EXECUTION_ENVIRONMENT}.available_cpu_count`.
** Relaxed a precondition of `{ARRAY}.subarray` to allow for calling it on empty arrays.
**Marked many features of Base library as class ones to make them usable for non-object calls.
**Added a feature `{ARRAY}.force_and_fill` that works like `{ARRAY}.force`, but fills previously unoccupied positions with the specified value rather than with a default one.
* EiffelProcess: Marked features of `BASE_PROCESS_FACTORY`, `PROCESS_FACTORY`, and `PROCESS_INFO` as class ones to make them usable for non-object calls.
* EiffelWeb: it is now possible to redefine the default http response when an exception occurs.



----

See [https://dev.eiffel.com/EiffelStudio_18.07_Releases change log] for more details.