feff33b892
Instantiator type arguments are sometimes reused instead of doing instantiation at run time. VM has a bunch of assertions to verify that this optimization happened. In case of bytecode pipeline, decision to reuse instantiator type arguments is done while generating bytecode. For this optimization to correctly happen, bytecode generator should be able to construct instantiator type arguments the same way as VM does at run time. Besides flattening of type arguments of superclasses, VM shrinks them by overlapping type parameters with type arguments of a superclass (if they match). This CL implements such overlapping in bytecode generator. Also, --overlap_type_arguments VM option is removed, as disabling of type arguments overlapping would break bytecode pipeline. Change-Id: Ib276c0e688e0e86b44278d88a5c0af09dd342798 Reviewed-on: https://dart-review.googlesource.com/70060 Reviewed-by: Régis Crelier <regis@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>