Skip to content

Commit f504d61

Browse files
Generate optional parameter initializers in BodyBuilder
Change-Id: I3f33c660e25564dbdf907d6331cf391537113549 Reviewed-on: https://dart-review.googlesource.com/c/86341 Reviewed-by: Dmitry Stefantsov <[email protected]>
1 parent b460773 commit f504d61

File tree

2 files changed

+2
-7
lines changed

2 files changed

+2
-7
lines changed

pkg/front_end/lib/src/fasta/kernel/body_builder.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2716,6 +2716,8 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
27162716
} else {
27172717
variable.initializer = initializer..parent = variable;
27182718
}
2719+
} else if (kind != FormalParameterKind.mandatory) {
2720+
variable.initializer ??= forest.literalNull(null)..parent = variable;
27192721
}
27202722
if (annotations != null) {
27212723
if (functionNestingLevel == 0) {

pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,19 +1381,12 @@ abstract class TypeInferrerImpl extends TypeInferrer {
13811381
for (var i = 0; i < positionalParameters.length; i++) {
13821382
var parameter = positionalParameters[i];
13831383
inferMetadataKeepingHelper(parameter.annotations);
1384-
if (i >= function.requiredParameterCount &&
1385-
parameter.initializer == null) {
1386-
parameter.initializer = new NullLiteral()..parent = parameter;
1387-
}
13881384
if (parameter.initializer != null) {
13891385
inferExpression(parameter.initializer, parameter.type, !isTopLevel);
13901386
}
13911387
}
13921388
for (var parameter in function.namedParameters) {
13931389
inferMetadataKeepingHelper(parameter.annotations);
1394-
if (parameter.initializer == null) {
1395-
parameter.initializer = new NullLiteral()..parent = parameter;
1396-
}
13971390
inferExpression(parameter.initializer, parameter.type, !isTopLevel);
13981391
}
13991392
}

0 commit comments

Comments
 (0)