blob: 1dfcfe1d1810d0163d5144213906e07a2c064609 [file] [log] [blame]
// 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'));
}