@@ -856,18 +856,21 @@ class BodyBuilder extends ScopeListener<JumpTarget>
856856 FormalParameterBuilder parameter = formals.parameters[i];
857857 Expression initializer = parameter.variable.initializer;
858858 if (parameter.isOptional || initializer != null ) {
859- if (parameter.isOptional) {
860- initializer ?? = forest.createNullLiteral (
861- // TODO(ahe): Should store: originParameter.fileOffset
862- // https://github.com/dart-lang/sdk/issues/32289
863- noLocation);
859+ if (! parameter.initializerWasInferred) {
860+ parameter.initializerWasInferred = true ;
861+ if (parameter.isOptional) {
862+ initializer ?? = forest.createNullLiteral (
863+ // TODO(ahe): Should store: originParameter.fileOffset
864+ // https://github.com/dart-lang/sdk/issues/32289
865+ noLocation);
866+ }
867+ VariableDeclaration originParameter = builder.getFormalParameter (i);
868+ initializer = typeInferrer? .inferParameterInitializer (
869+ this , initializer, originParameter.type);
870+ originParameter.initializer = initializer..parent = originParameter;
871+ libraryBuilder.loader.transformPostInference (
872+ originParameter, transformSetLiterals, transformCollections);
864873 }
865- VariableDeclaration originParameter = builder.getFormalParameter (i);
866- initializer = typeInferrer? .inferParameterInitializer (
867- this , initializer, originParameter.type);
868- originParameter.initializer = initializer..parent = originParameter;
869- libraryBuilder.loader.transformPostInference (
870- originParameter, transformSetLiterals, transformCollections);
871874
872875 VariableDeclaration extensionTearOffParameter =
873876 builder.getExtensionTearOffParameter (i);
@@ -3185,7 +3188,9 @@ class BodyBuilder extends ScopeListener<JumpTarget>
31853188 initializer.fileOffset,
31863189 noLength);
31873190 } else {
3188- variable.initializer = initializer..parent = variable;
3191+ if (! parameter.initializerWasInferred) {
3192+ variable.initializer = initializer..parent = variable;
3193+ }
31893194 }
31903195 } else if (kind != FormalParameterKind .mandatory) {
31913196 variable.initializer ?? = forest.createNullLiteral (noLocation)
0 commit comments