|  | // Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | import 'package:expect/expect.dart'; | 
|  |  | 
|  | dynamic global; | 
|  |  | 
|  | class Foo<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, | 
|  | T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, | 
|  | T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | 
|  | T30, T31> { | 
|  | @pragma('vm:never-inline') | 
|  | Generic<T31> testForT31(dynamic arg) { | 
|  | global = '''$T0 $T1 $T2 $T3 $T4 $T5 $T6 $T7 $T8 $T9 | 
|  | $T10 $T11 $T12 $T13 $T14 $T15 $T16 $T17 $T18 $T19 | 
|  | $T20 $T21 $T22 $T23 $T24 $T25 $T26 $T27 $T28 $T29 | 
|  | $T30 $T31'''; | 
|  | return arg as Generic<T31>; | 
|  | } | 
|  |  | 
|  | } | 
|  |  | 
|  | @pragma('vm:never-inline') | 
|  | Generic<T31> foo<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, | 
|  | T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, | 
|  | T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, | 
|  | T30, T31>(dynamic arg) { | 
|  | global = '''$T0 $T1 $T2 $T3 $T4 $T5 $T6 $T7 $T8 $T9 | 
|  | $T10 $T11 $T12 $T13 $T14 $T15 $T16 $T17 $T18 $T19 | 
|  | $T20 $T21 $T22 $T23 $T24 $T25 $T26 $T27 $T28 $T29 | 
|  | $T30 $T31'''; | 
|  | return arg as Generic<T31>; | 
|  | } | 
|  |  | 
|  | class Generic<T> {} | 
|  |  | 
|  | main() { | 
|  | final genericString = Generic<String>(); | 
|  | Expect.isTrue(identical(Foo<bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, | 
|  | bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, | 
|  | bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, | 
|  | bool, String>().testForT31(genericString), genericString)); | 
|  | Expect.isTrue((global as String).endsWith('bool String')); | 
|  |  | 
|  | Expect.isTrue(identical( | 
|  | foo<int, int, int, int, int, int, int, int, int, int, | 
|  | int, int, int, int, int, int, int, int, int, int, | 
|  | int, int, int, int, int, int, int, int, int, int, | 
|  | int, String>(genericString), genericString)); | 
|  | Expect.isTrue((global as String).endsWith('int String')); | 
|  | } |