Skip to content

Commit b7d523e

Browse files
TypeScript Botandrewbranch
TypeScript Bot
andauthored
🤖 Pick PR #54450 (Resolve tslib re-exports before che...) into release-5.1 (#54457)
Co-authored-by: Andrew Branch <[email protected]>
1 parent a360d9f commit b7d523e

File tree

5 files changed

+241
-1
lines changed

5 files changed

+241
-1
lines changed

Diff for: ‎src/compiler/checker.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -46984,7 +46984,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
4698446984
if (requestedExternalEmitHelperNames.has(name)) continue;
4698546985
requestedExternalEmitHelperNames.add(name);
4698646986

46987-
const symbol = getSymbol(getExportsOfModule(helpersModule), escapeLeadingUnderscores(name), SymbolFlags.Value);
46987+
const symbol = resolveSymbol(getSymbol(getExportsOfModule(helpersModule), escapeLeadingUnderscores(name), SymbolFlags.Value));
4698846988
if (!symbol) {
4698946989
error(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name);
4699046990
}
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
//// [tests/cases/compiler/tslibReExportHelpers2.ts] ////
2+
3+
//// [index.d.ts]
4+
export declare function __classPrivateFieldGet<T extends object, V>(
5+
receiver: T,
6+
state: { has(o: T): boolean, get(o: T): V | undefined },
7+
kind?: "f"
8+
): V;
9+
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
10+
receiver: T,
11+
state: T,
12+
kind: "f",
13+
f: { value: V }
14+
): V;
15+
16+
//// [index.d.mts]
17+
export { __classPrivateFieldGet } from "./index.js";
18+
19+
//// [package.json]
20+
{
21+
"name": "tslib",
22+
"version": "1.0.0",
23+
"types": "index.d.ts",
24+
"exports": {
25+
".": {
26+
"types": {
27+
"import": "./index.d.mts",
28+
"default": "./index.d.ts"
29+
}
30+
}
31+
}
32+
}
33+
34+
//// [index.mts]
35+
export class Foo {
36+
constructor() {
37+
console.log(Foo.#test());
38+
}
39+
40+
static #test() {
41+
return 'success';
42+
}
43+
}
44+
45+
46+
//// [index.mjs]
47+
var _a, _Foo_test;
48+
import { __classPrivateFieldGet } from "tslib";
49+
export class Foo {
50+
constructor() {
51+
console.log(__classPrivateFieldGet(Foo, _a, "m", _Foo_test).call(Foo));
52+
}
53+
}
54+
_a = Foo, _Foo_test = function _Foo_test() {
55+
return 'success';
56+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
=== /node_modules/tslib/index.d.ts ===
2+
export declare function __classPrivateFieldGet<T extends object, V>(
3+
>__classPrivateFieldGet : Symbol(__classPrivateFieldGet, Decl(index.d.ts, 0, 0), Decl(index.d.ts, 4, 5))
4+
>T : Symbol(T, Decl(index.d.ts, 0, 47))
5+
>V : Symbol(V, Decl(index.d.ts, 0, 64))
6+
7+
receiver: T,
8+
>receiver : Symbol(receiver, Decl(index.d.ts, 0, 68))
9+
>T : Symbol(T, Decl(index.d.ts, 0, 47))
10+
11+
state: { has(o: T): boolean, get(o: T): V | undefined },
12+
>state : Symbol(state, Decl(index.d.ts, 1, 14))
13+
>has : Symbol(has, Decl(index.d.ts, 2, 10))
14+
>o : Symbol(o, Decl(index.d.ts, 2, 15))
15+
>T : Symbol(T, Decl(index.d.ts, 0, 47))
16+
>get : Symbol(get, Decl(index.d.ts, 2, 30))
17+
>o : Symbol(o, Decl(index.d.ts, 2, 35))
18+
>T : Symbol(T, Decl(index.d.ts, 0, 47))
19+
>V : Symbol(V, Decl(index.d.ts, 0, 64))
20+
21+
kind?: "f"
22+
>kind : Symbol(kind, Decl(index.d.ts, 2, 58))
23+
24+
): V;
25+
>V : Symbol(V, Decl(index.d.ts, 0, 64))
26+
27+
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
28+
>__classPrivateFieldGet : Symbol(__classPrivateFieldGet, Decl(index.d.ts, 0, 0), Decl(index.d.ts, 4, 5))
29+
>T : Symbol(T, Decl(index.d.ts, 5, 47))
30+
>args : Symbol(args, Decl(index.d.ts, 5, 62))
31+
>V : Symbol(V, Decl(index.d.ts, 5, 89))
32+
33+
receiver: T,
34+
>receiver : Symbol(receiver, Decl(index.d.ts, 5, 93))
35+
>T : Symbol(T, Decl(index.d.ts, 5, 47))
36+
37+
state: T,
38+
>state : Symbol(state, Decl(index.d.ts, 6, 14))
39+
>T : Symbol(T, Decl(index.d.ts, 5, 47))
40+
41+
kind: "f",
42+
>kind : Symbol(kind, Decl(index.d.ts, 7, 11))
43+
44+
f: { value: V }
45+
>f : Symbol(f, Decl(index.d.ts, 8, 12))
46+
>value : Symbol(value, Decl(index.d.ts, 9, 6))
47+
>V : Symbol(V, Decl(index.d.ts, 5, 89))
48+
49+
): V;
50+
>V : Symbol(V, Decl(index.d.ts, 5, 89))
51+
52+
=== /node_modules/tslib/index.d.mts ===
53+
export { __classPrivateFieldGet } from "./index.js";
54+
>__classPrivateFieldGet : Symbol(__classPrivateFieldGet, Decl(index.d.mts, 0, 8))
55+
56+
=== /index.mts ===
57+
export class Foo {
58+
>Foo : Symbol(Foo, Decl(index.mts, 0, 0))
59+
60+
constructor() {
61+
console.log(Foo.#test());
62+
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
63+
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
64+
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
65+
>Foo.#test : Symbol(Foo.#test, Decl(index.mts, 3, 3))
66+
>Foo : Symbol(Foo, Decl(index.mts, 0, 0))
67+
}
68+
69+
static #test() {
70+
>#test : Symbol(Foo.#test, Decl(index.mts, 3, 3))
71+
72+
return 'success';
73+
}
74+
}
75+
+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
=== /node_modules/tslib/index.d.ts ===
2+
export declare function __classPrivateFieldGet<T extends object, V>(
3+
>__classPrivateFieldGet : { <T extends object, V>(receiver: T, state: { has(o: T): boolean; get(o: T): V | undefined; }, kind?: "f"): V; <T extends new (...args: any[]) => unknown, V>(receiver: T, state: T, kind: "f", f: { value: V; }): V; }
4+
5+
receiver: T,
6+
>receiver : T
7+
8+
state: { has(o: T): boolean, get(o: T): V | undefined },
9+
>state : { has(o: T): boolean; get(o: T): V | undefined; }
10+
>has : (o: T) => boolean
11+
>o : T
12+
>get : (o: T) => V | undefined
13+
>o : T
14+
15+
kind?: "f"
16+
>kind : "f"
17+
18+
): V;
19+
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
20+
>__classPrivateFieldGet : { <T extends object, V>(receiver: T, state: { has(o: T): boolean; get(o: T): V; }, kind?: "f"): V; <T extends new (...args: any[]) => unknown, V>(receiver: T, state: T, kind: "f", f: { value: V;}): V; }
21+
>args : any[]
22+
23+
receiver: T,
24+
>receiver : T
25+
26+
state: T,
27+
>state : T
28+
29+
kind: "f",
30+
>kind : "f"
31+
32+
f: { value: V }
33+
>f : { value: V; }
34+
>value : V
35+
36+
): V;
37+
38+
=== /node_modules/tslib/index.d.mts ===
39+
export { __classPrivateFieldGet } from "./index.js";
40+
>__classPrivateFieldGet : { <T extends object, V>(receiver: T, state: { has(o: T): boolean; get(o: T): V; }, kind?: "f"): V; <T extends new (...args: any[]) => unknown, V>(receiver: T, state: T, kind: "f", f: { value: V; }): V; }
41+
42+
=== /index.mts ===
43+
export class Foo {
44+
>Foo : Foo
45+
46+
constructor() {
47+
console.log(Foo.#test());
48+
>console.log(Foo.#test()) : void
49+
>console.log : (...data: any[]) => void
50+
>console : Console
51+
>log : (...data: any[]) => void
52+
>Foo.#test() : string
53+
>Foo.#test : () => string
54+
>Foo : typeof Foo
55+
}
56+
57+
static #test() {
58+
>#test : () => string
59+
60+
return 'success';
61+
>'success' : "success"
62+
}
63+
}
64+

Diff for: ‎tests/cases/compiler/tslibReExportHelpers2.ts

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// @module: nodenext
2+
// @importHelpers: true
3+
// @target: es2021
4+
5+
// @Filename: /node_modules/tslib/index.d.ts
6+
export declare function __classPrivateFieldGet<T extends object, V>(
7+
receiver: T,
8+
state: { has(o: T): boolean, get(o: T): V | undefined },
9+
kind?: "f"
10+
): V;
11+
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
12+
receiver: T,
13+
state: T,
14+
kind: "f",
15+
f: { value: V }
16+
): V;
17+
18+
// @Filename: /node_modules/tslib/index.d.mts
19+
export { __classPrivateFieldGet } from "./index.js";
20+
21+
// @Filename: /node_modules/tslib/package.json
22+
{
23+
"name": "tslib",
24+
"version": "1.0.0",
25+
"types": "index.d.ts",
26+
"exports": {
27+
".": {
28+
"types": {
29+
"import": "./index.d.mts",
30+
"default": "./index.d.ts"
31+
}
32+
}
33+
}
34+
}
35+
36+
// @Filename: /index.mts
37+
export class Foo {
38+
constructor() {
39+
console.log(Foo.#test());
40+
}
41+
42+
static #test() {
43+
return 'success';
44+
}
45+
}

0 commit comments

Comments
 (0)