diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart index 1585a7aa5d1..d6f0fa523cc 100644 --- a/pkg/dev_compiler/lib/src/kernel/compiler.dart +++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart @@ -12,6 +12,7 @@ import 'package:kernel/kernel.dart' hide MapEntry; import 'package:kernel/library_index.dart'; import 'package:kernel/type_algebra.dart'; import 'package:kernel/type_environment.dart'; +import 'package:kernel/src/dart_type_equivalence.dart'; import 'package:source_span/source_span.dart' show SourceLocation; import 'package:path/path.dart' as p; @@ -5331,7 +5332,8 @@ class ProgramCompiler extends ComputeOnceConstantVisitor } if (!isTypeError && - from.withDeclaredNullability(Nullability.nonNullable) == to && + DartTypeEquivalence(_coreTypes, ignoreTopLevelNullability: true) + .areEqual(from, to) && _mustBeNonNullable(to)) { // If the underlying type is the same, we only need a null check. return runtimeCall('nullCast(#, #)', [jsFrom, _emitType(to)]);