bd951bb5ad
This CL introduces handling of promotions of the form `x is T` where `x` has static type `X?`, `X` is a type variable, and `T` is non-nullable. They are treated as an equivalent of `x == null || x is T`, effectively resulting in the static type of `x` being `X & T` in the promoted code. Closes https://github.com/dart-lang/sdk/issues/52973 Change-Id: Ibfa6e32e14202651db09cfb4fbbdec864552b96a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/316381 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>