I just filed this request, which I hope you'll find interesting. No, actually, I hope you'll endorse it enthusiastically, at least by adding it to your watch list. :)

 <http://www.realsoftware.com/feedback/viewreport.php?reportid=xvdanwpv>

The compiler sees methods in super/subclasses with the same declaration as "linked" in the sense that they occupy the same position in a vtable, and a call to a base class type may actually end up in a subclass's implementation.

Currently, it is far too easy to break this link when changing a method declaration. You have to manually make sure to change it in the rest of the class hierarchy, exactly the same way. If you make a mistake, it is a silent failure: your code still runs but no longer invokes the method it should, possibly under only some circumstances. This can a very costly mistake, and one the IDE should help us avoid.

I would like to see three buttons in the declaration pane. One has an icon representing "superclasses," and a badge showing how many superclasses declare this same method. Clicking it pops up a menu listing those superclasses, and picking an item from this menu jumps to the implementation of this method in that superclass.

A second button is similar, but for subclasses. The badge shows how many subclasses declare the same method, and the pop-up menu lets you jump to any subclass's implementation of this method.

Finally, a little "chain link" sticky button or checkbox appears next to the subclasses button. When this button is in its "down" or "checked" state, it means that any change you make in this declaration pane will be made to all subclasses as well. This should be checked by default anytime the number of subclasses is not zero, but of course the user can turn it off if they really do intend to break the overriding.

This is a simple UI that brings a lot of benefit: you can see, without touching anything, how many superclasses and subclasses implement the same method; you can quickly navigate to any of those; and you can choose to automatically update all subclasses when you change a declaration in the superclass.

This issue is probably my #1 time-waster and error-maker in REALbasic, and fixing it would be a great boon to my productivity.


--

Joseph J. Strout
[EMAIL PROTECTED]
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to