[tfa] Ignore missing optional parameters after global optimizations.

TFA currently sets parameter defaults to null when the parameter is unused. The kernel verifier tries to verify that no parameter initializers are null. This causes assertions to fail in dart2wasm when we run the verifier after TFA.

Change-Id: I4e44eca2398b7266f6cb3bbf200009e73e64cbf4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/479321
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
Nate Biggs
2026-02-10 10:15:36 -08:00
committed by Commit Queue
parent 0839235f05
commit 3a7b4327e9
+8 -2
View File
@@ -911,7 +911,10 @@ class VerifyingVisitor extends RecursiveResultVisitor<void> {
if (positionalIndex >= node.requiredParameterCount) {
VariableDeclaration positionalParameter =
node.positionalParameters[positionalIndex];
if (positionalParameter.initializer == null) {
if (positionalParameter.initializer == null &&
// Global transformations like TFA may not maintain this
// invariant.
stage != VerificationStage.afterGlobalTransformations) {
problem(
positionalParameter,
"An optional positional parameter is expected to have a "
@@ -921,7 +924,10 @@ class VerifyingVisitor extends RecursiveResultVisitor<void> {
}
for (VariableDeclaration namedParameter in node.namedParameters) {
if (!namedParameter.isRequired &&
namedParameter.initializer == null) {
namedParameter.initializer == null &&
// Global transformations like TFA may not maintain this
// invariant.
stage != VerificationStage.afterGlobalTransformations) {
problem(
namedParameter,
"An optional named parameter is expected to have a default "