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

Unified Diff: pkg/analyzer/test/src/summary/resynthesize_test.dart

Issue 1686253002: Test references from resynthesized const ASTs to ConstructorMembers. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
/**
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698