d039e2865b
When cone type has a large number of allocated subtypes, TFA uses symbolic wide cone type as a faster approximation to speed up the analysis. Intersection of wide cone type C1+ with cone type C2+ when there is no subtyping relation between C1 and C2 results in approximate type C1+. As a result, analysis may fail to determine that certain type test will never succeed. This change improves precision of cone and wide cone intersections and unions in case cone type has an empty specialization (no allocated subtypes). TEST=pkg/vm/testcases/transformations/type_flow/transformer/regress_60733.dart Fixes https://github.com/dart-lang/sdk/issues/60733 Change-Id: I51287d38a9e5f3c0ce88dab358d0825843a0de03 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/428840 Reviewed-by: Slava Egorov <vegorov@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>