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 9e73bde8dc99ddb937b636efdef4c69511ecdfbf..7147906dcc36794c09da38e490ee5e76a8cd0e30 100644 |
--- a/pkg/analyzer/test/src/task/incremental_element_builder_test.dart |
+++ b/pkg/analyzer/test/src/task/incremental_element_builder_test.dart |
@@ -97,7 +97,7 @@ class A { |
expect(newConstructorElement.name, 'a'); |
// classElement.constructors |
ClassElement classElement = helper.element; |
- expect(classElement.constructors, unorderedEquals([newConstructorElement])); |
+ expect(classElement.constructors, [newConstructorElement]); |
// verify delta |
expect(helper.delta.hasUnnamedConstructorChange, isTrue); |
expect(helper.delta.addedConstructors, |
@@ -231,7 +231,7 @@ class A { |
expect(elementB.name, 'b'); |
// classElement.constructors |
ClassElement classElement = helper.element; |
- expect(classElement.constructors, unorderedEquals([elementA, elementB])); |
+ expect(classElement.constructors, [elementA, elementB]); |
// verify delta |
expect(helper.delta.addedConstructors, unorderedEquals([elementB])); |
expect(helper.delta.removedConstructors, unorderedEquals([])); |
@@ -267,7 +267,7 @@ class A { |
expect(elementB.name, 'b'); |
// classElement.constructors |
ClassElement classElement = helper.element; |
- expect(classElement.constructors, unorderedEquals([elementB])); |
+ expect(classElement.constructors, [elementB]); |
// verify delta |
expect(helper.delta.addedConstructors, unorderedEquals([])); |
expect(helper.delta.removedConstructors, unorderedEquals([oldElementA])); |
@@ -307,7 +307,7 @@ class A { |
expect(elementA.name, 'a'); |
// classElement.constructors |
ClassElement classElement = helper.element; |
- expect(classElement.constructors, unorderedEquals([elementB, elementA])); |
+ expect(classElement.constructors, [elementB, elementA]); |
// verify delta |
expect(helper.delta.addedConstructors, isEmpty); |
expect(helper.delta.removedConstructors, isEmpty); |
@@ -463,12 +463,17 @@ class A { |
// nodes |
FieldDeclaration nodeA = helper.newMembers[0]; |
FieldDeclaration newNodeB = helper.newMembers[1]; |
+ List<VariableDeclaration> fieldsA = nodeA.fields.variables; |
List<VariableDeclaration> newFieldsB = newNodeB.fields.variables; |
expect(nodeA, same(helper.oldMembers[0])); |
expect(newFieldsB, hasLength(1)); |
// elements |
+ FieldElement fieldElementA = fieldsA[0].name.staticElement; |
FieldElement newFieldElementB = newFieldsB[0].name.staticElement; |
expect(newFieldElementB.name, 'bbb'); |
+ // members |
+ ClassElement classElement = helper.element; |
+ expect(classElement.fields, [fieldElementA, newFieldElementB]); |
// verify delta |
expect(helper.delta.hasAnnotationChanges, isFalse); |
expect(helper.delta.addedConstructors, isEmpty); |
@@ -541,17 +546,13 @@ class A { |
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) |
- ])); |
+ expect(helper.element.fields, |
+ [same(newFieldElement), same(getterElement.variable)]); |
+ expect(helper.element.accessors, [ |
+ same(newFieldElement.getter), |
+ same(newFieldElement.setter), |
+ same(getterElement) |
+ ]); |
// verify delta |
expect(helper.delta.addedConstructors, isEmpty); |
expect(helper.delta.removedConstructors, isEmpty); |
@@ -589,6 +590,7 @@ class A { |
expect(elementA.name, 'aaa'); |
expect(newElementB, isNotNull); |
expect(newElementB.name, 'bbb'); |
+ expect(helper.element.accessors, [elementA, newElementB]); |
// verify delta |
expect(helper.delta.addedConstructors, isEmpty); |
expect(helper.delta.removedConstructors, isEmpty); |
@@ -657,6 +659,7 @@ class A { |
expect(elementA.name, 'aaa'); |
expect(newElementB, isNotNull); |
expect(newElementB.name, 'bbb'); |
+ expect(helper.element.methods, [elementA, newElementB]); |
// verify delta |
expect(helper.delta.addedConstructors, isEmpty); |
expect(helper.delta.removedConstructors, isEmpty); |
@@ -698,6 +701,7 @@ class A { |
expect(newElementA.parameters, hasLength(1)); |
expect(elementB, isNotNull); |
expect(elementB.name, 'bbb'); |
+ expect(helper.element.methods, [newElementA, elementB]); |
// verify delta |
expect(helper.delta.addedConstructors, isEmpty); |
expect(helper.delta.removedConstructors, isEmpty); |
@@ -750,6 +754,7 @@ class A { |
expect(newElementA.name, 'aaa2'); |
expect(elementB, isNotNull); |
expect(elementB.name, 'bbb'); |
+ expect(helper.element.methods, [newElementA, elementB]); |
// verify delta |
expect(helper.delta.addedConstructors, isEmpty); |
expect(helper.delta.removedConstructors, isEmpty); |
@@ -824,6 +829,7 @@ class A { |
expect(newElementA.parameters, hasLength(0)); |
expect(elementB, isNotNull); |
expect(elementB.name, 'bbb'); |
+ expect(helper.element.methods, [newElementA, elementB]); |
// verify delta |
expect(helper.delta.addedConstructors, isEmpty); |
expect(helper.delta.removedConstructors, isEmpty); |
@@ -833,6 +839,48 @@ class A { |
expect(helper.delta.removedMethods, unorderedEquals([oldElementA])); |
} |
+ test_classDelta_newOrder() { |
+ var helper = new _ClassDeltaHelper('A'); |
+ _buildOldUnit(r''' |
+class A { |
+ bbb() {} |
+} |
+'''); |
+ helper.initOld(oldUnit); |
+ _buildNewUnit(r''' |
+class A { |
+ aaa() {} |
+ bbb() {} |
+ ccc() {} |
+} |
+'''); |
+ helper.initNew(newUnit, unitDelta); |
+ // nodes |
+ ClassMember newNodeA = helper.newMembers[0]; |
+ ClassMember nodeB = helper.oldMembers[0]; |
+ ClassMember newNodeC = helper.newMembers[2]; |
+ expect(nodeB, same(helper.oldMembers[0])); |
+ // elements |
+ MethodElement newElementA = newNodeA.element; |
+ MethodElement elementB = nodeB.element; |
+ MethodElement newElementC = newNodeC.element; |
+ expect(newElementA, isNotNull); |
+ expect(newElementA.name, 'aaa'); |
+ expect(elementB, isNotNull); |
+ expect(elementB.name, 'bbb'); |
+ expect(newElementC, isNotNull); |
+ expect(newElementC.name, 'ccc'); |
+ expect(helper.element.methods, [newElementA, elementB, newElementC]); |
+ // verify delta |
+ expect(helper.delta.addedConstructors, isEmpty); |
+ expect(helper.delta.removedConstructors, isEmpty); |
+ expect(helper.delta.addedAccessors, isEmpty); |
+ expect(helper.delta.removedAccessors, isEmpty); |
+ expect( |
+ helper.delta.addedMethods, unorderedEquals([newElementA, newElementC])); |
+ expect(helper.delta.removedMethods, isEmpty); |
+ } |
+ |
test_classDelta_null_abstractKeyword_add() { |
_verifyNoClassDeltaForTheLast( |
r''' |
@@ -1027,6 +1075,7 @@ class A { |
expect(elementA.name, 'aaa='); |
expect(newElementB, isNotNull); |
expect(newElementB.name, 'bbb='); |
+ expect(helper.element.accessors, [elementA, newElementB]); |
// verify delta |
expect(helper.delta.addedConstructors, isEmpty); |
expect(helper.delta.removedConstructors, isEmpty); |
@@ -1374,9 +1423,9 @@ get b => 2; |
expect(elementA.name, 'a'); |
expect(elementB.name, 'b'); |
// unit.types |
- expect(unitElement.topLevelVariables, |
- unorderedEquals([elementA.variable, elementB.variable])); |
- expect(unitElement.accessors, unorderedEquals([elementA, elementB])); |
+ expect( |
+ unitElement.topLevelVariables, [elementA.variable, elementB.variable]); |
+ expect(unitElement.accessors, [elementA, elementB]); |
} |
test_unitMembers_class_add() { |
@@ -1401,7 +1450,7 @@ class B {} |
expect(elementA.name, 'A'); |
expect(elementB.name, 'B'); |
// unit.types |
- expect(unitElement.types, unorderedEquals([elementA, elementB])); |
+ expect(unitElement.types, [elementA, elementB]); |
// verify delta |
expect(unitDelta.addedDeclarations, unorderedEquals([elementB])); |
expect(unitDelta.removedDeclarations, unorderedEquals([])); |
@@ -1512,7 +1561,7 @@ class A {} |
expect(elementA.name, 'A'); |
expect(elementB.name, 'B'); |
// unit.types |
- expect(unitElement.types, unorderedEquals([elementA])); |
+ expect(unitElement.types, [elementA]); |
// verify delta |
expect(unitDelta.addedDeclarations, unorderedEquals([])); |
expect(unitDelta.removedDeclarations, unorderedEquals([elementB])); |
@@ -1593,7 +1642,7 @@ enum B {B1, B2} |
expect(elementB.accessors.map((a) => a.name), |
unorderedEquals(['index', 'values', 'B1', 'B2'])); |
// unit.types |
- expect(unitElement.enums, unorderedEquals([elementA, elementB])); |
+ expect(unitElement.enums, [elementA, elementB]); |
// verify delta |
expect(unitDelta.addedDeclarations, unorderedEquals([elementB])); |
expect(unitDelta.removedDeclarations, unorderedEquals([])); |
@@ -1621,7 +1670,7 @@ b() {} |
expect(elementA.name, 'a'); |
expect(elementB.name, 'b'); |
// unit.types |
- expect(unitElement.functions, unorderedEquals([elementA, elementB])); |
+ expect(unitElement.functions, [elementA, elementB]); |
// verify delta |
expect(unitDelta.addedDeclarations, unorderedEquals([elementB])); |
expect(unitDelta.removedDeclarations, unorderedEquals([])); |
@@ -1649,13 +1698,50 @@ typedef B(); |
expect(elementA.name, 'A'); |
expect(elementB.name, 'B'); |
// unit.types |
- expect( |
- unitElement.functionTypeAliases, unorderedEquals([elementA, elementB])); |
+ expect(unitElement.functionTypeAliases, [elementA, elementB]); |
// verify delta |
expect(unitDelta.addedDeclarations, unorderedEquals([elementB])); |
expect(unitDelta.removedDeclarations, unorderedEquals([])); |
} |
+ test_unitMembers_newOrder() { |
+ _buildOldUnit(r''' |
+int b; |
+'''); |
+ List<CompilationUnitMember> oldNodes = oldUnit.declarations.toList(); |
+ _buildNewUnit(r''' |
+int a; |
+int b; |
+int c; |
+'''); |
+ List<CompilationUnitMember> newNodes = newUnit.declarations; |
+ // nodes |
+ TopLevelVariableDeclaration node1 = newNodes[0]; |
+ TopLevelVariableDeclaration node2 = newNodes[1]; |
+ TopLevelVariableDeclaration node3 = newNodes[2]; |
+ expect(node2, same(oldNodes[0])); |
+ // elements |
+ TopLevelVariableElement elementA = node1.variables.variables[0].element; |
+ TopLevelVariableElement elementB = node2.variables.variables[0].element; |
+ TopLevelVariableElement elementC = node3.variables.variables[0].element; |
+ expect(elementA, isNotNull); |
+ expect(elementB, isNotNull); |
+ expect(elementC, isNotNull); |
+ expect(elementA.name, 'a'); |
+ expect(elementB.name, 'b'); |
+ expect(elementC.name, 'c'); |
+ // unit.types |
+ expect(unitElement.topLevelVariables, [elementA, elementB, elementC]); |
+ expect(unitElement.accessors, [ |
+ elementA.getter, |
+ elementA.setter, |
+ elementB.getter, |
+ elementB.setter, |
+ elementC.getter, |
+ elementC.setter, |
+ ]); |
+ } |
+ |
test_unitMembers_topLevelVariable() { |
_buildOldUnit(r''' |
bool a = 1, b = 2; |
@@ -1733,19 +1819,17 @@ int c, d; |
expect(elementD.name, 'd'); |
// unit.types |
expect(unitElement.topLevelVariables, |
- unorderedEquals([elementA, elementB, elementC, elementD])); |
- expect( |
- unitElement.accessors, |
- unorderedEquals([ |
- elementA.getter, |
- elementA.setter, |
- elementB.getter, |
- elementB.setter, |
- elementC.getter, |
- elementC.setter, |
- elementD.getter, |
- elementD.setter |
- ])); |
+ [elementA, elementB, elementC, elementD]); |
+ expect(unitElement.accessors, [ |
+ elementA.getter, |
+ elementA.setter, |
+ elementB.getter, |
+ elementB.setter, |
+ elementC.getter, |
+ elementC.setter, |
+ elementD.getter, |
+ elementD.setter |
+ ]); |
} |
test_unitMembers_topLevelVariable_final() { |