4b04219d94
UntaggedClass::host_type_arguments_field_offset_in_words_ is initialized when class is finalized. When comparing generic types for the class which was not finalized, we cannot rely on the value of that field. Intrinsified Type.operator== has been using host_type_arguments_field_offset_in_words_ to check if the class is generic, and has been treating classes which are not finalized as non-generic. This has been causing the wrong result for generic types which are different only in type arguments. This change fixes Type.operator== intrinsics to check if type arguments match even if class was not finalized. Also, EquivalentClassIds helper was revised to take 3 labels explicitly for all possible outcomes (instead of 2 labels and a fall-through). TEST=runtime/tests/vm/dart/regress_47425_test.dart Fixes https://github.com/dart-lang/sdk/issues/47425 Change-Id: I3f49114644d44808c668df7cbb8a702cd42b3673 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216270 Reviewed-by: Tess Strickland <sstrickl@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>