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

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: Refactor dynamic target logic 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 58d18f0e753c8306c15de20629bfe81ed3b0df07..d3fb972535dcea74e31595e5d799b648cf7eaad0 100644
--- a/lib/src/checker/checker.dart
+++ b/lib/src/checker/checker.dart
@@ -577,7 +577,7 @@ class CodeChecker extends RecursiveAstVisitor {
}
visitPropertyAccess(PropertyAccess node) {
- if (_rules.isDynamicGet(node.realTarget)) {
+ if (node.staticType.isDynamic && _rules.isDynamicTarget(node.realTarget)) {
_recordDynamicInvoke(node);
}
node.visitChildren(this);
@@ -585,9 +585,7 @@ class CodeChecker extends RecursiveAstVisitor {
visitPrefixedIdentifier(PrefixedIdentifier node) {
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 (_rules.isDynamicTarget(target)) {
_recordDynamicInvoke(node);
}
node.visitChildren(this);

Powered by Google App Engine
This is Rietveld 408576698