Index: pkg/dev_compiler/lib/src/compiler/element_helpers.dart |
diff --git a/pkg/dev_compiler/lib/src/compiler/element_helpers.dart b/pkg/dev_compiler/lib/src/compiler/element_helpers.dart |
index 39a2e471e5182e36e642613d0ec6d3224e6c63fd..79b3feb173e4626936d1840aea8a640a4769f020 100644 |
--- a/pkg/dev_compiler/lib/src/compiler/element_helpers.dart |
+++ b/pkg/dev_compiler/lib/src/compiler/element_helpers.dart |
@@ -16,7 +16,12 @@ import 'package:analyzer/dart/ast/ast.dart' |
MethodInvocation, |
SimpleIdentifier; |
import 'package:analyzer/dart/element/element.dart' |
- show ClassElement, Element, ExecutableElement, FunctionElement; |
+ show |
+ ClassElement, |
+ Element, |
+ ExecutableElement, |
+ FunctionElement, |
+ LibraryElement; |
import 'package:analyzer/dart/element/type.dart' |
show DartType, InterfaceType, ParameterizedType; |
import 'package:analyzer/src/dart/element/type.dart' show DynamicTypeImpl; |
@@ -139,3 +144,16 @@ List<ClassElement> getSuperclasses(ClassElement cls) { |
} |
return result; |
} |
+ |
+List<ClassElement> getImmediateSuperclasses(ClassElement c) { |
+ var result = <ClassElement>[]; |
+ for (var m in c.mixins.reversed) { |
+ result.add(m.element); |
+ } |
+ var s = c.supertype; |
+ if (s != null) result.add(s.element); |
+ return result; |
+} |
+ |
+bool isSdkInternalRuntime(LibraryElement l) => |
+ l.isInSdk && l.source.uri.toString() == 'dart:_runtime'; |