Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(515)

Unified Diff: lib/src/checker/checker.dart

Issue 1055923002: Don't call dinvoke on Object methods (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Fix for sealed types Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/src/checker/checker.dart
diff --git a/lib/src/checker/checker.dart b/lib/src/checker/checker.dart
index 024a066ca63de43dfab84015068e927b21c4657c..1dd4eb825a15a2c900554a7b72e9d0c831de0699 100644
--- a/lib/src/checker/checker.dart
+++ b/lib/src/checker/checker.dart
@@ -566,7 +566,8 @@ class CodeChecker extends RecursiveAstVisitor {
}
visitPropertyAccess(PropertyAccess node) {
- if (_rules.isDynamicGet(node.realTarget)) {
+ if (node.staticType.isDynamic &&
+ _rules.isDynamicGet(node.realTarget, node.propertyName)) {
_recordDynamicInvoke(node);
}
node.visitChildren(this);
@@ -576,7 +577,8 @@ class CodeChecker extends RecursiveAstVisitor {
final target = node.prefix;
// Check if the prefix is a library - PrefixElement denotes a library
// access.
- if (target.staticElement is! PrefixElement && _rules.isDynamicGet(target)) {
+ if (target.staticElement is! PrefixElement &&
+ _rules.isDynamicGet(target, node.identifier)) {
_recordDynamicInvoke(node);
}
node.visitChildren(this);

Powered by Google App Engine
This is Rietveld 408576698