Skip to main content

recursive_interface_inheritance

'{0}' can't be a superinterface of itself: {1}.

'{0}' can't extend itself.

'{0}' can't implement itself.

'{0}' can't use itself as a mixin.

'{0}' can't use itself as a superclass constraint.

Description

#

The analyzer produces this diagnostic when there's a circularity in the type hierarchy. This happens when a type, either directly or indirectly, is declared to be a subtype of itself.

Example

#

The following code produces this diagnostic because the class A is declared to be a subtype of B, and B is a subtype of A:

dart
class A extends B {}
class B implements A {}

Common fixes

#

Change the type hierarchy so that there's no circularity.