Include presence of a variable initializer into API signature.
VariableElement.initializer is either null or non-null, depending on
the presence of absence of the initializer.
R=brianwilkerson@google.com, paulberry@google.com
Change-Id: I33defcad4a16d1d6e6896f10e312570099177f89
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107186
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index f95a185..fb120f5 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -95,7 +95,7 @@
/**
* The version of data format, should be incremented on every format change.
*/
- static const int DATA_VERSION = 84;
+ static const int DATA_VERSION = 85;
/**
* The number of exception contexts allowed to write. Once this field is
diff --git a/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart b/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
index dfbaf6a..6fce596 100644
--- a/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
@@ -105,6 +105,7 @@
signature.addInt(variableList.variables.length);
for (var variable in variableList.variables) {
addTokens(variable.beginToken, variable.name.endToken);
+ signature.addBool(variable.initializer != null);
addToken(variable.endToken.next); // `,` or `;`
}
}
diff --git a/pkg/analyzer/test/src/dart/analysis/unlinked_api_signature_test.dart b/pkg/analyzer/test/src/dart/analysis/unlinked_api_signature_test.dart
index 8222c70..f7562ed 100644
--- a/pkg/analyzer/test/src/dart/analysis/unlinked_api_signature_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/unlinked_api_signature_test.dart
@@ -226,11 +226,11 @@
test_class_field_withType() {
assertSameSignature(r'''
class C {
- int a = 1, b, c = 3;
+ int a = 1;
}
''', r'''
class C {
- int a = 0, b = 2, c;
+ int a = 2;
}
''');
}
@@ -744,11 +744,11 @@
test_mixin_field_withType() {
assertSameSignature(r'''
mixin M {
- int a = 1, b, c = 3;
+ int a = 1;
}
''', r'''
mixin M {
- int a = 0, b = 2, c;
+ int a = 2;
}
''');
}
@@ -819,9 +819,9 @@
test_topLevelVariable_withType() {
assertSameSignature(r'''
-int a = 1, b, c = 3;
+int a = 1;
''', r'''
-int a = 0, b = 2, c;
+int a = 2;
''');
}
@@ -841,6 +841,22 @@
''');
}
+ test_topLevelVariable_withType_initializer_add() {
+ assertNotSameSignature(r'''
+int a;
+''', r'''
+int a = 1;
+''');
+ }
+
+ test_topLevelVariable_withType_initializer_remove() {
+ assertNotSameSignature(r'''
+int a = 1;
+''', r'''
+int a;
+''');
+ }
+
test_typedef_generic_parameters_type() {
assertNotSameSignature(r'''
typedef F = void Function(int);