Skip to content

Commit 2cfc9a3

Browse files
committed
Such clean nested aliasing, very wow
1 parent bd515b9 commit 2cfc9a3

27 files changed

+637
-152
lines changed

src/compiler/checker.ts

Lines changed: 110 additions & 74 deletions
Large diffs are not rendered by default.

tests/baselines/reference/jsDeclarationsClassExtendsVisibility.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,18 @@ module.exports.Strings = Strings;
5151

5252

5353
//// [bar.d.ts]
54+
export = Bar;
5455
declare class Bar {
5556
}
56-
export = Bar;
5757
//// [cls.d.ts]
58+
export = Foo;
59+
declare var Strings_1: {
60+
a: string;
61+
b: string;
62+
};
5863
declare const Foo_base: typeof import("./bar");
5964
declare class Foo extends Foo_base {
6065
}
61-
export = Foo;
6266
declare namespace Foo {
63-
var Strings_1: {
64-
a: string;
65-
b: string;
66-
};
6767
export { Strings_1 as Strings };
6868
}

tests/baselines/reference/jsDeclarationsClasses.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -481,13 +481,9 @@ export class F<T, U> {
481481
constructor(a: T, b: U);
482482
field: T & U;
483483
}
484-
declare class G {
485-
}
486-
declare class HH {
487-
}
488484
export class I {
489485
}
490-
declare class J {
486+
export class J {
491487
}
492488
export class K {
493489
p1: number;
@@ -517,4 +513,8 @@ export class HasStatics {
517513
export class ExtendsStatics extends HasStatics {
518514
static also(): void;
519515
}
520-
export { G, HH as H, I as II, J as JJ };
516+
export class G {
517+
}
518+
declare class HH {
519+
}
520+
export { HH as H, I as II, J as JJ };

tests/baselines/reference/jsDeclarationsComputedNames.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ exports.MyClass = MyClass;
6767

6868

6969
//// [index.d.ts]
70-
declare const TopLevelSym: unique symbol;
71-
declare const InnerSym: unique symbol;
7270
declare const _exports: {
7371
[TopLevelSym](x?: number): number;
7472
items: {
@@ -78,12 +76,14 @@ declare const _exports: {
7876
};
7977
};
8078
export = _exports;
81-
//// [index2.d.ts]
82-
declare const InnerSym: unique symbol;
8379
declare const TopLevelSym: unique symbol;
80+
declare const InnerSym: unique symbol;
81+
//// [index2.d.ts]
8482
export class MyClass {
8583
static [TopLevelSym]: number;
8684
constructor(_p?: typeof TopLevelSym | typeof InnerSym);
8785
[InnerSym]: string;
8886
}
87+
declare const InnerSym: unique symbol;
88+
declare const TopLevelSym: unique symbol;
8989
export {};

tests/baselines/reference/jsDeclarationsDefault.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,11 @@ export default class Foo {
126126
export const X: typeof Foo;
127127
export { Foo as Bar };
128128
//// [index4.d.ts]
129-
import Fab from "./index3";
129+
export default Bar;
130130
declare class Bar extends Fab {
131131
x: Bar;
132132
}
133-
export default Bar;
133+
import Fab from "./index3";
134134
//// [index5.d.ts]
135135
type _default = string | number;
136136
declare var _default: 12;

tests/baselines/reference/jsDeclarationsDefaultsErr.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ exports.default = x;
6969

7070
//// [index1.d.ts]
7171
export type Cls = string | number;
72+
export default Cls;
7273
declare class Cls {
7374
static y: string;
7475
x: number;
7576
}
76-
export default Cls;
7777
//// [index2.d.ts]
7878
export default class C {
7979
}
8080
//// [index3.d.ts]
8181
export type _default = string | number;
82-
declare const x: 12;
8382
export { x as default };
83+
declare const x: 12;

tests/baselines/reference/jsDeclarationsEnums.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,9 @@ export enum A {
123123
export enum B {
124124
Member = 0
125125
}
126-
declare enum C {
127-
}
128-
declare enum DD {
129-
}
130126
export enum E {
131127
}
132-
declare enum F {
128+
export enum F {
133129
}
134130
export enum G {
135131
A = 1,
@@ -164,4 +160,8 @@ export const enum L {
164160
C = 4,
165161
Mask = 7
166162
}
167-
export { C, DD as D, E as EE, F as FF };
163+
export enum C {
164+
}
165+
declare enum DD {
166+
}
167+
export { DD as D, E as EE, F as FF };

tests/baselines/reference/jsDeclarationsExportAssignmentExpressionPlusSecondary.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ module.exports.Strings = Strings;
2929

3030

3131
//// [index.d.ts]
32+
declare var Strings_1: {
33+
a: string;
34+
b: string;
35+
};
3236
export declare const thing: string;
3337
export declare const also: string;
3438
export declare namespace desc {
3539
export const item: string;
3640
}
37-
declare var Strings_1: {
38-
a: string;
39-
b: string;
40-
};
4141
export { Strings_1 as Strings };

tests/baselines/reference/jsDeclarationsExportForms.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -145,23 +145,22 @@ export * from "./cls";
145145
export * from "./func";
146146
export * from "./cls";
147147
//// [baz.d.ts]
148-
import { Foo } from "./cls";
149148
export { Foo };
149+
import { Foo } from "./cls";
150150
//// [bat.d.ts]
151-
import * as ns from "./cls";
152151
export default ns;
153-
//// [ban.d.ts]
154152
import * as ns from "./cls";
153+
//// [ban.d.ts]
155154
export { ns };
156-
//// [bol.d.ts]
157155
import * as ns from "./cls";
156+
//// [bol.d.ts]
158157
export { ns as classContainer };
158+
import * as ns from "./cls";
159159
//// [cjs.d.ts]
160-
declare const ns: typeof import("./cls");
161-
export { ns };
160+
export const ns: typeof import("./cls");
162161
//// [cjs2.d.ts]
163-
declare const ns: typeof import("./cls");
164162
export = ns;
163+
declare const ns: typeof import("./cls");
165164
//// [cjs3.d.ts]
166165
declare var ns_1: typeof import("./cls");
167166
export { ns_1 as ns };

tests/baselines/reference/jsDeclarationsExportFormsErr.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ require("./globalNs");
5858
export class Foo {
5959
}
6060
//// [bar.d.ts]
61-
import ns = require("./bar");
6261
export = ns;
62+
import ns = require("./bar");
6363
//// [bin.d.ts]
6464
export {};
6565
//// [globalNs.d.ts]

tests/baselines/reference/jsDeclarationsExportSubAssignments.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ module.exports.Strings = Strings;
2222

2323

2424
//// [cls.d.ts]
25+
export = Foo;
26+
declare var Strings_1: {
27+
a: string;
28+
b: string;
29+
};
2530
declare class Foo {
2631
}
27-
export = Foo;
2832
declare namespace Foo {
29-
var Strings_1: {
30-
a: string;
31-
b: string;
32-
};
3333
export { Strings_1 as Strings };
3434
}

tests/baselines/reference/jsDeclarationsFunctions.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,6 @@ export namespace b {
129129
}
130130
export function c(): void;
131131
export namespace c {
132-
class Cls {
133-
}
134132
export { Cls };
135133
}
136134
export function d(a: number, b: number): string;
@@ -141,7 +139,9 @@ export namespace f {
141139
}
142140
export function i(): void;
143141
export function j(): void;
144-
declare function g(a: {
142+
declare class Cls {
143+
}
144+
export function g(a: {
145145
x: string;
146146
}, b: {
147147
y: typeof b;
@@ -151,4 +151,4 @@ declare function hh(a: {
151151
}, b: {
152152
y: typeof b;
153153
}): void;
154-
export { g, hh as h, i as ii, j as jj };
154+
export { hh as h, i as ii, j as jj };

tests/baselines/reference/jsDeclarationsFunctionsCjs.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,12 @@ declare var f_1: {
131131
<T>(a: T): T;
132132
self: any;
133133
};
134+
declare var g_1: typeof g;
135+
declare var h_1: typeof hh;
136+
declare var i_1: () => void;
137+
declare var ii_1: () => void;
138+
declare var jj_1: () => void;
139+
declare var j_1: () => void;
134140
declare function g(a: {
135141
x: string;
136142
}, b: {
@@ -139,7 +145,6 @@ declare function g(a: {
139145
cat: string;
140146
};
141147
}): void;
142-
declare var g_1: typeof g;
143148
declare function hh(a: {
144149
x: string;
145150
}, b: {
@@ -148,9 +153,4 @@ declare function hh(a: {
148153
cat: string;
149154
};
150155
}): void;
151-
declare var h_1: typeof hh;
152-
declare var i_1: () => void;
153-
declare var ii_1: () => void;
154-
declare var jj_1: () => void;
155-
declare var j_1: () => void;
156156
export { a_1 as a, b_1 as b, c_1 as c, d_1 as d, e_1 as e, f_1 as f, g_1 as g, h_1 as h, i_1 as i, ii_1 as ii, jj_1 as jj, j_1 as j };

tests/baselines/reference/jsDeclarationsInterfaces.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,13 +149,9 @@ export interface C<T_1, U_1> {
149149
method(...args: any[]): number;
150150
optMethod?(): number;
151151
}
152-
interface G {
153-
}
154-
interface HH {
155-
}
156152
export interface I {
157153
}
158-
interface J {
154+
export interface J {
159155
}
160156
export interface K extends I, J {
161157
x: string;
@@ -232,4 +228,8 @@ export interface CC extends Y {
232228
y: 0;
233229
};
234230
}
235-
export { G, HH as H, I as II, J as JJ };
231+
export interface G {
232+
}
233+
interface HH {
234+
}
235+
export { HH as H, I as II, J as JJ };

tests/baselines/reference/jsDeclarationsJson.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export declare namespace obj {
4444
})[];
4545
}
4646
//// [index.d.ts]
47+
export = j;
4748
declare const j: {
4849
"x": number;
4950
"y": number;
@@ -63,4 +64,3 @@ declare const j: {
6364
})[];
6465
};
6566
};
66-
export = j;

tests/baselines/reference/jsDeclarationsPackageJson.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ export declare namespace config {
103103
export const o: string[];
104104
}
105105
//// [index.d.ts]
106+
export = j;
106107
declare const j: {
107108
"name": string;
108109
"version": string;
@@ -132,4 +133,3 @@ declare const j: {
132133
"o": string[];
133134
};
134135
};
135-
export = j;

tests/baselines/reference/jsDeclarationsTypeAliases.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -113,16 +113,16 @@ export type MixinName<T> = T & {
113113
};
114114
export type Identity<T> = (x: T) => T;
115115
//// [mixed.d.ts]
116-
declare class LocalThing {
117-
y: string;
118-
}
119-
declare function doTheThing(x: number): number | {
120-
x: string;
121-
} | LocalThing | typeof ExportedThing;
122-
declare class ExportedThing {
123-
z: string;
124-
}
125116
export type SomeType = number | {
126117
x: string;
127118
} | LocalThing | ExportedThing;
128-
export { doTheThing, ExportedThing };
119+
export function doTheThing(x: number): number | {
120+
x: string;
121+
} | LocalThing | ExportedThing;
122+
export class ExportedThing {
123+
z: string;
124+
}
125+
declare class LocalThing {
126+
y: string;
127+
}
128+
export {};

tests/baselines/reference/jsDeclarationsTypeReferences.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,4 @@ module.exports = {
2626

2727
//// [index.d.ts]
2828
/// <reference types="node" />
29-
declare const thing: import("fs").Something;
30-
export { thing };
29+
export const thing: import("fs").Something;

tests/baselines/reference/jsDeclarationsTypedefAndImportTypes.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,18 @@ module.exports = {
6363

6464

6565
//// [conn.d.ts]
66+
export = Conn;
67+
type Whatever = string | number;
6668
declare class Conn {
6769
item: number;
6870
method(): void;
6971
}
70-
export = Conn;
7172
declare namespace Conn {
72-
export type Whatever = string | number;
73+
export { Whatever };
7374
}
7475
//// [usage.d.ts]
75-
declare class Wrap {
76+
export type Conn = import("./conn");
77+
export class Wrap {
7678
constructor(c: import("./conn"));
7779
connItem: number;
7880
}
79-
export { Wrap };
80-
export type Conn = import("./conn");

0 commit comments

Comments
 (0)