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

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

Issue 1714463002: Compare variable initializers as functions, skip the return type. (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
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 aedda76bf809b5aa4dcc21a5d3fbe2d8160294c8..99929679cb6cd8c193d9a661edfc2aa12ca4aa6c 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_test.dart
@@ -548,18 +548,17 @@ class ResynthTest extends ResolverTestCase {
}
}
- void compareExecutableElements(ExecutableElement resynthesized,
- ExecutableElement original, String desc) {
+ void compareExecutableElements(
+ ExecutableElement resynthesized, ExecutableElement original, String desc,
+ {bool compareReturnTypes: true}) {
compareElements(resynthesized, original, desc);
- expect(resynthesized.parameters.length, original.parameters.length);
- for (int i = 0; i < resynthesized.parameters.length; i++) {
- compareParameterElements(
- resynthesized.parameters[i],
- original.parameters[i],
- '$desc parameter ${original.parameters[i].name}');
+ compareParameterElementLists(
+ resynthesized.parameters, original.parameters, desc);
+ // TODO(scheglov) remove the condition once initializers have return types.
+ if (compareReturnTypes) {
+ compareTypes(
+ resynthesized.returnType, original.returnType, '$desc return type');
}
- compareTypes(
- resynthesized.returnType, original.returnType, '$desc return type');
compareTypes(resynthesized.type, original.type, desc);
expect(resynthesized.typeParameters.length, original.typeParameters.length);
for (int i = 0; i < resynthesized.typeParameters.length; i++) {
@@ -606,8 +605,14 @@ class ResynthTest extends ResolverTestCase {
}
void compareFunctionElements(
- FunctionElement resynthesized, FunctionElement original, String desc) {
- compareExecutableElements(resynthesized, original, desc);
+ FunctionElement resynthesized, FunctionElement original, String desc,
+ {bool compareReturnTypes: true}) {
+ if (original == null && resynthesized == null) {
+ return;
+ }
+ expect(resynthesized, isNotNull, reason: desc);
+ compareExecutableElements(resynthesized, original, desc,
+ compareReturnTypes: compareReturnTypes);
checkPossibleLocalElements(resynthesized, original);
}
@@ -616,13 +621,8 @@ class ResynthTest extends ResolverTestCase {
FunctionTypeAliasElementImpl original,
String desc) {
compareElements(resynthesized, original, desc);
- expect(resynthesized.parameters.length, original.parameters.length);
- for (int i = 0; i < resynthesized.parameters.length; i++) {
- compareParameterElements(
- resynthesized.parameters[i],
- original.parameters[i],
- '$desc parameter ${original.parameters[i].name}');
- }
+ compareParameterElementLists(
+ resynthesized.parameters, original.parameters, desc);
compareTypes(
resynthesized.returnType, original.returnType, '$desc return type');
compareTypes(resynthesized.type, original.type, desc);
@@ -699,16 +699,24 @@ class ResynthTest extends ResolverTestCase {
}
}
+ void compareParameterElementLists(
+ List<ParameterElement> resynthesizedParameters,
+ List<ParameterElement> originalParameters,
+ String desc) {
+ expect(resynthesizedParameters.length, originalParameters.length);
+ for (int i = 0; i < resynthesizedParameters.length; i++) {
+ compareParameterElements(
+ resynthesizedParameters[i],
+ originalParameters[i],
+ '$desc parameter ${originalParameters[i].name}');
+ }
+ }
+
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++) {
- compareParameterElements(
- resynthesized.parameters[i],
- original.parameters[i],
- '$desc parameter ${original.parameters[i].name}');
- }
+ compareParameterElementLists(
+ resynthesized.parameters, original.parameters, desc);
expect(resynthesized.parameterKind, original.parameterKind);
expect(resynthesized.isInitializingFormal, original.isInitializingFormal,
reason: desc);
@@ -867,8 +875,9 @@ class ResynthTest extends ResolverTestCase {
compareTypes(resynthesized.type, original.type, desc);
// TODO(scheglov) VariableMember.initializer is not implemented
if (original is! VariableMember) {
- compareVariableInitializers(
- resynthesized.initializer, original.initializer, desc);
+ compareFunctionElements(
+ resynthesized.initializer, original.initializer, desc,
+ compareReturnTypes: false);
}
VariableElementImpl originalActual = getActualElement(original, desc);
if (originalActual is ConstVariableElement) {
@@ -886,19 +895,6 @@ class ResynthTest extends ResolverTestCase {
checkPossibleLocalElements(resynthesized, original);
}
- void compareVariableInitializers(
- FunctionElement resynthesized, FunctionElement original, String desc) {
- if (original == null && resynthesized == null) {
- return;
- }
- expect(resynthesized, isNotNull, reason: desc);
- expect(resynthesized.nameOffset, original.nameOffset, reason: desc);
- expect(resynthesized.name, original.name, reason: desc);
- expect(resynthesized.isSynthetic, original.isSynthetic, reason: desc);
- // TODO(scheglov) replace this method with compareFunctionElements()
- // once we resynthesize initializers return types.
- }
-
/**
* Serialize the given [library] into a summary. Then create a
* [_TestSummaryResynthesizer] which can deserialize it, along with any

Powered by Google App Engine
This is Rietveld 408576698