Index: pkg/compiler/lib/src/common_elements.dart |
diff --git a/pkg/compiler/lib/src/common_elements.dart b/pkg/compiler/lib/src/common_elements.dart |
index 23206180802deecd1063bd05cb6d0a58a16a7732..3a817e5ad0365d0f21776143f75f3f5656877e38 100644 |
--- a/pkg/compiler/lib/src/common_elements.dart |
+++ b/pkg/compiler/lib/src/common_elements.dart |
@@ -249,6 +249,18 @@ abstract class ElementEnvironment { |
void forEachClassMember( |
ClassEntity cls, void f(ClassEntity declarer, MemberEntity member)); |
+ /// Returns the declared superclass of [cls]. |
+ /// |
+ /// Unnamed mixin applications are skipped, for instance for these classes |
+ /// |
+ /// class S {} |
+ /// class M {} |
+ /// class C extends S with M {} |
+ /// |
+ /// the result of `getSuperClass(C)` is `S` and not the unnamed mixin |
+ /// application typically named `S+M`. |
+ ClassEntity getSuperClass(ClassEntity cls); |
+ |
/// Calls [f] for each class that is mixed into [cls] or one of its |
/// superclasses. |
void forEachMixin(ClassEntity cls, void f(ClassEntity mixin)); |