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

Unified Diff: pkg/analyzer/lib/src/task/dart.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/task/dart.dart
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index 9e3b31e89627c2f6853b84e7a9dce96dc7be634b..e9d69a4341df526ea1039af8ec337bf6d953f3f3 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -7,6 +7,7 @@ library analyzer.src.task.dart;
import 'dart:collection';
import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
@@ -1328,7 +1329,11 @@ class BuildEnumMemberElementsTask extends SourceBasedAnalysisTask {
}
EnumDeclaration firstEnum = findFirstEnum();
- if (firstEnum != null && firstEnum.element.accessors.isEmpty) {
+ if (firstEnum != null &&
+ resolutionMap
+ .elementDeclaredByEnumDeclaration(firstEnum)
+ .accessors
+ .isEmpty) {
EnumMemberBuilder builder = new EnumMemberBuilder(typeProvider);
unit.accept(builder);
}
@@ -1503,7 +1508,8 @@ class BuildLibraryElementTask extends SourceBasedAnalysisTask {
int partLength = partUnits.length;
for (int i = 0; i < partLength; i++) {
CompilationUnit partUnit = partUnits[i];
- Source partSource = partUnit.element.source;
+ Source partSource =
+ resolutionMap.elementForCompilationUnit(partUnit).source;
partUnitMap[partSource] = partUnit;
}
//
@@ -3446,7 +3452,9 @@ class InferInstanceMembersInUnitTask extends SourceBasedAnalysisTask {
//
if (context.analysisOptions.strongMode) {
InstanceMemberInferrer inferrer = new InstanceMemberInferrer(
- typeProvider, new InheritanceManager(unit.element.library),
+ typeProvider,
+ new InheritanceManager(
+ resolutionMap.elementForCompilationUnit(unit).library),
typeSystem: context.typeSystem);
inferrer.inferCompilationUnit(unit.element);
}
@@ -3511,7 +3519,7 @@ abstract class InferStaticVariableTask extends ConstantEvaluationAnalysisTask {
AstNode node = new NodeLocator2(offset).searchWithin(unit);
if (node == null) {
Source variableSource = variable.source;
- Source unitSource = unit.element.source;
+ Source unitSource = resolutionMap.elementForCompilationUnit(unit).source;
if (variableSource != unitSource) {
throw new AnalysisException(
"Failed to find the AST node for the variable "
@@ -3526,7 +3534,7 @@ abstract class InferStaticVariableTask extends ConstantEvaluationAnalysisTask {
node.getAncestor((AstNode ancestor) => ancestor is VariableDeclaration);
if (declaration == null || declaration.name != node) {
Source variableSource = variable.source;
- Source unitSource = unit.element.source;
+ Source unitSource = resolutionMap.elementForCompilationUnit(unit).source;
if (variableSource != unitSource) {
if (declaration == null) {
throw new AnalysisException(

Powered by Google App Engine
This is Rietveld 408576698