Skip to content

Commit 63c80dd

Browse files
committed
additional test
1 parent 5f3f6cc commit 63c80dd

9 files changed

+145
-4
lines changed

tests/baselines/reference/restParameterWithBindingPattern1.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/baselines/reference/restParameterWithBindingPattern1.js.map

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
===================================================================
2+
JsFile: restParameterWithBindingPattern1.js
3+
mapUrl: restParameterWithBindingPattern1.js.map
4+
sourceRoot:
5+
sources: restParameterWithBindingPattern1.ts
6+
===================================================================
7+
-------------------------------------------------------------------
8+
emittedFile:tests/cases/compiler/restParameterWithBindingPattern1.js
9+
sourceFile:restParameterWithBindingPattern1.ts
10+
-------------------------------------------------------------------
11+
>>>function a() {
12+
1 >
13+
2 >^^^^^^^^^
14+
3 > ^
15+
4 > ^^^^^^^->
16+
1 >
17+
2 >function
18+
3 > a
19+
1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
20+
2 >Emitted(1, 10) Source(1, 10) + SourceIndex(0)
21+
3 >Emitted(1, 11) Source(1, 11) + SourceIndex(0)
22+
---
23+
>>> var _a = [];
24+
1->^^^^
25+
2 > ^^^^^^^^^^^^
26+
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
27+
1->(
28+
2 > ...{a, b}
29+
1->Emitted(2, 5) Source(1, 12) + SourceIndex(0)
30+
2 >Emitted(2, 17) Source(1, 21) + SourceIndex(0)
31+
---
32+
>>> for (var _i = 0; _i < arguments.length; _i++) {
33+
1->^^^^^^^^^
34+
2 > ^^^^^^^^^^
35+
3 > ^^
36+
4 > ^^^^^^^^^^^^^^^^^^^^^
37+
5 > ^^
38+
6 > ^^^^
39+
1->
40+
2 > ...{a, b}
41+
3 >
42+
4 > ...{a, b}
43+
5 >
44+
6 > ...{a, b}
45+
1->Emitted(3, 10) Source(1, 12) + SourceIndex(0)
46+
2 >Emitted(3, 20) Source(1, 21) + SourceIndex(0)
47+
3 >Emitted(3, 22) Source(1, 12) + SourceIndex(0)
48+
4 >Emitted(3, 43) Source(1, 21) + SourceIndex(0)
49+
5 >Emitted(3, 45) Source(1, 12) + SourceIndex(0)
50+
6 >Emitted(3, 49) Source(1, 21) + SourceIndex(0)
51+
---
52+
>>> _a[_i] = arguments[_i];
53+
1 >^^^^^^^^
54+
2 > ^^^^^^^^^^^^^^^^^^^^^^^
55+
1 >
56+
2 > ...{a, b}
57+
1 >Emitted(4, 9) Source(1, 12) + SourceIndex(0)
58+
2 >Emitted(4, 32) Source(1, 21) + SourceIndex(0)
59+
---
60+
>>> }
61+
>>> var a = _a.a, b = _a.b;
62+
1 >^^^^
63+
2 > ^^^^
64+
3 > ^^^^^^^^
65+
4 > ^^
66+
5 > ^^^^^^^^
67+
6 > ^
68+
1 >
69+
2 > ...{
70+
3 > a
71+
4 > ,
72+
5 > b
73+
6 > }
74+
1 >Emitted(6, 5) Source(1, 12) + SourceIndex(0)
75+
2 >Emitted(6, 9) Source(1, 16) + SourceIndex(0)
76+
3 >Emitted(6, 17) Source(1, 17) + SourceIndex(0)
77+
4 >Emitted(6, 19) Source(1, 19) + SourceIndex(0)
78+
5 >Emitted(6, 27) Source(1, 20) + SourceIndex(0)
79+
6 >Emitted(6, 28) Source(1, 21) + SourceIndex(0)
80+
---
81+
>>>}
82+
1 >
83+
2 >^
84+
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
85+
1 >) {
86+
2 >}
87+
1 >Emitted(7, 1) Source(1, 25) + SourceIndex(0)
88+
2 >Emitted(7, 2) Source(1, 26) + SourceIndex(0)
89+
---
90+
>>>//# sourceMappingURL=restParameterWithBindingPattern1.js.map

tests/baselines/reference/restParameterWithBindingPattern3.errors.txt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@ tests/cases/compiler/restParameterWithBindingPattern3.ts(1,16): error TS2322: Ty
22
tests/cases/compiler/restParameterWithBindingPattern3.ts(1,23): error TS2322: Type 'true' is not assignable to type 'string'.
33
tests/cases/compiler/restParameterWithBindingPattern3.ts(3,23): error TS1186: A rest element cannot have an initializer.
44
tests/cases/compiler/restParameterWithBindingPattern3.ts(7,23): error TS2493: Tuple type '[boolean, string, number]' with length '3' cannot be assigned to tuple with length '4'.
5+
tests/cases/compiler/restParameterWithBindingPattern3.ts(9,19): error TS2322: Type '1' is not assignable to type 'boolean'.
6+
tests/cases/compiler/restParameterWithBindingPattern3.ts(9,29): error TS2322: Type 'true' is not assignable to type 'string'.
7+
tests/cases/compiler/restParameterWithBindingPattern3.ts(9,48): error TS2566: A rest element cannot have a property name.
58

69

7-
==== tests/cases/compiler/restParameterWithBindingPattern3.ts (4 errors) ====
10+
==== tests/cases/compiler/restParameterWithBindingPattern3.ts (7 errors) ====
811
function a(...[a = 1, b = true]: string[]) { }
912
~
1013
!!! error TS2322: Type '1' is not assignable to type 'string'.
@@ -19,4 +22,12 @@ tests/cases/compiler/restParameterWithBindingPattern3.ts(7,23): error TS2493: Tu
1922

