Skip to content

Commit 5035583

Browse files
committed
fixed the thing
1 parent 9d225ba commit 5035583

File tree

4 files changed

+446
-3
lines changed

4 files changed

+446
-3
lines changed

src/compiler/checker.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11529,9 +11529,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1152911529
// Return the type of a binding element parent. We check SymbolLinks first to see if a type has been
1153011530
// assigned by contextual typing.
1153111531
function getTypeForBindingElementParent(node: BindingElementGrandparent, checkMode: CheckMode) {
11532-
if (checkMode !== CheckMode.Normal) {
11533-
return getTypeForVariableLikeDeclaration(node, /*includeOptionality*/ false, checkMode);
11534-
}
1153511532
const symbol = getSymbolOfDeclaration(node);
1153611533
return symbol && getSymbolLinks(symbol).type || getTypeForVariableLikeDeclaration(node, /*includeOptionality*/ false, checkMode);
1153711534
}
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
//// [tests/cases/compiler/destructureContextualParameters1.ts] ////
2+
3+
=== destructureContextualParameters1.ts ===
4+
declare function arrayFrom<T, U>(iterator: Iterable<T>, map: (t: T) => U): U[];
5+
>arrayFrom : Symbol(arrayFrom, Decl(destructureContextualParameters1.ts, 0, 0), Decl(destructureContextualParameters1.ts, 0, 79))
6+
>T : Symbol(T, Decl(destructureContextualParameters1.ts, 0, 27))
7+
>U : Symbol(U, Decl(destructureContextualParameters1.ts, 0, 29))
8+
>iterator : Symbol(iterator, Decl(destructureContextualParameters1.ts, 0, 33))
9+
>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --))
10+
>T : Symbol(T, Decl(destructureContextualParameters1.ts, 0, 27))
11+
>map : Symbol(map, Decl(destructureContextualParameters1.ts, 0, 55))
12+
>t : Symbol(t, Decl(destructureContextualParameters1.ts, 0, 62))
13+
>T : Symbol(T, Decl(destructureContextualParameters1.ts, 0, 27))
14+
>U : Symbol(U, Decl(destructureContextualParameters1.ts, 0, 29))
15+
>U : Symbol(U, Decl(destructureContextualParameters1.ts, 0, 29))
16+
17+
declare function arrayFrom<T>(iterator: Iterable<T>): T[];
18+
>arrayFrom : Symbol(arrayFrom, Decl(destructureContextualParameters1.ts, 0, 0), Decl(destructureContextualParameters1.ts, 0, 79))
19+
>T : Symbol(T, Decl(destructureContextualParameters1.ts, 1, 27))
20+
>iterator : Symbol(iterator, Decl(destructureContextualParameters1.ts, 1, 30))
21+
>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --))
22+
>T : Symbol(T, Decl(destructureContextualParameters1.ts, 1, 27))
23+
>T : Symbol(T, Decl(destructureContextualParameters1.ts, 1, 27))
24+
25+
interface CommandLineOptionOfStringType {
26+
>CommandLineOptionOfStringType : Symbol(CommandLineOptionOfStringType, Decl(destructureContextualParameters1.ts, 1, 58))
27+
28+
type: "string";
29+
>type : Symbol(CommandLineOptionOfStringType.type, Decl(destructureContextualParameters1.ts, 3, 41))
30+
31+
defaultValueDescription?: string | undefined;
32+
>defaultValueDescription : Symbol(CommandLineOptionOfStringType.defaultValueDescription, Decl(destructureContextualParameters1.ts, 4, 17))
33+
}
34+
35+
interface CommandLineOptionOfCustomType {
36+
>CommandLineOptionOfCustomType : Symbol(CommandLineOptionOfCustomType, Decl(destructureContextualParameters1.ts, 6, 1))
37+
38+
type: Map<string, number | string>;
39+
>type : Symbol(CommandLineOptionOfCustomType.type, Decl(destructureContextualParameters1.ts, 8, 41))
40+
>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
41+
42+
defaultValueDescription: number | string | undefined;
43+
>defaultValueDescription : Symbol(CommandLineOptionOfCustomType.defaultValueDescription, Decl(destructureContextualParameters1.ts, 9, 37))
44+
45+
deprecatedKeys?: Set<string>;
46+
>deprecatedKeys : Symbol(CommandLineOptionOfCustomType.deprecatedKeys, Decl(destructureContextualParameters1.ts, 10, 55))
47+
>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.esnext.collection.d.ts, --, --))
48+
}
49+
50+
type CommandLineOption =
51+
>CommandLineOption : Symbol(CommandLineOption, Decl(destructureContextualParameters1.ts, 12, 1))
52+
53+
| CommandLineOptionOfStringType
54+
>CommandLineOptionOfStringType : Symbol(CommandLineOptionOfStringType, Decl(destructureContextualParameters1.ts, 1, 58))
55+
56+
| CommandLineOptionOfCustomType;
57+
>CommandLineOptionOfCustomType : Symbol(CommandLineOptionOfCustomType, Decl(destructureContextualParameters1.ts, 6, 1))
58+
59+
function formatDefaultValue1(
60+
>formatDefaultValue1 : Symbol(formatDefaultValue1, Decl(destructureContextualParameters1.ts, 16, 34))
61+
62+
defaultValue: CommandLineOption["defaultValueDescription"],
63+
>defaultValue : Symbol(defaultValue, Decl(destructureContextualParameters1.ts, 18, 29))
64+
>CommandLineOption : Symbol(CommandLineOption, Decl(destructureContextualParameters1.ts, 12, 1))
65+
66+
type: CommandLineOption["type"],
67+
>type : Symbol(type, Decl(destructureContextualParameters1.ts, 19, 61))
68+
>CommandLineOption : Symbol(CommandLineOption, Decl(destructureContextualParameters1.ts, 12, 1))
69+
70+
) {
71+
return defaultValue !== undefined && typeof type === "object"
72+
>defaultValue : Symbol(defaultValue, Decl(destructureContextualParameters1.ts, 18, 29))
73+
>undefined : Symbol(undefined)
74+
>type : Symbol(type, Decl(destructureContextualParameters1.ts, 19, 61))
75+
76+
? arrayFrom(type.entries())
77+
>arrayFrom(type.entries()) .filter(([, value]) => value === defaultValue) .map(([name]) => name) .join : Symbol(Array.join, Decl(lib.es5.d.ts, --, --))
78+
>arrayFrom(type.entries()) .filter(([, value]) => value === defaultValue) .map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --))
79+
>arrayFrom(type.entries()) .filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
80+
>arrayFrom : Symbol(arrayFrom, Decl(destructureContextualParameters1.ts, 0, 0), Decl(destructureContextualParameters1.ts, 0, 79))
81+
>type.entries : Symbol(Map.entries, Decl(lib.es2015.iterable.d.ts, --, --))
82+
>type : Symbol(type, Decl(destructureContextualParameters1.ts, 19, 61))
83+
>entries : Symbol(Map.entries, Decl(lib.es2015.iterable.d.ts, --, --))
84+
85+
.filter(([, value]) => value === defaultValue)
86+
>filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
87+
>value : Symbol(value, Decl(destructureContextualParameters1.ts, 24, 19))
88+
>value : Symbol(value, Decl(destructureContextualParameters1.ts, 24, 19))
89+
>defaultValue : Symbol(defaultValue, Decl(destructureContextualParameters1.ts, 18, 29))
90+
91+
.map(([name]) => name)
92+
>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --))
93+
>name : Symbol(name, Decl(destructureContextualParameters1.ts, 25, 15))
94+
>name : Symbol(name, Decl(destructureContextualParameters1.ts, 25, 15))
95+
96+
.join("/")
97+
>join : Symbol(Array.join, Decl(lib.es5.d.ts, --, --))
98+
99+
: String(defaultValue);
100+
>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 7 more)
101+
>defaultValue : Symbol(defaultValue, Decl(destructureContextualParameters1.ts, 18, 29))
102+
}
103+
104+
function formatDefaultValue2(
105+
>formatDefaultValue2 : Symbol(formatDefaultValue2, Decl(destructureContextualParameters1.ts, 28, 1))
106+
107+
defaultValue: CommandLineOption["defaultValueDescription"],
108+
>defaultValue : Symbol(defaultValue, Decl(destructureContextualParameters1.ts, 30, 29))
109+
>CommandLineOption : Symbol(CommandLineOption, Decl(destructureContextualParameters1.ts, 12, 1))
110+
111+
type: CommandLineOption["type"],
112+
>type : Symbol(type, Decl(destructureContextualParameters1.ts, 31, 61))
113+
>CommandLineOption : Symbol(CommandLineOption, Decl(destructureContextualParameters1.ts, 12, 1))
114+
115+
) {
116+
return defaultValue !== undefined && typeof type === "object"
117+
>defaultValue : Symbol(defaultValue, Decl(destructureContextualParameters1.ts, 30, 29))
118+
>undefined : Symbol(undefined)
119+
>type : Symbol(type, Decl(destructureContextualParameters1.ts, 31, 61))
120+
121+
? arrayFrom(type.entries())
122+
>arrayFrom(type.entries()) .filter(([, ...value]) => value[0] === defaultValue) .map(([name]) => name) .join : Symbol(Array.join, Decl(lib.es5.d.ts, --, --))
123+
>arrayFrom(type.entries()) .filter(([, ...value]) => value[0] === defaultValue) .map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --))
124+
>arrayFrom(type.entries()) .filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
125+
>arrayFrom : Symbol(arrayFrom, Decl(destructureContextualParameters1.ts, 0, 0), Decl(destructureContextualParameters1.ts, 0, 79))
126+
>type.entries : Symbol(Map.entries, Decl(lib.es2015.iterable.d.ts, --, --))
127+
>type : Symbol(type, Decl(destructureContextualParameters1.ts, 31, 61))
128+
>entries : Symbol(Map.entries, Decl(lib.es2015.iterable.d.ts, --, --))
129+
130+
.filter(([, ...value]) => value[0] === defaultValue)
131+
>filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
132+
>value : Symbol(value, Decl(destructureContextualParameters1.ts, 36, 19))
133+
>value : Symbol(value, Decl(destructureContextualParameters1.ts, 36, 19))
134+
>0 : Symbol(0)
135+
>defaultValue : Symbol(defaultValue, Decl(destructureContextualParameters1.ts, 30, 29))
136+
137+
.map(([name]) => name)
138+
>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --))
139+
>name : Symbol(name, Decl(destructureContextualParameters1.ts, 37, 15))
140+
>name : Symbol(name, Decl(destructureContextualParameters1.ts, 37, 15))
141+
142+
.join("/")
143+
>join : Symbol(Array.join, Decl(lib.es5.d.ts, --, --))
144+
145+
: String(defaultValue);
146+
>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 7 more)
147+
>defaultValue : Symbol(defaultValue, Decl(destructureContextualParameters1.ts, 30, 29))
148+
}

0 commit comments

Comments
 (0)