Remove named argument `nnbd` from summary testing methods.
These tests now use the FeatureSet mechanism to opt in and out of NNBD.
Change-Id: Id836833d4479e396e8db2b3646d28da339ed5674
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101076
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/lib/src/summary/summarize_ast.dart b/pkg/analyzer/lib/src/summary/summarize_ast.dart
index 464c4a7..b50d8cd 100644
--- a/pkg/analyzer/lib/src/summary/summarize_ast.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_ast.dart
@@ -2,6 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/ast/visitor.dart';
@@ -17,8 +18,9 @@
/// [serializeInferrableFields] indicates whether field initializers and closure
/// bodies should be serialized to facilitate type inference.
UnlinkedUnitBuilder serializeAstUnlinked(CompilationUnit compilationUnit,
- {bool serializeInferrableFields: true, bool nnbd: false}) {
- return new _SummarizeAstVisitor(serializeInferrableFields, nnbd)
+ {bool serializeInferrableFields: true}) {
+ return new _SummarizeAstVisitor(serializeInferrableFields,
+ compilationUnit.featureSet.isEnabled(Feature.non_nullable))
.serializeCompilationUnit(compilationUnit);
}
diff --git a/pkg/analyzer/test/src/summary/summary_common.dart b/pkg/analyzer/test/src/summary/summary_common.dart
index 2523cdd..2d41129 100644
--- a/pkg/analyzer/test/src/summary/summary_common.dart
+++ b/pkg/analyzer/test/src/summary/summary_common.dart
@@ -83,6 +83,8 @@
/// Get access to the linked defining compilation unit.
LinkedUnit get definingUnit => linked.units[0];
+ FeatureSet get disableNnbd => FeatureSet.forTesting(sdkVersion: '2.2.2');
+
FeatureSet get enableNnbd =>
FeatureSet.forTesting(additionalFeatures: [Feature.non_nullable]);
@@ -723,25 +725,20 @@
/// declaration needs to refer to types that are not available in core, those
/// types may be declared in [otherDeclarations].
EntityRef serializeTypeText(String text,
- {String otherDeclarations: '',
- bool allowErrors: false,
- bool nnbd: false}) {
+ {String otherDeclarations: '', bool allowErrors: false}) {
return serializeVariableText('$otherDeclarations\n$text v;',
- allowErrors: allowErrors, nnbd: nnbd)
+ allowErrors: allowErrors)
.type;
}
/// Serialize the given library [text] and return the summary of the variable
/// with the given [variableName].
UnlinkedVariable serializeVariableText(String text,
- {String variableName: 'v',
- bool allowErrors: false,
- bool nnbd: false,
- imports: ''}) {
+ {String variableName: 'v', bool allowErrors: false, imports: ''}) {
if (imports.isNotEmpty && !imports.endsWith('\n')) {
imports += '\n';
}
- serializeLibraryText('$imports$text', allowErrors: allowErrors, nnbd: nnbd);
+ serializeLibraryText('$imports$text', allowErrors: allowErrors);
return findVariable(variableName, failIfAbsent: true);
}
@@ -1933,8 +1930,9 @@
}
test_constExpr_function_type_arg_nullability_suffix_none() {
- var variable = serializeVariableText('const v = const <void Function()>[];',
- nnbd: true);
+ featureSet = enableNnbd;
+ var variable =
+ serializeVariableText('const v = const <void Function()>[];');
assertUnlinkedConst(
variable.initializer.bodyExpr, 'const <void Function()>[]', operators: [
UnlinkedExprOperation.makeTypedList
@@ -1947,9 +1945,9 @@
}
test_constExpr_function_type_arg_nullability_suffix_question() {
- var variable = serializeVariableText(
- 'const v = const <void Function()?>[];',
- nnbd: true);
+ featureSet = enableNnbd;
+ var variable =
+ serializeVariableText('const v = const <void Function()?>[];');
assertUnlinkedConst(
variable.initializer.bodyExpr, 'const <void Function()?>[]',
operators: [
@@ -1965,8 +1963,9 @@
}
test_constExpr_function_type_arg_nullability_suffix_star() {
- var variable = serializeVariableText('const v = const <void Function()>[];',
- nnbd: false);
+ featureSet = disableNnbd;
+ var variable =
+ serializeVariableText('const v = const <void Function()>[];');
assertUnlinkedConst(
variable.initializer.bodyExpr, 'const <void Function()>[]',
operators: [
@@ -4096,8 +4095,8 @@
}
test_constExpr_type_arg_nullability_suffix_none() {
- var variable =
- serializeVariableText('const v = const <int>[];', nnbd: true);
+ featureSet = enableNnbd;
+ var variable = serializeVariableText('const v = const <int>[];');
assertUnlinkedConst(variable.initializer.bodyExpr, 'const <int>[]',
operators: [
UnlinkedExprOperation.makeTypedList
@@ -4113,8 +4112,8 @@
}
test_constExpr_type_arg_nullability_suffix_question() {
- var variable =
- serializeVariableText('const v = const <int?>[];', nnbd: true);
+ featureSet = enableNnbd;
+ var variable = serializeVariableText('const v = const <int?>[];');
assertUnlinkedConst(variable.initializer.bodyExpr, 'const <int?>[]',
operators: [
UnlinkedExprOperation.makeTypedList
@@ -4130,8 +4129,8 @@
}
test_constExpr_type_arg_nullability_suffix_star() {
- var variable =
- serializeVariableText('const v = const <int>[];', nnbd: false);
+ featureSet = disableNnbd;
+ var variable = serializeVariableText('const v = const <int>[];');
assertUnlinkedConst(variable.initializer.bodyExpr, 'const <int>[]',
operators: [
UnlinkedExprOperation.makeTypedList
@@ -4147,7 +4146,8 @@
}
test_constExpr_type_nullability_suffix_none() {
- var variable = serializeVariableText('const v = int;', nnbd: true);
+ featureSet = enableNnbd;
+ var variable = serializeVariableText('const v = int;');
assertUnlinkedConst(variable.initializer.bodyExpr, 'int', operators: [
UnlinkedExprOperation.pushReference
], referenceValidators: [
@@ -4168,7 +4168,8 @@
}
test_constExpr_type_nullability_suffix_star() {
- var variable = serializeVariableText('const v = int;', nnbd: false);
+ featureSet = disableNnbd;
+ var variable = serializeVariableText('const v = int;');
assertUnlinkedConst(variable.initializer.bodyExpr, 'int', operators: [
UnlinkedExprOperation.pushReference
], referenceValidators: [
@@ -4179,8 +4180,9 @@
}
test_constExpr_type_prefixed_nullability_suffix_none() {
+ featureSet = enableNnbd;
var variable = serializeVariableText('const v = core.int;',
- imports: 'import "dart:core" as core;', nnbd: true);
+ imports: 'import "dart:core" as core;');
assertUnlinkedConst(variable.initializer.bodyExpr, 'core.int', operators: [
UnlinkedExprOperation.pushReference
], referenceValidators: [
@@ -4204,8 +4206,9 @@
}
test_constExpr_type_prefixed_nullability_suffix_star() {
+ featureSet = disableNnbd;
var variable = serializeVariableText('const v = core.int;',
- imports: 'import "dart:core" as core;', nnbd: false);
+ imports: 'import "dart:core" as core;');
assertUnlinkedConst(variable.initializer.bodyExpr, 'core.int', operators: [
UnlinkedExprOperation.pushReference
], referenceValidators: [
@@ -8864,19 +8867,22 @@
}
test_function_type_nullability_suffix_none() {
- EntityRef typeRef = serializeTypeText('void Function()', nnbd: true);
+ featureSet = enableNnbd;
+ EntityRef typeRef = serializeTypeText('void Function()');
expect(typeRef.entityKind, EntityRefKind.genericFunctionType);
expect(typeRef.nullabilitySuffix, EntityRefNullabilitySuffix.none);
}
test_function_type_nullability_suffix_question() {
- EntityRef typeRef = serializeTypeText('void Function()?', nnbd: true);
+ featureSet = enableNnbd;
+ EntityRef typeRef = serializeTypeText('void Function()?');
expect(typeRef.entityKind, EntityRefKind.genericFunctionType);
expect(typeRef.nullabilitySuffix, EntityRefNullabilitySuffix.question);
}
test_function_type_nullability_suffix_star() {
- EntityRef typeRef = serializeTypeText('void Function()', nnbd: false);
+ featureSet = disableNnbd;
+ EntityRef typeRef = serializeTypeText('void Function()');
expect(typeRef.entityKind, EntityRefKind.genericFunctionType);
expect(
typeRef.nullabilitySuffix, EntityRefNullabilitySuffix.starOrIrrelevant);
@@ -10960,19 +10966,22 @@
}
test_type_nullability_suffix_none() {
- EntityRef typeRef = serializeTypeText('int', nnbd: true);
+ featureSet = enableNnbd;
+ EntityRef typeRef = serializeTypeText('int');
checkTypeRef(typeRef, 'dart:core', 'int',
nullabilitySuffix: EntityRefNullabilitySuffix.none);
}
test_type_nullability_suffix_question() {
- EntityRef typeRef = serializeTypeText('int?', nnbd: true);
+ featureSet = enableNnbd;
+ EntityRef typeRef = serializeTypeText('int?');
checkTypeRef(typeRef, 'dart:core', 'int',
nullabilitySuffix: EntityRefNullabilitySuffix.question);
}
test_type_nullability_suffix_star() {
- EntityRef typeRef = serializeTypeText('int', nnbd: false);
+ featureSet = disableNnbd;
+ EntityRef typeRef = serializeTypeText('int');
checkTypeRef(typeRef, 'dart:core', 'int',
nullabilitySuffix: EntityRefNullabilitySuffix.starOrIrrelevant);
}
diff --git a/pkg/analyzer/test/src/summary/test_strategies.dart b/pkg/analyzer/test/src/summary/test_strategies.dart
index a6879c6..9c286c5 100644
--- a/pkg/analyzer/test/src/summary/test_strategies.dart
+++ b/pkg/analyzer/test/src/summary/test_strategies.dart
@@ -356,8 +356,7 @@
/// Serialize the given library [text], then deserialize it and store its
/// summary in [lib].
- void serializeLibraryText(String text,
- {bool allowErrors: false, bool nnbd: false});
+ void serializeLibraryText(String text, {bool allowErrors: false});
}
/// Implementation of [SummaryBlackBoxTestStrategy] that drives summary
@@ -369,9 +368,8 @@
bool get skipFullyLinkedData => true;
@override
- void serializeLibraryText(String text,
- {bool allowErrors: false, bool nnbd: false}) {
- super.serializeLibraryText(text, allowErrors: allowErrors, nnbd: nnbd);
+ void serializeLibraryText(String text, {bool allowErrors: false}) {
+ super.serializeLibraryText(text, allowErrors: allowErrors);
UnlinkedUnit getPart(String absoluteUri) {
return _linkerInputs.getUnit(absoluteUri);
@@ -568,16 +566,15 @@
return assembler.assemble();
}
- UnlinkedUnitBuilder createUnlinkedSummary(Uri uri, String text,
- {bool nnbd: false}) =>
- serializeAstUnlinked(parseText(text, featureSet), nnbd: nnbd);
+ UnlinkedUnitBuilder createUnlinkedSummary(Uri uri, String text) =>
+ serializeAstUnlinked(parseText(text, featureSet));
_LinkerInputs _createLinkerInputs(String text,
- {String path: '/test.dart', String uri, bool nnbd: false}) {
+ {String path: '/test.dart', String uri}) {
uri ??= absUri(path);
Uri testDartUri = Uri.parse(uri);
UnlinkedUnitBuilder unlinkedDefiningUnit =
- createUnlinkedSummary(testDartUri, text, nnbd: nnbd);
+ createUnlinkedSummary(testDartUri, text);
_filesToLink.uriToUnit[testDartUri.toString()] = unlinkedDefiningUnit;
_LinkerInputs linkerInputs = new _LinkerInputs(
_allowMissingFiles,
@@ -618,10 +615,9 @@
bool get containsNonConstExprs => true;
@override
- void serializeLibraryText(String text,
- {bool allowErrors: false, bool nnbd: false}) {
+ void serializeLibraryText(String text, {bool allowErrors: false}) {
Map<String, UnlinkedUnitBuilder> uriToUnit = this._filesToLink.uriToUnit;
- _linkerInputs = _createLinkerInputs(text, nnbd: nnbd);
+ _linkerInputs = _createLinkerInputs(text);
linked = link(
_linkerInputs.linkedLibraries,
_linkerInputs.getDependency,