Skip to content

Commit 4cb867b

Browse files
committed
Fix regression in mixin emit by removing unneeded line of code
1 parent 969634b commit 4cb867b

File tree

5 files changed

+115
-2
lines changed

5 files changed

+115
-2
lines changed

src/compiler/checker.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4087,8 +4087,6 @@ namespace ts {
40874087
else if (context.flags & NodeBuilderFlags.WriteClassExpressionAsTypeLiteral &&
40884088
type.symbol.valueDeclaration &&
40894089
isClassLike(type.symbol.valueDeclaration) &&
4090-
// Use `import` types for refs to other scopes, only anonymize something defined in the same scope
4091-
findAncestor(type.symbol.valueDeclaration, d => d === getSourceFileOfNode(context.enclosingDeclaration)) &&
40924090
!isValueSymbolAccessible(type.symbol, context.enclosingDeclaration)
40934091
) {
40944092
return createAnonymousTypeNode(type);
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
//// [tests/cases/compiler/anonClassDeclarationEmitIsAnon.ts] ////
2+
3+
//// [wrapClass.ts]
4+
export function wrapClass(param: any) {
5+
return class Wrapped {
6+
foo() {
7+
return param;
8+
}
9+
}
10+
}
11+
12+
//// [index.ts]
13+
import { wrapClass } from "./wrapClass";
14+
15+
export default wrapClass(0);
16+
17+
//// [wrapClass.js]
18+
"use strict";
19+
exports.__esModule = true;
20+
function wrapClass(param) {
21+
return /** @class */ (function () {
22+
function Wrapped() {
23+
}
24+
Wrapped.prototype.foo = function () {
25+
return param;
26+
};
27+
return Wrapped;
28+
}());
29+
}
30+
exports.wrapClass = wrapClass;
31+
//// [index.js]
32+
"use strict";
33+
exports.__esModule = true;
34+
var wrapClass_1 = require("./wrapClass");
35+
exports["default"] = wrapClass_1.wrapClass(0);
36+
37+
38+
//// [wrapClass.d.ts]
39+
export declare function wrapClass(param: any): {
40+
new (): {
41+
foo(): any;
42+
};
43+
};
44+
//// [index.d.ts]
45+
declare const _default: {
46+
new (): {
47+
foo(): any;
48+
};
49+
};
50+
export default _default;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
=== tests/cases/compiler/wrapClass.ts ===
2+
export function wrapClass(param: any) {
3+
>wrapClass : Symbol(wrapClass, Decl(wrapClass.ts, 0, 0))
4+
>param : Symbol(param, Decl(wrapClass.ts, 0, 26))
5+
6+
return class Wrapped {
7+
>Wrapped : Symbol(Wrapped, Decl(wrapClass.ts, 1, 10))
8+
9+
foo() {
10+
>foo : Symbol(Wrapped.foo, Decl(wrapClass.ts, 1, 26))
11+
12+
return param;
13+
>param : Symbol(param, Decl(wrapClass.ts, 0, 26))
14+
}
15+
}
16+
}
17+
18+
=== tests/cases/compiler/index.ts ===
19+
import { wrapClass } from "./wrapClass";
20+
>wrapClass : Symbol(wrapClass, Decl(index.ts, 0, 8))
21+
22+
export default wrapClass(0);
23+
>wrapClass : Symbol(wrapClass, Decl(index.ts, 0, 8))
24+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
=== tests/cases/compiler/wrapClass.ts ===
2+
export function wrapClass(param: any) {
3+
>wrapClass : (param: any) => typeof Wrapped
4+
>param : any
5+
6+
return class Wrapped {
7+
>class Wrapped { foo() { return param; } } : typeof Wrapped
8+
>Wrapped : typeof Wrapped
9+
10+
foo() {
11+
>foo : () => any
12+
13+
return param;
14+
>param : any
15+
}
16+
}
17+
}
18+
19+
=== tests/cases/compiler/index.ts ===
20+
import { wrapClass } from "./wrapClass";
21+
>wrapClass : (param: any) => typeof Wrapped
22+
23+
export default wrapClass(0);
24+
>wrapClass(0) : typeof Wrapped
25+
>wrapClass : (param: any) => typeof Wrapped
26+
>0 : 0
27+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// @declaration: true
2+
// @filename: wrapClass.ts
3+
export function wrapClass(param: any) {
4+
return class Wrapped {
5+
foo() {
6+
return param;
7+
}
8+
}
9+
}
10+
11+
// @filename: index.ts
12+
import { wrapClass } from "./wrapClass";
13+
14+
export default wrapClass(0);

0 commit comments

Comments
 (0)