Remove WithNonFunctionTypeAliasesMixin and WithNullSafetyMixin from analyzer_plugin tests.

So, consistently with analyzer/, by default enable everything, and
disable with WithoutNullSafetyMixin as necessary.

Change-Id: I89079d3c1122a14ad338aa8f0d8008086a1fcb89
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213295
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov 2021-09-14 16:57:45 +00:00 committed by commit-bot@chromium.org
parent 33c6606085
commit 7262decaea
4 changed files with 73 additions and 90 deletions

View file

@ -22,8 +22,8 @@ import 'mocks.dart';
void main() {
defineReflectiveSuite(() {
defineReflectiveTests(DartEditBuilderImpl_PreNullSafetyTest);
defineReflectiveTests(DartEditBuilderImpl_WithNullSafetyTest);
defineReflectiveTests(DartEditBuilderImpl_WithoutNullSafetyTest);
defineReflectiveTests(DartFileEditBuilderImplTest);
defineReflectiveTests(DartLinkedEditBuilderImplTest);
defineReflectiveTests(ImportLibraryTest);
@ -32,7 +32,34 @@ void main() {
}
@reflectiveTest
class DartEditBuilderImpl_PreNullSafetyTest extends DartEditBuilderImplTest {
class DartEditBuilderImpl_WithNullSafetyTest extends DartEditBuilderImplTest {
Future<void> test_writeParameter_required_keyword() async {
var path = convertPath('$testPackageRootPath/lib/test.dart');
var content = 'class A {}';
addSource(path, content);
var builder = newBuilder();
await builder.addDartFileEdit(path, (builder) {
builder.addInsertion(content.length - 1, (builder) {
builder.writeParameter('a', isRequiredNamed: true);
});
});
var edit = getEdit(builder);
expect(edit.replacement, equalsIgnoringWhitespace('required a'));
}
Future<void> test_writeType_Never_none() async {
await _assertWriteType('Never');
}
Future<void> test_writeType_Never_question() async {
await _assertWriteType('Never?');
}
}
@reflectiveTest
class DartEditBuilderImpl_WithoutNullSafetyTest extends DartEditBuilderImplTest
with WithoutNullSafetyMixin {
Future<void> test_writeParameter_covariantAndRequired() async {
var path = convertPath('$testPackageRootPath/lib/test.dart');
var content = 'class A {}';
@ -90,33 +117,6 @@ class A {}
}
}
@reflectiveTest
class DartEditBuilderImpl_WithNullSafetyTest extends DartEditBuilderImplTest
with WithNullSafetyMixin {
Future<void> test_writeParameter_required_keyword() async {
var path = convertPath('$testPackageRootPath/lib/test.dart');
var content = 'class A {}';
addSource(path, content);
var builder = newBuilder();
await builder.addDartFileEdit(path, (builder) {
builder.addInsertion(content.length - 1, (builder) {
builder.writeParameter('a', isRequiredNamed: true);
});
});
var edit = getEdit(builder);
expect(edit.replacement, equalsIgnoringWhitespace('required a'));
}
Future<void> test_writeType_Never_none() async {
await _assertWriteType('Never');
}
Future<void> test_writeType_Never_question() async {
await _assertWriteType('Never?');
}
}
class DartEditBuilderImplTest extends AbstractContextTest
with DartChangeBuilderMixin {
@override

View file

@ -11,7 +11,6 @@ import 'package:analyzer/dart/element/visitor.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine;
import 'package:analyzer/src/test_utilities/mock_packages.dart';
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
@ -51,7 +50,7 @@ class AbstractContextTest with ResourceProviderMixin {
String get testPackageAnalysisOptionsPath =>
convertPath('$testPackageRootPath/analysis_options.yaml');
String? get testPackageLanguageVersion => '2.9';
String? get testPackageLanguageVersion => null;
/// The file system-specific `pubspec.yaml` path.
String get testPackagePubspecPath =>
@ -162,25 +161,9 @@ class AbstractContextTest with ResourceProviderMixin {
}
}
mixin WithNonFunctionTypeAliasesMixin on AbstractContextTest {
mixin WithoutNullSafetyMixin on AbstractContextTest {
@override
String? get testPackageLanguageVersion => null;
@override
void setUp() {
super.setUp();
createAnalysisOptionsFile(
experiments: [
EnableString.nonfunction_type_aliases,
],
);
}
}
mixin WithNullSafetyMixin on AbstractContextTest {
@override
String? get testPackageLanguageVersion => null;
String? get testPackageLanguageVersion => '2.9';
}
/// Wraps the given [_ElementVisitorFunction] into an instance of

View file

@ -19,41 +19,12 @@ import '../support/abstract_context.dart';
import '../support/abstract_single_unit.dart';
void main() {
defineReflectiveTests(AnalyzerConverterNullableTest);
defineReflectiveTests(AnalyzerConverterTest);
defineReflectiveTests(AnalyzerConverterWithoutNullSafetyTest);
}
@reflectiveTest
class AnalyzerConverterNullableTest extends _AnalyzerConverterTest {
Future<void> test_convertElement_method() async {
await resolveTestCode('''
class A {
static List<String> myMethod(int a, {String b, int c}) {
return [];
}
}''');
var engineElement = findElement.method('myMethod');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.METHOD);
expect(element.name, 'myMethod');
{
var location = element.location!;
expect(location.file, testFile);
expect(location.offset, 32);
expect(location.length, 'myGetter'.length);
expect(location.startLine, 2);
expect(location.startColumn, 23);
}
expect(element.parameters, '(int a, {String b, int c})');
expect(element.returnType, 'List<String>');
expect(element.flags, plugin.Element.FLAG_STATIC);
}
}
@reflectiveTest
class AnalyzerConverterTest extends _AnalyzerConverterTest
with WithNonFunctionTypeAliasesMixin {
class AnalyzerConverterTest extends _AnalyzerConverterTest {
/// Assert that the given [pluginError] matches the given [analyzerError].
void assertError(
plugin.AnalysisError pluginError, analyzer.AnalysisError analyzerError,
@ -664,6 +635,35 @@ typedef A<T> = Map<int, T>;
}
}
@reflectiveTest
class AnalyzerConverterWithoutNullSafetyTest extends _AnalyzerConverterTest
with WithoutNullSafetyMixin {
Future<void> test_convertElement_method() async {
await resolveTestCode('''
class A {
static List<String> myMethod(int a, {String b, int c}) {
return [];
}
}''');
var engineElement = findElement.method('myMethod');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.METHOD);
expect(element.name, 'myMethod');
{
var location = element.location!;
expect(location.file, testFile);
expect(location.offset, 32);
expect(location.length, 'myGetter'.length);
expect(location.startLine, 2);
expect(location.startColumn, 23);
}
expect(element.parameters, '(int a, {String b, int c})');
expect(element.returnType, 'List<String>');
expect(element.flags, plugin.Element.FLAG_STATIC);
}
}
class _AnalyzerConverterTest extends AbstractSingleUnitTest {
AnalyzerConverter converter = AnalyzerConverter();
late analyzer.Source source;

View file

@ -34,7 +34,7 @@ class RangeFactoryTest extends AbstractSingleUnitTest {
void f() {
g(0, 1, c: 2);
}
void g(int a, int b, {int c}) {}
void g(int a, int b, {int? c}) {}
''');
_assertArgumentRange(0, 2, SourceRange(15, 10), SourceRange(15, 10));
}
@ -44,7 +44,7 @@ void g(int a, int b, {int c}) {}
void f() {
g(0, 1, c: 2, );
}
void g(int a, int b, {int c}) {}
void g(int a, int b, {int? c}) {}
''');
_assertArgumentRange(0, 2, SourceRange(15, 12), SourceRange(15, 10));
}
@ -54,7 +54,7 @@ void g(int a, int b, {int c}) {}
void f() {
g(a: 0, b: 1, c: 2);
}
void g({int a, int b, int c}) {}
void g({int? a, int? b, int? c}) {}
''');
_assertArgumentRange(0, 2, SourceRange(15, 16), SourceRange(15, 16));
}
@ -64,7 +64,7 @@ void g({int a, int b, int c}) {}
void f() {
g(a: 0, b: 1, c: 2, );
}
void g({int a, int b, int c}) {}
void g({int? a, int? b, int? c}) {}
''');
_assertArgumentRange(0, 2, SourceRange(15, 18), SourceRange(15, 16));
}
@ -154,7 +154,7 @@ void g(int a, int b, int c, int d) {}
void f() {
g(a: 0);
}
void g({int a}) {}
void g({int? a}) {}
''');
_assertArgumentRange(0, 0, SourceRange(15, 4), SourceRange(15, 4));
}
@ -220,7 +220,7 @@ const class B {}
void f() {
g(a: 1, b: 2);
}
void g({int a, int b}) {}
void g({int? a, int? b}) {}
''');
var list = _argumentList;
expect(range.nodeInList(list, list[0]), SourceRange(15, 6));
@ -242,7 +242,7 @@ void g(int a, int b) {}
void f() {
g(a: 1, b: 2);
}
void g({int a, int b}) {}
void g({int? a, int? b}) {}
''');
var list = _argumentList;
expect(range.nodeInList(list, list[1]), SourceRange(19, 6));
@ -264,7 +264,7 @@ void g(int a, int b) {}
void f() {
g(a: 1, b: 2, c: 3);
}
void g({int a, int b, int c}) {}
void g({int? a, int? b, int? c}) {}
''');
var list = _argumentList;
expect(range.nodeInList(list, list[1]), SourceRange(19, 6));
@ -286,7 +286,7 @@ void g(int a, int b, int c) {}
void f() {
g(a: 1);
}
void g({int a}) {}
void g({int? a}) {}
''');
var list = _argumentList;
expect(range.nodeInList(list, list[0]), SourceRange(15, 4));
@ -297,7 +297,7 @@ void g({int a}) {}
void f() {
g(a: 1,);
}
void g({int a}) {}
void g({int? a}) {}
''');
var list = _argumentList;
expect(range.nodeInList(list, list[0]), SourceRange(15, 5));