Skip to content

Commit 1587b16

Browse files
bwilkersoncommit-bot@chromium.org
authored andcommitted
Add argument even when null is not a valid value
Based on Friday's conversation. Change-Id: I6c741b0b46cff674006827c34e2b96ec1d9fa041 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/162628 Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]>
1 parent 75fe96d commit 1587b16

File tree

3 files changed

+14
-54
lines changed

3 files changed

+14
-54
lines changed

pkg/analysis_server/lib/src/services/completion/dart/utilities.dart

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,13 +173,7 @@ DefaultArgument getDefaultStringParameterValue(ParameterElement parameter) {
173173
if (parameter != null) {
174174
var type = parameter.type;
175175
if (type is InterfaceType) {
176-
if (type.isDartCoreBool) {
177-
return DefaultArgument('false');
178-
} else if (type.isDartCoreDouble) {
179-
return DefaultArgument('0.0');
180-
} else if (type.isDartCoreInt) {
181-
return DefaultArgument('0');
182-
} else if (type.isDartCoreList) {
176+
if (type.isDartCoreList) {
183177
return DefaultArgument('[]', cursorPosition: 1);
184178
} else if (type.isDartCoreMap) {
185179
return DefaultArgument('{}', cursorPosition: 1);

pkg/analysis_server/lib/src/services/correction/dart/add_missing_required_argument.dart

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import 'package:analysis_server/src/services/correction/dart/abstract_producer.d
88
import 'package:analysis_server/src/services/correction/fix.dart';
99
import 'package:analyzer/dart/ast/ast.dart';
1010
import 'package:analyzer/dart/element/element.dart';
11-
import 'package:analyzer/dart/element/nullability_suffix.dart';
1211
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1312
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
1413

@@ -80,14 +79,6 @@ class AddMissingRequiredArgument extends CorrectionProducer {
8079
}
8180
}
8281
var defaultValue = getDefaultStringParameterValue(missingParameter);
83-
if (defaultValue == null &&
84-
libraryElement.isNonNullableByDefault &&
85-
missingParameter.type.nullabilitySuffix == NullabilitySuffix.none) {
86-
// In a library opted in to Null Safety we don't want to propose an
87-
// argument value of `null` for a parameter whose type doesn't allow
88-
// `null`.
89-
return;
90-
}
9182

9283
await builder.addDartFileEdit(file, (builder) {
9384
builder.addInsertion(offset, (builder) {

pkg/analysis_server/test/src/services/correction/fix/add_missing_required_argument_test.dart

Lines changed: 13 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class MyWidget extends Widget {
7474
}
7575
7676
build() {
77-
return new MyWidget(a: 1, b: 0,);
77+
return new MyWidget(a: 1, b: null,);
7878
}
7979
''');
8080
}
@@ -101,7 +101,7 @@ class A {
101101
}
102102
103103
void f() {
104-
A a = new A.named(a: 0);
104+
A a = new A.named(a: null);
105105
print(a);
106106
}
107107
''');
@@ -128,7 +128,7 @@ main() {
128128
import 'package:test/a.dart';
129129
130130
main() {
131-
A a = new A(a: 0);
131+
A a = new A(a: null);
132132
print(a);
133133
}
134134
''');
@@ -292,7 +292,7 @@ import 'package:meta/meta.dart';
292292
293293
test({@required int a, @required int bcd}) {}
294294
main() {
295-
test(a: 3, bcd: 0);
295+
test(a: 3, bcd: null);
296296
}
297297
''');
298298
}
@@ -312,7 +312,7 @@ import 'package:meta/meta.dart';
312312
313313
test({@required int a, @required int bcd}) {}
314314
main() {
315-
test(a: 0);
315+
test(a: null);
316316
}
317317
''', errorFilter: (error) => error.message.contains("'a'"));
318318
}
@@ -332,7 +332,7 @@ import 'package:meta/meta.dart';
332332
333333
test({@required int a, @required int bcd}) {}
334334
main() {
335-
test(bcd: 0);
335+
test(bcd: null);
336336
}
337337
''', errorFilter: (error) => error.message.contains("'bcd'"));
338338
}
@@ -420,10 +420,10 @@ import 'package:meta/meta.dart';
420420
421421
test({@required int abc}) {}
422422
main() {
423-
test(abc: 0);
423+
test(abc: null);
424424
}
425425
''');
426-
assertLinkedGroup(change.linkedEditGroups[0], ['0);']);
426+
assertLinkedGroup(change.linkedEditGroups[0], ['null);']);
427427
}
428428

429429
Future<void> test_single_normal() async {
@@ -441,7 +441,7 @@ import 'package:meta/meta.dart';
441441
442442
test(String x, {@required int abc}) {}
443443
main() {
444-
test("foo", abc: 0);
444+
test("foo", abc: null);
445445
}
446446
''');
447447
}
@@ -461,7 +461,7 @@ import 'package:meta/meta.dart';
461461
462462
test({@Required("Really who doesn't need an abc?") int abc}) {}
463463
main() {
464-
test(abc: 0);
464+
test(abc: null);
465465
}
466466
''');
467467
}
@@ -475,7 +475,7 @@ class AddMissingRequiredArgumentWithNullSafetyTest extends FixProcessorTest {
475475
@override
476476
FixKind get kind => DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT;
477477

478-
Future<void> test_nonNullable_supported() async {
478+
Future<void> test_nonNullable() async {
479479
await resolveTestUnit('''
480480
void f({required int x}) {}
481481
void g() {
@@ -485,22 +485,12 @@ void g() {
485485
await assertHasFix('''
486486
void f({required int x}) {}
487487
void g() {
488-
f(x: 0);
489-
}
490-
''');
491-
}
492-
493-
Future<void> test_nonNullable_unsupported() async {
494-
await resolveTestUnit('''
495-
void f({required DateTime d}) {}
496-
void g() {
497-
f();
488+
f(x: null);
498489
}
499490
''');
500-
await assertNoFix();
501491
}
502492

503-
Future<void> test_nullable_supported() async {
493+
Future<void> test_nullable() async {
504494
await resolveTestUnit('''
505495
void f({required int? x}) {}
506496
void g() {
@@ -509,21 +499,6 @@ void g() {
509499
''');
510500
await assertHasFix('''
511501
void f({required int? x}) {}
512-
void g() {
513-
f(x: 0);
514-
}
515-
''');
516-
}
517-
518-
Future<void> test_nullable_unsupported() async {
519-
await resolveTestUnit('''
520-
void f({required DateTime? x}) {}
521-
void g() {
522-
f();
523-
}
524-
''');
525-
await assertHasFix('''
526-
void f({required DateTime? x}) {}
527502
void g() {
528503
f(x: null);
529504
}

0 commit comments

Comments
 (0)