mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 10:33:28 +00:00
912005267d
Change-Id: I46be49b2effec3e38a3dc44cd45cfe736f77fa78 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182680 Commit-Queue: Sigmund Cherem <sigmund@google.com> Reviewed-by: Joshua Litt <joshualitt@google.com> Reviewed-by: Nicholas Shahan <nshahan@google.com> Reviewed-by: Stephen Adams <sra@google.com>
297 lines
9 KiB
Dart
297 lines
9 KiB
Dart
// Copyright (c) 2018, 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.
|
|
|
|
// Test generic instantiation with many type arguments.
|
|
|
|
import 'package:expect/expect.dart';
|
|
|
|
f1<T1>(T1 t1) => '$t1';
|
|
f2<T1, T2>(T1 t1, T2 t2) => '$t1$t2';
|
|
f3<T1, T2, T3>(T1 t1, T2 t2, T3 t3) => '$t1$t2$t3';
|
|
f4<T1, T2, T3, T4>(T1 t1, T2 t2, T3 t3, T4 t4) => '$t1$t2$t3$t4';
|
|
f5<T1, T2, T3, T4, T5>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) => '$t1$t2$t3$t4$t5';
|
|
f6<T1, T2, T3, T4, T5, T6>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) =>
|
|
'$t1$t2$t3$t4$t5$t6';
|
|
f7<T1, T2, T3, T4, T5, T6, T7>(
|
|
T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7';
|
|
f8<T1, T2, T3, T4, T5, T6, T7, T8>(
|
|
T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8';
|
|
f9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(
|
|
T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9';
|
|
f10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5,
|
|
T6 t6, T7 t7, T8 t8, T9 t9, T10 t10) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10';
|
|
f11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(T1 t1, T2 t2, T3 t3, T4 t4,
|
|
T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11';
|
|
f12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(T1 t1, T2 t2, T3 t3,
|
|
T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12';
|
|
f13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13';
|
|
f14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13,
|
|
T14 t14) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14';
|
|
f15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13,
|
|
T14 t14,
|
|
T15 t15) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14$t15';
|
|
f16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13,
|
|
T14 t14,
|
|
T15 t15,
|
|
T16 t16) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14$t15$t16';
|
|
f17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13,
|
|
T14 t14,
|
|
T15 t15,
|
|
T16 t16,
|
|
T17 t17) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14$t15$t16$t17';
|
|
f18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17,
|
|
T18>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13,
|
|
T14 t14,
|
|
T15 t15,
|
|
T16 t16,
|
|
T17 t17,
|
|
T18 t18) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14$t15$t16$t17$t18';
|
|
f19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17,
|
|
T18, T19>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13,
|
|
T14 t14,
|
|
T15 t15,
|
|
T16 t16,
|
|
T17 t17,
|
|
T18 t18,
|
|
T19 t19) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14$t15$t16$t17$t18$t19';
|
|
f20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17,
|
|
T18, T19, T20>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13,
|
|
T14 t14,
|
|
T15 t15,
|
|
T16 t16,
|
|
T17 t17,
|
|
T18 t18,
|
|
T19 t19,
|
|
T20 t20) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14$t15$t16$t17$t18$t19$t20';
|
|
f21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17,
|
|
T18, T19, T20, T21>(
|
|
T1 t1,
|
|
T2 t2,
|
|
T3 t3,
|
|
T4 t4,
|
|
T5 t5,
|
|
T6 t6,
|
|
T7 t7,
|
|
T8 t8,
|
|
T9 t9,
|
|
T10 t10,
|
|
T11 t11,
|
|
T12 t12,
|
|
T13 t13,
|
|
T14 t14,
|
|
T15 t15,
|
|
T16 t16,
|
|
T17 t17,
|
|
T18 t18,
|
|
T19 t19,
|
|
T20 t20,
|
|
T21 t21) =>
|
|
'$t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14$t15$t16$t17$t18$t19$t20$t21';
|
|
|
|
m1(Function(int) f) => f(1);
|
|
m2(Function(int, int) f) => f(1, 2);
|
|
m3(Function(int, int, int) f) => f(1, 2, 3);
|
|
m4(Function(int, int, int, int) f) => f(1, 2, 3, 4);
|
|
m5(Function(int, int, int, int, int) f) => f(1, 2, 3, 4, 5);
|
|
m6(Function(int, int, int, int, int, int) f) => f(1, 2, 3, 4, 5, 6);
|
|
m7(Function(int, int, int, int, int, int, int) f) => f(1, 2, 3, 4, 5, 6, 7);
|
|
m8(Function(int, int, int, int, int, int, int, int) f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8);
|
|
m9(Function(int, int, int, int, int, int, int, int, int) f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9);
|
|
m10(Function(int, int, int, int, int, int, int, int, int, int) f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
|
|
m11(Function(int, int, int, int, int, int, int, int, int, int, int) f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
|
|
m12(Function(int, int, int, int, int, int, int, int, int, int, int, int) f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
|
|
m13(
|
|
Function(
|
|
int, int, int, int, int, int, int, int, int, int, int, int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
|
|
m14(
|
|
Function(int, int, int, int, int, int, int, int, int, int, int, int,
|
|
int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14);
|
|
m15(
|
|
Function(int, int, int, int, int, int, int, int, int, int, int, int,
|
|
int, int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
|
|
m16(
|
|
Function(int, int, int, int, int, int, int, int, int, int, int, int,
|
|
int, int, int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
|
|
m17(
|
|
Function(int, int, int, int, int, int, int, int, int, int, int, int,
|
|
int, int, int, int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17);
|
|
m18(
|
|
Function(int, int, int, int, int, int, int, int, int, int, int, int,
|
|
int, int, int, int, int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18);
|
|
m19(
|
|
Function(int, int, int, int, int, int, int, int, int, int, int, int,
|
|
int, int, int, int, int, int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19);
|
|
m20(
|
|
Function(int, int, int, int, int, int, int, int, int, int, int, int,
|
|
int, int, int, int, int, int, int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
|
|
m21(
|
|
Function(int, int, int, int, int, int, int, int, int, int, int, int,
|
|
int, int, int, int, int, int, int, int, int)
|
|
f) =>
|
|
f(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
21);
|
|
|
|
main() {
|
|
Expect.equals('1', m1(f1));
|
|
Expect.equals('12', m2(f2));
|
|
Expect.equals('123', m3(f3));
|
|
Expect.equals('1234', m4(f4));
|
|
Expect.equals('12345', m5(f5));
|
|
Expect.equals('123456', m6(f6));
|
|
Expect.equals('1234567', m7(f7));
|
|
Expect.equals('12345678', m8(f8));
|
|
Expect.equals('123456789', m9(f9));
|
|
Expect.equals('12345678910', m10(f10));
|
|
Expect.equals('1234567891011', m11(f11));
|
|
Expect.equals('123456789101112', m12(f12));
|
|
Expect.equals('12345678910111213', m13(f13));
|
|
Expect.equals('1234567891011121314', m14(f14));
|
|
Expect.equals('123456789101112131415', m15(f15));
|
|
Expect.equals('12345678910111213141516', m16(f16));
|
|
Expect.equals('1234567891011121314151617', m17(f17));
|
|
Expect.equals('123456789101112131415161718', m18(f18));
|
|
Expect.equals('12345678910111213141516171819', m19(f19));
|
|
Expect.equals('1234567891011121314151617181920', m20(f20));
|
|
Expect.equals('123456789101112131415161718192021', m21(f21)); //# 01: ok
|
|
}
|