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

Unified Diff: pkg/analyzer/test/src/task/incremental_element_builder_test.dart

Issue 2199903002: Create synthetic FieldElement(s) (don't use non-synthetic ones) for non-synthetic class getters/set… (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 5 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/analyzer/test/src/context/context_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/src/task/incremental_element_builder_test.dart
diff --git a/pkg/analyzer/test/src/task/incremental_element_builder_test.dart b/pkg/analyzer/test/src/task/incremental_element_builder_test.dart
index 27427dc5d3ad529b5c5ea984965b7002bb345383..0df06737808323dcf275b198e695c2e6220bbeb7 100644
--- a/pkg/analyzer/test/src/task/incremental_element_builder_test.dart
+++ b/pkg/analyzer/test/src/task/incremental_element_builder_test.dart
@@ -480,6 +480,56 @@ class A {
expect(helper.delta.removedMethods, isEmpty);
}
+ test_classDelta_field_syntheticAndNot_renameNonSynthetic() {
+ var helper = new _ClassDeltaHelper('A');
+ _buildOldUnit(r'''
+class A {
+ int foo;
+ int get foo => 1;
+}
+''');
+ helper.initOld(oldUnit);
+ FieldDeclaration oldFieldDeclNode = helper.oldMembers[0];
+ VariableDeclaration oldFieldNode = oldFieldDeclNode.fields.variables.single;
+ FieldElement oldFieldElement = oldFieldNode.name.staticElement;
+ _buildNewUnit(r'''
+class A {
+ int _foo;
+ int get foo => 1;
+}
+''');
+ helper.initNew(newUnit, unitDelta);
+ // nodes
+ FieldDeclaration newFieldDeclNode = helper.newMembers[0];
+ VariableDeclaration newFieldNode = newFieldDeclNode.fields.variables.single;
+ MethodDeclaration getterNode = helper.newMembers[1];
+ expect(getterNode, same(helper.oldMembers[1]));
+ // elements
+ FieldElement newFieldElement = newFieldNode.name.staticElement;
+ PropertyAccessorElement getterElement = getterNode.element;
+ expect(newFieldElement.name, '_foo');
+ expect(
+ helper.element.fields,
+ unorderedMatches(
+ [same(newFieldElement), same(getterElement.variable)]));
+ expect(
+ helper.element.accessors,
+ unorderedMatches([
+ same(newFieldElement.getter),
+ same(newFieldElement.setter),
+ same(getterElement)
+ ]));
+ // verify delta
+ expect(helper.delta.addedConstructors, isEmpty);
+ expect(helper.delta.removedConstructors, isEmpty);
+ expect(helper.delta.addedAccessors,
+ unorderedEquals([newFieldElement.getter, newFieldElement.setter]));
+ expect(helper.delta.removedAccessors,
+ [oldFieldElement.getter, oldFieldElement.setter]);
+ expect(helper.delta.addedMethods, isEmpty);
+ expect(helper.delta.removedMethods, isEmpty);
+ }
+
test_classDelta_getter_add() {
var helper = new _ClassDeltaHelper('A');
_buildOldUnit(r'''
@@ -2051,6 +2101,7 @@ class _BuiltElementsValidator extends AstComparator {
// Compare properties.
_verifyEqual('$desc name', expected.name, actual.name);
_verifyEqual('$desc nameOffset', expected.nameOffset, actual.nameOffset);
+ _verifyEqual('$desc isSynthetic', expected.isSynthetic, actual.isSynthetic);
if (expected is ElementImpl && actual is ElementImpl) {
_verifyEqual('$desc codeOffset', expected.codeOffset, actual.codeOffset);
_verifyEqual('$desc codeLength', expected.codeLength, actual.codeLength);
@@ -2077,6 +2128,12 @@ class _BuiltElementsValidator extends AstComparator {
_verifyElement(expected.getter, actual.getter, '$desc getter');
_verifyElement(expected.setter, actual.setter, '$desc setter');
}
+ // Compare implicit properties.
+ if (expected is PropertyAccessorElement &&
+ actual is PropertyAccessorElement &&
+ !expected.isSynthetic) {
+ _verifyElement(expected.variable, actual.variable, '$desc variable');
+ }
// Compare parameters.
if (expected is ExecutableElement && actual is ExecutableElement) {
List<ParameterElement> actualParameters = actual.parameters;
« no previous file with comments | « pkg/analyzer/test/src/context/context_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698