1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315
|
=== tests/cases/conformance/types/rest/genericRestParameters2.ts ===
declare const t1: [number, string, ...boolean[]];
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
declare const t2: [string, ...boolean[]];
>t2 : Symbol(t2, Decl(genericRestParameters2.ts, 1, 13))
declare const t3: [...boolean[]];
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
declare const t4: [];
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
declare let f00: (...x: [number, string, boolean]) => void;
>f00 : Symbol(f00, Decl(genericRestParameters2.ts, 5, 11))
>x : Symbol(x, Decl(genericRestParameters2.ts, 5, 18))
declare let f01: (a: number, ...x: [string, boolean]) => void;
>f01 : Symbol(f01, Decl(genericRestParameters2.ts, 6, 11))
>a : Symbol(a, Decl(genericRestParameters2.ts, 6, 18))
>x : Symbol(x, Decl(genericRestParameters2.ts, 6, 28))
declare let f02: (a: number, b: string, ...x: [boolean]) => void;
>f02 : Symbol(f02, Decl(genericRestParameters2.ts, 7, 11))
>a : Symbol(a, Decl(genericRestParameters2.ts, 7, 18))
>b : Symbol(b, Decl(genericRestParameters2.ts, 7, 28))
>x : Symbol(x, Decl(genericRestParameters2.ts, 7, 39))
declare let f03: (a: number, b: string, c: boolean) => void;
>f03 : Symbol(f03, Decl(genericRestParameters2.ts, 8, 11))
>a : Symbol(a, Decl(genericRestParameters2.ts, 8, 18))
>b : Symbol(b, Decl(genericRestParameters2.ts, 8, 28))
>c : Symbol(c, Decl(genericRestParameters2.ts, 8, 39))
declare let f04: (a: number, b: string, c: boolean, ...x: []) => void;
>f04 : Symbol(f04, Decl(genericRestParameters2.ts, 9, 11))
>a : Symbol(a, Decl(genericRestParameters2.ts, 9, 18))
>b : Symbol(b, Decl(genericRestParameters2.ts, 9, 28))
>c : Symbol(c, Decl(genericRestParameters2.ts, 9, 39))
>x : Symbol(x, Decl(genericRestParameters2.ts, 9, 51))
declare let f10: (...x: [number, string, ...boolean[]]) => void;
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
>x : Symbol(x, Decl(genericRestParameters2.ts, 11, 18))
declare let f11: (a: number, ...x: [string, ...boolean[]]) => void;
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
>a : Symbol(a, Decl(genericRestParameters2.ts, 12, 18))
>x : Symbol(x, Decl(genericRestParameters2.ts, 12, 28))
declare let f12: (a: number, b: string, ...x: [...boolean[]]) => void;
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
>a : Symbol(a, Decl(genericRestParameters2.ts, 13, 18))
>b : Symbol(b, Decl(genericRestParameters2.ts, 13, 28))
>x : Symbol(x, Decl(genericRestParameters2.ts, 13, 39))
declare let f13: (a: number, b: string, ...c: boolean[]) => void;
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
>a : Symbol(a, Decl(genericRestParameters2.ts, 14, 18))
>b : Symbol(b, Decl(genericRestParameters2.ts, 14, 28))
>c : Symbol(c, Decl(genericRestParameters2.ts, 14, 39))
declare const ns: [number, string];
>ns : Symbol(ns, Decl(genericRestParameters2.ts, 16, 13))
declare const sn: [string, number];
>sn : Symbol(sn, Decl(genericRestParameters2.ts, 17, 13))
f10(42, "hello");
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
f10(42, "hello", true);
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
f10(42, "hello", true, false);
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
f10(t1[0], t1[1], t1[2], t1[3]);
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>0 : Symbol(0)
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>1 : Symbol(1)
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f10(...t1);
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f10(42, ...t2);
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
>t2 : Symbol(t2, Decl(genericRestParameters2.ts, 1, 13))
f10(42, "hello", ...t3);
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
f10(42, "hello", true, ...t4);
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
f10(42, "hello", true, ...t4, false, ...t3);
>f10 : Symbol(f10, Decl(genericRestParameters2.ts, 11, 11))
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
f11(42, "hello");
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
f11(42, "hello", true);
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
f11(42, "hello", true, false);
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
f11(t1[0], t1[1], t1[2], t1[3]);
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>0 : Symbol(0)
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>1 : Symbol(1)
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f11(...t1);
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f11(42, ...t2);
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
>t2 : Symbol(t2, Decl(genericRestParameters2.ts, 1, 13))
f11(42, "hello", ...t3);
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
f11(42, "hello", true, ...t4);
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
f11(42, "hello", true, ...t4, false, ...t3);
>f11 : Symbol(f11, Decl(genericRestParameters2.ts, 12, 11))
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
f12(42, "hello");
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
f12(42, "hello", true);
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
f12(42, "hello", true, false);
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
f12(t1[0], t1[1], t1[2], t1[3]);
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>0 : Symbol(0)
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>1 : Symbol(1)
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f12(...t1);
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f12(42, ...t2);
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
>t2 : Symbol(t2, Decl(genericRestParameters2.ts, 1, 13))
f12(42, "hello", ...t3);
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
f12(42, "hello", true, ...t4);
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
f12(42, "hello", true, ...t4, false, ...t3);
>f12 : Symbol(f12, Decl(genericRestParameters2.ts, 13, 11))
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
f13(42, "hello");
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
f13(42, "hello", true);
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
f13(42, "hello", true, false);
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
f13(t1[0], t1[1], t1[2], t1[3]);
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>0 : Symbol(0)
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>1 : Symbol(1)
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f13(...t1);
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f13(42, ...t2);
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
>t2 : Symbol(t2, Decl(genericRestParameters2.ts, 1, 13))
f13(42, "hello", ...t3);
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
f13(42, "hello", true, ...t4);
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
f13(42, "hello", true, ...t4, false, ...t3);
>f13 : Symbol(f13, Decl(genericRestParameters2.ts, 14, 11))
>t4 : Symbol(t4, Decl(genericRestParameters2.ts, 3, 13))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
declare const f20: <T extends unknown[]>(...args: T) => T;
>f20 : Symbol(f20, Decl(genericRestParameters2.ts, 59, 13))
>T : Symbol(T, Decl(genericRestParameters2.ts, 59, 20))
>args : Symbol(args, Decl(genericRestParameters2.ts, 59, 41))
>T : Symbol(T, Decl(genericRestParameters2.ts, 59, 20))
>T : Symbol(T, Decl(genericRestParameters2.ts, 59, 20))
f20(...t1);
>f20 : Symbol(f20, Decl(genericRestParameters2.ts, 59, 13))
>t1 : Symbol(t1, Decl(genericRestParameters2.ts, 0, 13))
f20(42, ...t2);
>f20 : Symbol(f20, Decl(genericRestParameters2.ts, 59, 13))
>t2 : Symbol(t2, Decl(genericRestParameters2.ts, 1, 13))
f20(42, "hello", ...t3);
>f20 : Symbol(f20, Decl(genericRestParameters2.ts, 59, 13))
>t3 : Symbol(t3, Decl(genericRestParameters2.ts, 2, 13))
f20(42, "hello", ...t2, true);
>f20 : Symbol(f20, Decl(genericRestParameters2.ts, 59, 13))
>t2 : Symbol(t2, Decl(genericRestParameters2.ts, 1, 13))
type T01 = Parameters<(x: number, y: string, ...z: boolean[]) => void>;
>T01 : Symbol(T01, Decl(genericRestParameters2.ts, 64, 30))
>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(genericRestParameters2.ts, 66, 23))
>y : Symbol(y, Decl(genericRestParameters2.ts, 66, 33))
>z : Symbol(z, Decl(genericRestParameters2.ts, 66, 44))
type T02 = Parameters<(...args: [number, string, ...boolean[]]) => void>;
>T02 : Symbol(T02, Decl(genericRestParameters2.ts, 66, 71))
>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --))
>args : Symbol(args, Decl(genericRestParameters2.ts, 67, 23))
type T03 = ConstructorParameters<new (x: number, y: string, ...z: boolean[]) => void>;
>T03 : Symbol(T03, Decl(genericRestParameters2.ts, 67, 73))
>ConstructorParameters : Symbol(ConstructorParameters, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(genericRestParameters2.ts, 68, 38))
>y : Symbol(y, Decl(genericRestParameters2.ts, 68, 48))
>z : Symbol(z, Decl(genericRestParameters2.ts, 68, 59))
type T04 = ConstructorParameters<new (...args: [number, string, ...boolean[]]) => void>;
>T04 : Symbol(T04, Decl(genericRestParameters2.ts, 68, 86))
>ConstructorParameters : Symbol(ConstructorParameters, Decl(lib.es5.d.ts, --, --))
>args : Symbol(args, Decl(genericRestParameters2.ts, 69, 38))
type T05<T extends any[]> = Parameters<(x: string, ...args: T) => void>;
>T05 : Symbol(T05, Decl(genericRestParameters2.ts, 69, 88))
>T : Symbol(T, Decl(genericRestParameters2.ts, 70, 9))
>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(genericRestParameters2.ts, 70, 40))
>args : Symbol(args, Decl(genericRestParameters2.ts, 70, 50))
>T : Symbol(T, Decl(genericRestParameters2.ts, 70, 9))
type T06 = T05<[number, ...boolean[]]>;
>T06 : Symbol(T06, Decl(genericRestParameters2.ts, 70, 72))
>T05 : Symbol(T05, Decl(genericRestParameters2.ts, 69, 88))
type P1<T extends Function> = T extends (head: infer A, ...tail: infer B) => any ? { head: A, tail: B } : any[];
>P1 : Symbol(P1, Decl(genericRestParameters2.ts, 71, 39))
>T : Symbol(T, Decl(genericRestParameters2.ts, 73, 8))
>Function : Symbol(Function, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>T : Symbol(T, Decl(genericRestParameters2.ts, 73, 8))
>head : Symbol(head, Decl(genericRestParameters2.ts, 73, 41))
>A : Symbol(A, Decl(genericRestParameters2.ts, 73, 52))
>tail : Symbol(tail, Decl(genericRestParameters2.ts, 73, 55))
>B : Symbol(B, Decl(genericRestParameters2.ts, 73, 70))
>head : Symbol(head, Decl(genericRestParameters2.ts, 73, 84))
>A : Symbol(A, Decl(genericRestParameters2.ts, 73, 52))
>tail : Symbol(tail, Decl(genericRestParameters2.ts, 73, 93))
>B : Symbol(B, Decl(genericRestParameters2.ts, 73, 70))
type T10 = P1<(x: number, y: string, ...z: boolean[]) => void>;
>T10 : Symbol(T10, Decl(genericRestParameters2.ts, 73, 112))
>P1 : Symbol(P1, Decl(genericRestParameters2.ts, 71, 39))
>x : Symbol(x, Decl(genericRestParameters2.ts, 75, 15))
>y : Symbol(y, Decl(genericRestParameters2.ts, 75, 25))
>z : Symbol(z, Decl(genericRestParameters2.ts, 75, 36))
type T11 = P1<(...z: number[]) => void>;
>T11 : Symbol(T11, Decl(genericRestParameters2.ts, 75, 63))
>P1 : Symbol(P1, Decl(genericRestParameters2.ts, 71, 39))
>z : Symbol(z, Decl(genericRestParameters2.ts, 76, 15))
type T12 = P1<(x: number, y: number) => void>;
>T12 : Symbol(T12, Decl(genericRestParameters2.ts, 76, 40))
>P1 : Symbol(P1, Decl(genericRestParameters2.ts, 71, 39))
>x : Symbol(x, Decl(genericRestParameters2.ts, 77, 15))
>y : Symbol(y, Decl(genericRestParameters2.ts, 77, 25))
|