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 5d70df8c45ec1ec15a4f8384af627469031b6858..7e6adf9b54fcbd27f0ef4a78cde8625e4c9c4d9b 100644 |
--- a/pkg/analyzer/lib/src/dart/element/element.dart |
+++ b/pkg/analyzer/lib/src/dart/element/element.dart |
@@ -700,6 +700,18 @@ class ClassElementImpl extends AbstractClassElementImpl |
return false; |
} |
+ /** |
+ * Return `true` if the class has a `noSuchMethod()` method distinct from the |
+ * one declared in class `Object`, as per the Dart Language Specification |
+ * (section 10.4). |
+ */ |
+ bool get hasNoSuchMethod { |
+ MethodElement method = |
+ lookUpMethod(FunctionElement.NO_SUCH_METHOD_METHOD_NAME, library); |
+ ClassElement definingClass = method?.enclosingElement; |
+ return definingClass != null && !definingClass.type.isObject; |
+ } |
+ |
@override |
bool get hasReferenceToSuper => hasModifier(Modifier.REFERENCES_SUPER); |