@@ -197,7 +197,6 @@ abstract class ModelElement
197
197
_cacheNewModelElement (e, newModelElement, library,
198
198
enclosingContainer: enclosingContainer);
199
199
200
- assert (newModelElement.element is ! MultiplyInheritedExecutableElement );
201
200
return newModelElement;
202
201
}
203
202
@@ -255,7 +254,6 @@ abstract class ModelElement
255
254
_cacheNewModelElement (e, newModelElement, library,
256
255
enclosingContainer: enclosingContainer);
257
256
258
- assert (newModelElement.element is ! MultiplyInheritedExecutableElement );
259
257
return newModelElement;
260
258
}
261
259
@@ -288,8 +286,6 @@ abstract class ModelElement
288
286
Member ? originalMember,
289
287
}) {
290
288
return switch (e) {
291
- MultiplyInheritedExecutableElement () => e.resolveMultiplyInheritedElement (
292
- library, packageGraph, enclosingContainer as Class ),
293
289
LibraryElement () => packageGraph.findButDoNotCreateLibraryFor (e)! ,
294
290
PrefixElement () => Prefix (e, library, packageGraph),
295
291
EnumElement () => Enum (e, library, packageGraph),
@@ -349,8 +345,7 @@ abstract class ModelElement
349
345
}) {
350
346
// Accessors can be part of a [Container], or a part of a [Library].
351
347
if (e.enclosingElement3 is ExtensionElement ||
352
- e.enclosingElement3 is InterfaceElement ||
353
- e is MultiplyInheritedExecutableElement ) {
348
+ e.enclosingElement3 is InterfaceElement ) {
354
349
if (enclosingContainer == null || enclosingContainer is Extension ) {
355
350
return ContainerAccessor (e, library, packageGraph, enclosingContainer);
356
351
}
@@ -796,27 +791,3 @@ abstract class ModelElement
796
791
797
792
String get linkedObjectType => _packageGraph.dartCoreObject;
798
793
}
799
-
800
- extension on MultiplyInheritedExecutableElement {
801
- /// Resolves this very rare case incorrectly by picking the closest element in
802
- /// the inheritance and interface chains from the analyzer.
803
- // TODO(jcollins-g): Implement resolution per ECMA-408 4th edition, page 39
804
- // #22.
805
- ModelElement resolveMultiplyInheritedElement (
806
- Library library, PackageGraph packageGraph, Class enclosingClass) {
807
- var inheritables = inheritedElements
808
- .map ((e) => ModelElement .forElement (e, packageGraph) as Inheritable );
809
- late Inheritable foundInheritable;
810
- var lowIndex = enclosingClass.inheritanceChain.length;
811
- for (var inheritable in inheritables) {
812
- var index = enclosingClass.inheritanceChain
813
- .indexOf (inheritable.enclosingElement as InheritingContainer );
814
- if (index < lowIndex) {
815
- foundInheritable = inheritable;
816
- lowIndex = index;
817
- }
818
- }
819
- return ModelElement .for_ (foundInheritable.element, library, packageGraph,
820
- enclosingContainer: enclosingClass);
821
- }
822
- }
0 commit comments