Index: pkg/analyzer/lib/src/task/incremental_element_builder.dart |
diff --git a/pkg/analyzer/lib/src/task/incremental_element_builder.dart b/pkg/analyzer/lib/src/task/incremental_element_builder.dart |
index bd317cfc80f69ecf53cf8404f2c436aa340ae371..6ae19ff630dcf1151a712895a07898786c242285 100644 |
--- a/pkg/analyzer/lib/src/task/incremental_element_builder.dart |
+++ b/pkg/analyzer/lib/src/task/incremental_element_builder.dart |
@@ -244,6 +244,7 @@ class IncrementalCompilationUnitElementBuilder { |
} |
} |
} |
+ |
void processFieldDeclaration(FieldDeclaration node, bool isNew) { |
for (VariableDeclaration field in node.fields.variables) { |
PropertyInducingElement element = field.element; |
@@ -269,6 +270,7 @@ class IncrementalCompilationUnitElementBuilder { |
} |
} |
} |
+ |
void processMethodDeclaration(MethodDeclaration node, bool isNew) { |
Element element = node.element; |
if (element is MethodElement) { |
@@ -287,6 +289,7 @@ class IncrementalCompilationUnitElementBuilder { |
} |
} |
} |
+ |
// Replace new nodes with the identical old nodes. |
bool newHasConstructor = false; |
for (ClassMember newNode in newClass.members) { |
@@ -409,7 +412,11 @@ class IncrementalCompilationUnitElementBuilder { |
// URI's must be resolved to the same sources. |
if (newDirective is UriBasedDirective && |
oldDirective is UriBasedDirective) { |
- if (oldDirective.source != newDirective.source) { |
+ Source source(UriBasedDirective directive) => |
+ directive is NamespaceDirective |
+ ? directive.selectedSource |
+ : directive.uriSource; |
+ if (source(oldDirective) != source(newDirective)) { |
continue; |
} |
} |
@@ -536,6 +543,7 @@ class IncrementalCompilationUnitElementBuilder { |
} |
} |
} |
+ |
if (node is FieldDeclaration) { |
addPropertyAccessors(node.fields); |
} else if (node is TopLevelVariableDeclaration) { |