| Index: pkg/analyzer/test/src/summary/resynthesize_test.dart
|
| diff --git a/pkg/analyzer/test/src/summary/resynthesize_test.dart b/pkg/analyzer/test/src/summary/resynthesize_test.dart
|
| index f30b3f68db69409ccc8c96030289cbbec04c854e..70f93fbb1e941538584a1e6b6d3d2c5d8d85c70d 100644
|
| --- a/pkg/analyzer/test/src/summary/resynthesize_test.dart
|
| +++ b/pkg/analyzer/test/src/summary/resynthesize_test.dart
|
| @@ -131,6 +131,33 @@ class ResynthTest extends ResolverTestCase {
|
| }
|
| }
|
|
|
| + void checkPossibleMember(
|
| + Element resynthesized, Element original, String desc) {
|
| + Element resynthesizedNonHandle = resynthesized is ElementHandle
|
| + ? resynthesized.actualElement
|
| + : resynthesized;
|
| + if (original is Member) {
|
| + expect(resynthesizedNonHandle, new isInstanceOf<Member>(), reason: desc);
|
| + if (resynthesizedNonHandle is Member) {
|
| + List<DartType> resynthesizedTypeArguments =
|
| + resynthesizedNonHandle.definingType.typeArguments;
|
| + List<DartType> originalTypeArguments =
|
| + original.definingType.typeArguments;
|
| + expect(
|
| + resynthesizedTypeArguments, hasLength(originalTypeArguments.length),
|
| + reason: desc);
|
| + for (int i = 0; i < originalTypeArguments.length; i++) {
|
| + compareTypeImpls(resynthesizedTypeArguments[i],
|
| + originalTypeArguments[i], '$desc type argument $i');
|
| + }
|
| + }
|
| + } else {
|
| + expect(
|
| + resynthesizedNonHandle, isNot(new isInstanceOf<ConstructorMember>()),
|
| + reason: desc);
|
| + }
|
| + }
|
| +
|
| void compareClassElements(
|
| ClassElementImpl resynthesized, ClassElementImpl original, String desc) {
|
| compareElements(resynthesized, original, desc);
|
| @@ -372,7 +399,7 @@ class ResynthTest extends ResolverTestCase {
|
| ConstructorName rConstructor = r.constructorName;
|
| expect(oConstructor, isNotNull, reason: desc);
|
| expect(rConstructor, isNotNull, reason: desc);
|
| - compareElements(
|
| + compareConstructorElements(
|
| rConstructor.staticElement, oConstructor.staticElement, desc);
|
| TypeName oType = oConstructor.type;
|
| TypeName rType = rConstructor.type;
|
| @@ -441,31 +468,7 @@ class ResynthTest extends ResolverTestCase {
|
| compareConstructorElements(resynthesized.redirectedConstructor,
|
| original.redirectedConstructor, '$desc redirectedConstructor');
|
| }
|
| - ConstructorElement resynthesizedNonHandle =
|
| - resynthesized is ConstructorElementHandle
|
| - ? resynthesized.actualElement
|
| - : resynthesized;
|
| - if (original is ConstructorMember) {
|
| - expect(resynthesizedNonHandle, new isInstanceOf<ConstructorMember>(),
|
| - reason: desc);
|
| - if (resynthesizedNonHandle is ConstructorMember) {
|
| - List<DartType> resynthesizedTypeArguments =
|
| - resynthesizedNonHandle.definingType.typeArguments;
|
| - List<DartType> originalTypeArguments =
|
| - original.definingType.typeArguments;
|
| - expect(
|
| - resynthesizedTypeArguments, hasLength(originalTypeArguments.length),
|
| - reason: desc);
|
| - for (int i = 0; i < originalTypeArguments.length; i++) {
|
| - compareTypeImpls(resynthesizedTypeArguments[i],
|
| - originalTypeArguments[i], '$desc type argument $i');
|
| - }
|
| - }
|
| - } else {
|
| - expect(
|
| - resynthesizedNonHandle, isNot(new isInstanceOf<ConstructorMember>()),
|
| - reason: desc);
|
| - }
|
| + checkPossibleMember(resynthesized, original, desc);
|
| }
|
|
|
| void compareElementAnnotations(ElementAnnotationImpl resynthesized,
|
| @@ -643,8 +646,8 @@ class ResynthTest extends ResolverTestCase {
|
| }
|
| }
|
|
|
| - void compareParameterElements(ParameterElementImpl resynthesized,
|
| - ParameterElementImpl original, String desc) {
|
| + void compareParameterElements(
|
| + ParameterElement resynthesized, ParameterElement original, String desc) {
|
| compareVariableElements(resynthesized, original, desc);
|
| expect(resynthesized.parameters.length, original.parameters.length);
|
| for (int i = 0; i < resynthesized.parameters.length; i++) {
|
| @@ -800,18 +803,22 @@ class ResynthTest extends ResolverTestCase {
|
| expect(resynthesized.uriEnd, original.uriEnd, reason: desc);
|
| }
|
|
|
| - void compareVariableElements(VariableElementImpl resynthesized,
|
| - VariableElementImpl original, String desc) {
|
| + void compareVariableElements(
|
| + VariableElement resynthesized, VariableElement original, String desc) {
|
| compareElements(resynthesized, original, desc);
|
| compareTypes(resynthesized.type, original.type, desc);
|
| - if (original is ConstVariableElement) {
|
| - Expression initializer = resynthesized.constantInitializer;
|
| + VariableElementImpl originalActual = getActualElement(original, desc);
|
| + if (originalActual is ConstVariableElement) {
|
| + VariableElementImpl resynthesizedActual =
|
| + getActualElement(resynthesized, desc);
|
| + Expression initializer = resynthesizedActual.constantInitializer;
|
| if (constantInitializersAreInvalid) {
|
| _assertUnresolvedIdentifier(initializer, desc);
|
| } else {
|
| - compareConstAsts(initializer, original.constantInitializer, desc);
|
| + compareConstAsts(initializer, originalActual.constantInitializer, desc);
|
| }
|
| }
|
| + checkPossibleMember(resynthesized, original, desc);
|
| }
|
|
|
| /**
|
|
|