2023
function d(...[a, , , d]: [boolean, string, number]) { }
2124
~
22-
!!! error TS2493: Tuple type '[boolean, string, number]' with length '3' cannot be assigned to tuple with length '4'.
25+
!!! error TS2493: Tuple type '[boolean, string, number]' with length '3' cannot be assigned to tuple with length '4'.
26+
27+
function e(...{0: a = 1, 1: b = true, ...rest: rest}: [boolean, string, number]) { }
28+
~
29+
!!! error TS2322: Type '1' is not assignable to type 'boolean'.
30+
~
31+
!!! error TS2322: Type 'true' is not assignable to type 'string'.
32+
~~~~
33+
!!! error TS2566: A rest element cannot have a property name.

tests/baselines/reference/restParameterWithBindingPattern3.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,20 @@ function b(...[...foo = []]: string[]) { }
55

66
function c(...{0: a, length, 3: d}: [boolean, string, number]) { }
77

8-
function d(...[a, , , d]: [boolean, string, number]) { }
8+
function d(...[a, , , d]: [boolean, string, number]) { }
9+
10+
function e(...{0: a = 1, 1: b = true, ...rest: rest}: [boolean, string, number]) { }
911

1012
//// [restParameterWithBindingPattern3.js]
13+
var __rest = (this && this.__rest) || function (s, e) {
14+
var t = {};
15+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16+
t[p] = s[p];
17+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
18+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
19+
t[p[i]] = s[p[i]];
20+
return t;
21+
};
1122
function a() {
1223
var _a = [];
1324
for (var _i = 0; _i < arguments.length; _i++) {
@@ -36,3 +47,10 @@ function d() {
3647
}
3748
var a = _a[0], d = _a[3];
3849
}
50+
function e() {
51+
var _a = [];
52+
for (var _i = 0; _i < arguments.length; _i++) {
53+
_a[_i] = arguments[_i];
54+
}
55+
var _b = _a[0], a = _b === void 0 ? 1 : _b, _c = _a[1], b = _c === void 0 ? true : _c, rest = __rest(_a, [0, 1]);
56+
}

tests/baselines/reference/restParameterWithBindingPattern3.symbols

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,9 @@ function d(...[a, , , d]: [boolean, string, number]) { }
1919
>a : Symbol(a, Decl(restParameterWithBindingPattern3.ts, 6, 15))
2020
>d : Symbol(d, Decl(restParameterWithBindingPattern3.ts, 6, 21))
2121

22+
function e(...{0: a = 1, 1: b = true, ...rest: rest}: [boolean, string, number]) { }
23+
>e : Symbol(e, Decl(restParameterWithBindingPattern3.ts, 6, 56))
24+
>a : Symbol(a, Decl(restParameterWithBindingPattern3.ts, 8, 15))
25+
>b : Symbol(b, Decl(restParameterWithBindingPattern3.ts, 8, 24))
26+
>rest : Symbol(rest, Decl(restParameterWithBindingPattern3.ts, 8, 37))
27+

tests/baselines/reference/restParameterWithBindingPattern3.types

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,12 @@ function d(...[a, , , d]: [boolean, string, number]) { }
2424
> : undefined
2525
>d : any
2626

27+
function e(...{0: a = 1, 1: b = true, ...rest: rest}: [boolean, string, number]) { }
28+
>e : (__0_0: boolean, __0_1: string, __0_2: number) => void
29+
>a : boolean
30+
>1 : 1
31+
>b : string
32+
>true : true
33+
>rest : any
34+
>rest : { [n: number]: string | number | boolean; 2: number; length: 3; toString(): string; toLocaleString(): string; pop(): string | number | boolean; push(...items: (string | number | boolean)[]): number; concat(...items: ConcatArray<string | number | boolean>[]): (string | number | boolean)[]; concat(...items: (string | number | boolean | ConcatArray<string | number | boolean>)[]): (string | number | boolean)[]; join(separator?: string): string; reverse(): (string | number | boolean)[]; shift(): string | number | boolean; slice(start?: number, end?: number): (string | number | boolean)[]; sort(compareFn?: (a: string | number | boolean, b: string | number | boolean) => number): [boolean, string, number]; splice(start: number, deleteCount?: number): (string | number | boolean)[]; splice(start: number, deleteCount: number, ...items: (string | number | boolean)[]): (string | number | boolean)[]; unshift(...items: (string | number | boolean)[]): number; indexOf(searchElement: string | number | boolean, fromIndex?: number): number; lastIndexOf(searchElement: string | number | boolean, fromIndex?: number): number; every(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => void, thisArg?: any): void; map<U>(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => U, thisArg?: any): U[]; filter<S extends string | number | boolean>(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => any, thisArg?: any): (string | number | boolean)[]; reduce(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean): string | number | boolean; reduce(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean, initialValue: string | number | boolean): string | number | boolean; reduce<U>(callbackfn: (previousValue: U, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean): string | number | boolean; reduceRight(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean, initialValue: string | number | boolean): string | number | boolean; reduceRight<U>(callbackfn: (previousValue: U, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => U, initialValue: U): U; }
35+
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1+
// @sourcemap: true
2+
13
function a(...{a, b}) { }

tests/cases/compiler/restParameterWithBindingPattern3.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ function b(...[...foo = []]: string[]) { }
44

55
function c(...{0: a, length, 3: d}: [boolean, string, number]) { }
66

7-
function d(...[a, , , d]: [boolean, string, number]) { }
7+
function d(...[a, , , d]: [boolean, string, number]) { }
8+
9+
function e(...{0: a = 1, 1: b = true, ...rest: rest}: [boolean, string, number]) { }

0 commit comments

Comments
 (0)