| 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..9cad1c413d80a0f76fb95c4a093259e9565ff4df 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/resolution_accessors.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,9 @@ class ConstantFinder extends RecursiveAstVisitor<Object> {
|
| @override
|
| Object visitClassDeclaration(ClassDeclaration node) {
|
| bool prevTreatFinalInstanceVarAsConst = treatFinalInstanceVarAsConst;
|
| - if (node.element.constructors.any((ConstructorElement e) => e.isConst)) {
|
| + if (elementForClassDeclaration(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 +225,7 @@ class ConstantFinder extends RecursiveAstVisitor<Object> {
|
| super.visitDefaultFormalParameter(node);
|
| Expression defaultValue = node.defaultValue;
|
| if (defaultValue != null && node.element != null) {
|
| - constantsToCompute.add(node.element);
|
| + constantsToCompute.add(elementForFormalParameter(node));
|
| }
|
| return null;
|
| }
|
|
|