mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 00:13:50 +00:00
[analysis_server] DataDriven
to handle MISSING_REQUIRED_ARGUMENT
Fixes #45475 Change-Id: Ibe5e3b393183affb15ed5fd3449f7c497acec14d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260600 Commit-Queue: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
0a23e439e9
commit
20218dfe15
|
@ -69,6 +69,9 @@ class BulkFixProcessor {
|
|||
CompileTimeErrorCode.INVALID_OVERRIDE: [
|
||||
DataDriven.new,
|
||||
],
|
||||
CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT: [
|
||||
DataDriven.new,
|
||||
],
|
||||
CompileTimeErrorCode.MIXIN_OF_NON_CLASS: [
|
||||
DataDriven.new,
|
||||
],
|
||||
|
@ -469,7 +472,9 @@ class BulkFixProcessor {
|
|||
class BulkFixRequestResult {
|
||||
final ChangeBuilder? builder;
|
||||
final String? errorMessage;
|
||||
|
||||
BulkFixRequestResult(this.builder) : errorMessage = null;
|
||||
|
||||
BulkFixRequestResult.error(this.errorMessage) : builder = null;
|
||||
}
|
||||
|
||||
|
@ -491,5 +496,6 @@ extension on String {
|
|||
|
||||
extension on int {
|
||||
String get isAre => this == 1 ? 'is' : 'are';
|
||||
|
||||
String get itThem => this == 1 ? 'it' : 'them';
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ void main() {
|
|||
defineReflectiveTests(MixinOfNonClassTest);
|
||||
defineReflectiveTests(NewWithUndefinedConstructorDefaultTest);
|
||||
defineReflectiveTests(NonBulkFixTest);
|
||||
defineReflectiveTests(NotEnoughPositionalArgumentsTest);
|
||||
defineReflectiveTests(NotEnoughArgumentsTest);
|
||||
defineReflectiveTests(OverrideOnNonOverridingMethodTest);
|
||||
defineReflectiveTests(UndefinedClassTest);
|
||||
defineReflectiveTests(UndefinedFunctionTest);
|
||||
|
@ -540,7 +540,7 @@ class NoProducerOverlapsTest {
|
|||
}
|
||||
|
||||
@reflectiveTest
|
||||
class NotEnoughPositionalArgumentsTest extends _DataDrivenTest {
|
||||
class NotEnoughArgumentsTest extends _DataDrivenTest {
|
||||
Future<void> test_addParameter() async {
|
||||
setPackageContent('''
|
||||
int f(int x, int y) => x + y;
|
||||
|
@ -575,6 +575,45 @@ void g() {
|
|||
''');
|
||||
}
|
||||
|
||||
Future<void> test_addParameter_named() async {
|
||||
setPackageContent('''
|
||||
class C {
|
||||
void m({required String x}) {}
|
||||
}
|
||||
''');
|
||||
addPackageDataFile('''
|
||||
version: 1
|
||||
transforms:
|
||||
- title: 'Add parameter'
|
||||
date: 2022-09-22
|
||||
element:
|
||||
uris: ['$importUri']
|
||||
method: 'm'
|
||||
inClass: 'C'
|
||||
changes:
|
||||
- kind: 'addParameter'
|
||||
index: 0
|
||||
name: 'x'
|
||||
style: required_named
|
||||
argumentValue:
|
||||
expression: 'value'
|
||||
''');
|
||||
await resolveTestCode('''
|
||||
import '$importUri';
|
||||
void f(String value) {
|
||||
var c = C();
|
||||
c.m();
|
||||
}
|
||||
''');
|
||||
await assertHasFix('''
|
||||
import '$importUri';
|
||||
void f(String value) {
|
||||
var c = C();
|
||||
c.m(x: value);
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
Future<void> test_addParameter_withImport() async {
|
||||
newFile('$workspaceRootPath/p/lib/d.dart', '''
|
||||
class D {}
|
||||
|
|
Loading…
Reference in a new issue