This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 16447 - Inheritance loop
Summary: Inheritance loop
Alias: None
Product: WebAppsWG
Classification: Unclassified
Component: WebIDL (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Cameron McCormack
QA Contact: public-webapps-bugzilla
Depends on:
Reported: 2012-03-20 14:40 UTC by Marcos Caceres
Modified: 2012-03-31 21:14 UTC (History)
2 users (show)

See Also:


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.