| Index: pkg/analyzer/lib/src/dart/element/element.dart
|
| diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
|
| index e7b6d5ca6103c70a790da6c592ba89bb32b762c8..509dd4c1b5f544b8a7e16f57469d736a093d0829 100644
|
| --- a/pkg/analyzer/lib/src/dart/element/element.dart
|
| +++ b/pkg/analyzer/lib/src/dart/element/element.dart
|
| @@ -336,7 +336,22 @@ class ClassElementImpl extends ElementImpl implements ClassElement {
|
| }
|
|
|
| @override
|
| - bool get isValidMixin => hasModifier(Modifier.MIXIN);
|
| + bool get isValidMixin {
|
| + if (!context.analysisOptions.enableSuperMixins) {
|
| + if (hasReferenceToSuper) {
|
| + return false;
|
| + }
|
| + if (!supertype.isObject) {
|
| + return false;
|
| + }
|
| + }
|
| + for (ConstructorElement constructor in constructors) {
|
| + if (!constructor.isSynthetic && !constructor.isFactory) {
|
| + return false;
|
| + }
|
| + }
|
| + return true;
|
| + }
|
|
|
| @override
|
| ElementKind get kind => ElementKind.CLASS;
|
| @@ -386,13 +401,6 @@ class ClassElementImpl extends ElementImpl implements ClassElement {
|
| return null;
|
| }
|
|
|
| - /**
|
| - * Set whether this class is a valid mixin.
|
| - */
|
| - void set validMixin(bool isValidMixin) {
|
| - setModifier(Modifier.MIXIN, isValidMixin);
|
| - }
|
| -
|
| @override
|
| accept(ElementVisitor visitor) => visitor.visitClassElement(this);
|
|
|
|
|