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
:
class A extends B {}
class B implements A {}
Common fixes
#Change the type hierarchy so that there's no circularity.
Unless stated otherwise, the documentation on this site reflects Dart 3.7.3. Page last updated on 2025-05-08. View source or report an issue.