Skip to content

Commit 3e87dec

Browse files
committed
Add a failing test for dependent parameters
1 parent 831b770 commit 3e87dec

File tree

4 files changed

+105
-0
lines changed

4 files changed

+105
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//// [dependentParameters.ts]
2+
type Args = ['A', number] | ['B', string]
3+
4+
declare function fn10(cb: (...args: Args) => void): void
5+
6+
fn10((kind, data) => {
7+
if (kind === 'A') {
8+
data.toFixed();
9+
}
10+
if (kind === 'B') {
11+
data.toUpperCase();
12+
}
13+
})
14+
15+
16+
//// [dependentParameters.js]
17+
fn10(function (kind, data) {
18+
if (kind === 'A') {
19+
data.toFixed();
20+
}
21+
if (kind === 'B') {
22+
data.toUpperCase();
23+
}
24+
});
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
=== tests/cases/conformance/controlFlow/dependentParameters.ts ===
2+
type Args = ['A', number] | ['B', string]
3+
>Args : Symbol(Args, Decl(dependentParameters.ts, 0, 0))
4+
5+
declare function fn10(cb: (...args: Args) => void): void
6+
>fn10 : Symbol(fn10, Decl(dependentParameters.ts, 0, 41))
7+
>cb : Symbol(cb, Decl(dependentParameters.ts, 2, 22))
8+
>args : Symbol(args, Decl(dependentParameters.ts, 2, 27))
9+
>Args : Symbol(Args, Decl(dependentParameters.ts, 0, 0))
10+
11+
fn10((kind, data) => {
12+
>fn10 : Symbol(fn10, Decl(dependentParameters.ts, 0, 41))
13+
>kind : Symbol(kind, Decl(dependentParameters.ts, 4, 6))
14+
>data : Symbol(data, Decl(dependentParameters.ts, 4, 11))
15+
16+
if (kind === 'A') {
17+
>kind : Symbol(kind, Decl(dependentParameters.ts, 4, 6))
18+
19+
data.toFixed();
20+
>data : Symbol(data, Decl(dependentParameters.ts, 4, 11))
21+
}
22+
if (kind === 'B') {
23+
>kind : Symbol(kind, Decl(dependentParameters.ts, 4, 6))
24+
25+
data.toUpperCase();
26+
>data : Symbol(data, Decl(dependentParameters.ts, 4, 11))
27+
}
28+
})
29+
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
=== tests/cases/conformance/controlFlow/dependentParameters.ts ===
2+
type Args = ['A', number] | ['B', string]
3+
>Args : Args
4+
5+
declare function fn10(cb: (...args: Args) => void): void
6+
>fn10 : (cb: (...args: Args) => void) => void
7+
>cb : (...args: Args) => void
8+
>args : Args
9+
10+
fn10((kind, data) => {
11+
>fn10((kind, data) => { if (kind === 'A') { data.toFixed(); } if (kind === 'B') { data.toUpperCase(); }}) : void
12+
>fn10 : (cb: (...args: Args) => void) => void
13+
>(kind, data) => { if (kind === 'A') { data.toFixed(); } if (kind === 'B') { data.toUpperCase(); }} : (kind: "A" | "B", data: string | number) => void
14+
>kind : "A" | "B"
15+
>data : string | number
16+
17+
if (kind === 'A') {
18+
>kind === 'A' : boolean
19+
>kind : "A" | "B"
20+
>'A' : "A"
21+
22+
data.toFixed();
23+
>data.toFixed() : any
24+
>data.toFixed : any
25+
>data : string | number
26+
>toFixed : any
27+
}
28+
if (kind === 'B') {
29+
>kind === 'B' : boolean
30+
>kind : "A" | "B"
31+
>'B' : "B"
32+
33+
data.toUpperCase();
34+
>data.toUpperCase() : any
35+
>data.toUpperCase : any
36+
>data : string | number
37+
>toUpperCase : any
38+
}
39+
})
40+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
type Args = ['A', number] | ['B', string]
2+
3+
declare function fn10(cb: (...args: Args) => void): void
4+
5+
fn10((kind, data) => {
6+
if (kind === 'A') {
7+
data.toFixed();
8+
}
9+
if (kind === 'B') {
10+
data.toUpperCase();
11+
}
12+
})

0 commit comments

Comments
 (0)