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

Unified Diff: pkg/analyzer/lib/src/dart/constant/utilities.dart

Issue 2551023005: Prepare for decoupling analyzer ASTs from element model. (Closed)
Patch Set: Address review comments Created 4 years 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: pkg/analyzer/lib/src/dart/constant/utilities.dart
diff --git a/pkg/analyzer/lib/src/dart/constant/utilities.dart b/pkg/analyzer/lib/src/dart/constant/utilities.dart
index d9ef263205735bf66a475e1d707682475e5572f3..b097c0eb9d160776f0be6f92bac2d53659612072 100644
--- a/pkg/analyzer/lib/src/dart/constant/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/constant/utilities.dart
@@ -7,6 +7,7 @@ library analyzer.src.dart.constant.utilities;
import 'dart:collection';
import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
@@ -39,13 +40,6 @@ class ConstantAstCloner extends AstCloner {
ConstantAstCloner() : super(true);
@override
- ConstructorName visitConstructorName(ConstructorName node) {
- ConstructorName name = super.visitConstructorName(node);
- name.staticElement = node.staticElement;
- return name;
- }
-
- @override
Annotation visitAnnotation(Annotation node) {
Annotation annotation = super.visitAnnotation(node);
annotation.element = node.element;
@@ -53,6 +47,13 @@ class ConstantAstCloner extends AstCloner {
}
@override
+ ConstructorName visitConstructorName(ConstructorName node) {
+ ConstructorName name = super.visitConstructorName(node);
+ name.staticElement = node.staticElement;
+ return name;
+ }
+
+ @override
FunctionExpression visitFunctionExpression(FunctionExpression node) {
FunctionExpression expression = super.visitFunctionExpression(node);
expression.element = node.element;
@@ -191,7 +192,10 @@ class ConstantFinder extends RecursiveAstVisitor<Object> {
@override
Object visitClassDeclaration(ClassDeclaration node) {
bool prevTreatFinalInstanceVarAsConst = treatFinalInstanceVarAsConst;
- if (node.element.constructors.any((ConstructorElement e) => e.isConst)) {
+ if (resolutionMap
+ .elementDeclaredByClassDeclaration(node)
+ .constructors
+ .any((ConstructorElement e) => e.isConst)) {
// Instance vars marked "final" need to be included in the dependency
// graph, since constant constructors implicitly use the values in their
// initializers.
@@ -222,7 +226,8 @@ class ConstantFinder extends RecursiveAstVisitor<Object> {
super.visitDefaultFormalParameter(node);
Expression defaultValue = node.defaultValue;
if (defaultValue != null && node.element != null) {
- constantsToCompute.add(node.element);
+ constantsToCompute
+ .add(resolutionMap.elementDeclaredByFormalParameter(node));
}
return null;
}

Powered by Google App Engine
This is Rietveld 408576698