Stop using old-style supermixin syntax. (#1794)
* Disable supermixins
* Avoid old-style supermixins while maintaining Dart 2.0 compatible
* Enable stable again
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 234eada..055e5e7 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,6 +1,4 @@
analyzer:
- language:
- enableSuperMixins: true
exclude:
- 'doc/**'
- 'lib/src/third_party/pkg/**'
diff --git a/lib/src/model.dart b/lib/src/model.dart
index ec73332..6a5d129 100644
--- a/lib/src/model.dart
+++ b/lib/src/model.dart
@@ -1377,9 +1377,8 @@
}
/// Classes extending this class have canonicalization support in Dartdoc.
-abstract class Canonicalization extends Object
- with Locatable
- implements Documentable {
+abstract class Canonicalization
+ implements Locatable, Documentable {
bool get isCanonical;
Library get canonicalLibrary;
@@ -5272,7 +5271,7 @@
/// accessing private member variables. Do not call any methods or members
/// excepting [name] and the private Lists below before finishing initialization
/// of a [TopLevelContainer].
-abstract class TopLevelContainer extends Nameable {
+abstract class TopLevelContainer implements Nameable {
List<Class> _classes;
List<Enum> _enums;
List<Mixin> _mixins;
@@ -5317,8 +5316,8 @@
/// A set of libraries, initialized after construction by accessing [_libraries].
/// Do not cache return values of any methods or members excepting [_libraries]
/// and [name] before finishing initialization of a [LibraryContainer].
-abstract class LibraryContainer extends Nameable
- implements Comparable<LibraryContainer> {
+abstract class LibraryContainer
+ implements Nameable, Comparable<LibraryContainer> {
final List<Library> _libraries = [];
List<Library> get libraries => _libraries;
@@ -5587,7 +5586,7 @@
/// A [LibraryContainer] that contains [Library] objects related to a particular
/// package.
class Package extends LibraryContainer
- with Locatable, Canonicalization, Warnable
+ with Nameable, Locatable, Canonicalization, Warnable
implements Privacy, Documentable {
String _name;
PackageGraph _packageGraph;
@@ -6051,7 +6050,7 @@
/// Top-level variables. But also picks up getters and setters?
class TopLevelVariable extends ModelElement
- with GetterSetterCombo, SourceCodeMixin, Categorization
+ with Canonicalization, GetterSetterCombo, SourceCodeMixin, Categorization
implements EnclosedElement {
@override
final Accessor getter;
diff --git a/test/model_test.dart b/test/model_test.dart
index 1c540d5..3e68bf7 100644
--- a/test/model_test.dart
+++ b/test/model_test.dart
@@ -16,7 +16,7 @@
import 'src/utils.dart' as utils;
/// For testing sort behavior.
-class TestLibraryContainer extends LibraryContainer {
+class TestLibraryContainer extends LibraryContainer with Nameable{
@override
final List<String> containerOrder;
@override