From b034a909a624036f7da1bd16136aa41b8fadcf4b Mon Sep 17 00:00:00 2001 From: Mayank Patke Date: Mon, 30 Oct 2023 22:08:47 +0000 Subject: [PATCH] [dart2js] Avoid discarding type tests during SSA with --experiment-null-safety-checks Change-Id: If3e2465103494d4772b1f8b71e7c57ae83b3e036 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/332371 Commit-Queue: Mayank Patke Reviewed-by: Nate Biggs --- pkg/compiler/lib/src/ssa/nodes.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/compiler/lib/src/ssa/nodes.dart b/pkg/compiler/lib/src/ssa/nodes.dart index 302b22c54f2..21488aa6fc2 100644 --- a/pkg/compiler/lib/src/ssa/nodes.dart +++ b/pkg/compiler/lib/src/ssa/nodes.dart @@ -4343,6 +4343,10 @@ AbstractBool _typeTest( JClosedWorld closedWorld, CompilerOptions options, {required bool isCast}) { + // The null safety mode may affect the result of a type test, so defer to + // runtime. + if (options.experimentNullSafetyChecks) return AbstractBool.Maybe; + JCommonElements commonElements = closedWorld.commonElements; DartTypes dartTypes = closedWorld.dartTypes; AbstractValueDomain abstractValueDomain = closedWorld.abstractValueDomain;