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

Unified Diff: pkg/analyzer2dart/lib/src/tree_shaker.dart

Issue 652403005: Support assignment of locals in analyzer2dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments. Created 6 years, 2 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
« no previous file with comments | « pkg/analyzer2dart/lib/src/semantic_visitor.dart ('k') | pkg/analyzer2dart/test/end2end_data.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer2dart/lib/src/tree_shaker.dart
diff --git a/pkg/analyzer2dart/lib/src/tree_shaker.dart b/pkg/analyzer2dart/lib/src/tree_shaker.dart
index 11a7c3ee075c6a17a53d812362997727848a0aea..47a653fdf7a836e512c03e426e90afa117e3c66a 100644
--- a/pkg/analyzer2dart/lib/src/tree_shaker.dart
+++ b/pkg/analyzer2dart/lib/src/tree_shaker.dart
@@ -207,7 +207,6 @@ class TreeShaker {
_addElement(_world.mainFunction);
while (_queue.isNotEmpty) {
Element element = _queue.removeLast();
- print('Tree shaker handling $element');
if (element is ExecutableElement) {
MethodAnalysis analysis = _localComputer.analyzeMethod(element);
_world.executableElements[element] = analysis.declaration;
@@ -233,7 +232,6 @@ class TreeShaker {
'$element (${element.runtimeType})');
}
}
- print('Tree shaking done');
return _world;
}
}
@@ -292,18 +290,20 @@ class TreeShakingVisitor extends SemanticVisitor {
node.argumentList, 'call'));
}
+ @override
void visitStaticMethodInvocation(MethodInvocation node,
AccessSemantics semantics) {
analysis.calls.add(semantics.element);
}
+ @override
void visitStaticPropertyInvocation(MethodInvocation node,
AccessSemantics semantics) {
// Invocation of a property. TODO(paulberry): handle this.
super.visitStaticPropertyInvocation(node, semantics);
}
- void visitDynamicAccess(AstNode node, AccessSemantics semantics) {
+ void handleDynamicAccess(AccessSemantics semantics) {
if (semantics.isRead) {
analysis.invokes.add(
new Selector.getter(semantics.identifier.name, null));
@@ -316,27 +316,38 @@ class TreeShakingVisitor extends SemanticVisitor {
}
}
+ @override
+ void visitDynamicAccess(AstNode node, AccessSemantics semantics) {
+ handleDynamicAccess(semantics);
+ }
+
+ @override
void visitLocalFunctionAccess(AstNode node, AccessSemantics semantics) {
// Locals don't need to be tree shaken.
}
+ @override
void visitLocalVariableAccess(AstNode node, AccessSemantics semantics) {
// Locals don't need to be tree shaken.
}
+ @override
void visitParameterAccess(AstNode node, AccessSemantics semantics) {
// Locals don't need to be tree shaken.
}
+ @override
void visitStaticFieldAccess(AstNode node, AccessSemantics semantics) {
analysis.accesses.add(semantics.element);
}
+ @override
void visitStaticMethodAccess(AstNode node, AccessSemantics semantics) {
// Method tear-off. TODO(paulberry): implement.
super.visitStaticMethodAccess(node, semantics);
}
+ @override
void visitStaticPropertyAccess(AstNode node, AccessSemantics semantics) {
// TODO(paulberry): implement.
super.visitStaticPropertyAccess(node, semantics);
@@ -375,4 +386,9 @@ class TreeShakingVisitor extends SemanticVisitor {
// reported as a compile time error.
analysis.calls.add(node.staticElement);
}
+
+ @override
+ void handleAssignmentExpression(AssignmentExpression node) {
+ // Don't special-case assignment expressions.
+ }
}
« no previous file with comments | « pkg/analyzer2dart/lib/src/semantic_visitor.dart ('k') | pkg/analyzer2dart/test/end2end_data.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698