Bug 16447 - Inheritance loop
Inheritance loop
Product: WebAppsWG
Classification: Unclassified
Component: WebIDL
PC All
: P2 normal
: ---
Assigned To: Cameron McCormack
Depends on:
  Show dependency treegraph
Reported: 2012-03-20 14:40 UTC by Marcos Caceres
Modified: 2012-03-31 21:14 UTC (History)
2 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Marcos Caceres 2012-03-20 14:40:01 UTC
The following is a statement of fact (drop "MUST NOT" and say "can't"):

An exception must not be declared such that its inheritance hierarchy has a cycle. That is, an interface A cannot inherit from itself, nor can it inherit from another interface B that inherits from A, and so on.

The inheritance loop check needs to be performed during binding (it is redundant to say MUST here).
Comment 1 Marcos Caceres 2012-03-21 12:10:07 UTC
I've thought a bit more about this one... keep it. But the algorithm in the binding section needs to take this requirement into consideration! I.e., binding needs to have error handling defined, if it doesn't already. And I don't think it currently does.
Comment 2 Cameron McCormack 2012-03-21 22:56:22 UTC
Do you mean the requirements for the prototype property in #es-interfaces needs to handle invalid IDL like

  interface A : B { };
  interface B : A { };

?  I don't think we really need to.  It's clearly an error, and we don't want implementors to deal with the problem in some way, we want the specs to be fixed. :)
Comment 3 Marcos Caceres 2012-03-31 21:14:50 UTC
ok, fair enough. Easy enough to fix later if it comes up as an issue.