bcaf426cdf
Avoid caching generic types C<T1,...,Tn> in the object table if any of type arguments T1,...,Tn are not cacheable. Otherwise, bytecode reader might create function type 'C<Y0> Function<Y0>()' where cached type 'C<Y0>' references parameter type Y0 which belongs to a wrong owner, such as another function type 'C<Y0> Function<Y0>(int)'. Also, fix equivalence of default values of function type parameters in case matching 'null' (meaning all dynamic) and '[dynamic, ..., dynamic]'. This may happen during canonicalization before '[dynamic, ..., dynamic]' type arguments are replaced with 'null'. TEST=ci Change-Id: If81736fb18a62fd16fd93e59436c8cd7ccce94ff Cq-Include-Trybots: luci.dart.try:vm-aot-dyn-linux-debug-x64-try,vm-aot-dyn-linux-product-x64-try,vm-dyn-linux-debug-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/437522 Reviewed-by: Slava Egorov <vegorov@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>