PR# 16320 Wrong Clickable and Flat forms for class after VHRC(1) error
Problem Report Summary
Submitter: prestoat2000
Category: EiffelStudio
Priority: Medium
Date: 2009/09/30
Class: Bug
Severity: Serious
Number: 16320
Release: 6.5.80945
Confidential: No
Status: Analyzed
Responsible:
Environment: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.9.0.10) Gecko/2009042715 Firefox/3.0.10
Solaris 10 on SPARC
Synopsis: Wrong Clickable and Flat forms for class after VHRC(1) error
Description
After initial compilation, introducing a VHRC(1) error and then looking at the Clickable or Flat form of a class shows the wrong information.
To Reproduce
Compile with attached classes and config file. Examine Clickable form for class TEST1. Looks correct (includes feature `stoat'). Change name of `stoat' in TEST1 to `toat'. Compile. When estudio reports VHRC(1) error, examine the Clickable or Flat form for TEST1. Feature `toat' is not there, nor is is there under its previous name `stoat'. Now look at the Attributes or Exported Features format for TEST1. Feature `toat' correctly appears in both of these formats.
Problem Report Interactions
I reported this as a bug because if I compile the final classes (with `toat' instead of `stoat') from scratch, the Flat form of TEST1 looks correct. I understand that it may not be possible to produce a reasonable Clickable or Flat form if compilation did not succeed, but since estudio was able to do so in the case of a "from scratch" compilation, I thought it should be able to do it after an incremental change as well. Also, the compiler seems to know that `toat' is an attribute since it shows it in the Attributes format, which indicates (from a naive point of view anyway) that it ought to show up in the Clickable format.
David, I'm not so sure this is actually a bug. `toat' doesn't appear because it is a new feature and the compilation didn't succeed, so all bets are off. If you introduce an VHRC(1) error on an existing feature - instead of changing the feature `stoat' to `toat', alter the rename clause to rename a non-existing feature. The compiler removed the `stoat' feature and tried to add `toat', so it makes sense that an incomplete compilation would not show `toat' in the flat form.