mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 09:31:58 +00:00
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:
parent
33c6606085
commit
7262decaea
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in a new issue