mixin_ class_ declaration_ extends_ not_ object
The class '{0}' can't be declared a mixin because it extends a class other than 'Object'.
Description
#
The analyzer produces this diagnostic when a class that is marked with
the mixin
modifier extends a class other than Object
. A mixin class
can't have a superclass other than Object
.
Example
#
The following code produces this diagnostic because the class B
, which
has the modifier mixin
, extends A
:
class A {}
mixin class B extends A {}
Common fixes
#
If you want the class to be used as a mixin, then change the superclass to
Object
, either explicitly or by removing the extends clause:
class A {}
mixin class B {}
If the class needs to have a superclass other than Object
, then remove
the mixin
modifier:
class A {}
class B extends A {}
If you need both a mixin and a subclass of a class other than Object
,
then move the members of the subclass to a new mixin, remove the mixin
modifier from the subclass, and apply the new mixin to the subclass:
class A {}
class B extends A with M {}
mixin M {}
Depending on the members of the subclass this might require adding an on
clause to the mixin.
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-9-4. View source or report an issue.