forked from microsoft/TypeScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix checker initialization crash with esModuleInterop and global merg…
…es resolving to ImportEquals aliases (microsoft#47348) * Add minimal failing test * Fix checker initialization crash with esModuleInterop global merges resolving to ImportEquals aliases
- Loading branch information
1 parent
337bbcc
commit 852b1c2
Showing
5 changed files
with
231 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
//// [tests/cases/compiler/checkerInitializationCrash.ts] //// | ||
|
||
//// [index.d.ts] | ||
import * as react from 'react'; | ||
declare global { | ||
namespace FullCalendarVDom { | ||
export import VNode = react.ReactNode; | ||
} | ||
} | ||
|
||
export default class FullCalendar { | ||
} | ||
|
||
//// [index.d.ts] | ||
import * as preact from 'preact'; | ||
declare global { | ||
namespace FullCalendarVDom { | ||
type VNode = preact.VNode<any>; | ||
} | ||
} | ||
|
||
export type EventInput = any; | ||
|
||
//// [index.d.ts] | ||
export = React; | ||
export as namespace React; | ||
declare namespace React { | ||
type ReactNode = any; | ||
function useMemo<T>(factory: () => T, deps: undefined): T; | ||
} | ||
|
||
//// [index.d.ts] | ||
export as namespace preact; | ||
export interface VNode<P = {}> {} | ||
|
||
//// [index.tsx] | ||
import FullCalendar from "@fullcalendar/react"; | ||
import { EventInput } from "@fullcalendar/core"; | ||
|
||
|
||
//// [index.js] | ||
export {}; |
78 changes: 78 additions & 0 deletions
78
tests/baselines/reference/checkerInitializationCrash.symbols
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
=== /node_modules/@fullcalendar/react/index.d.ts === | ||
import * as react from 'react'; | ||
>react : Symbol(react, Decl(index.d.ts, 0, 6)) | ||
|
||
declare global { | ||
>global : Symbol(global, Decl(index.d.ts, 0, 31)) | ||
|
||
namespace FullCalendarVDom { | ||
>FullCalendarVDom : Symbol(FullCalendarVDom, Decl(index.d.ts, 1, 16), Decl(index.d.ts, 1, 16)) | ||
|
||
export import VNode = react.ReactNode; | ||
>VNode : Symbol(FullCalendarVDom.VNode, Decl(index.d.ts, 2, 30)) | ||
>react : Symbol(react, Decl(index.d.ts, 0, 6)) | ||
>ReactNode : Symbol(react.ReactNode, Decl(index.d.ts, 2, 25), Decl(index.d.ts, 2, 30)) | ||
} | ||
} | ||
|
||
export default class FullCalendar { | ||
>FullCalendar : Symbol(FullCalendar, Decl(index.d.ts, 5, 1)) | ||
} | ||
|
||
=== /node_modules/@fullcalendar/core/index.d.ts === | ||
import * as preact from 'preact'; | ||
>preact : Symbol(preact, Decl(index.d.ts, 0, 6)) | ||
|
||
declare global { | ||
>global : Symbol(global, Decl(index.d.ts, 0, 33)) | ||
|
||
namespace FullCalendarVDom { | ||
>FullCalendarVDom : Symbol(FullCalendarVDom, Decl(index.d.ts, 1, 16), Decl(index.d.ts, 1, 16)) | ||
|
||
type VNode = preact.VNode<any>; | ||
>VNode : Symbol(React.ReactNode, Decl(index.d.ts, 2, 25), Decl(index.d.ts, 2, 30)) | ||
>preact : Symbol(preact, Decl(index.d.ts, 0, 6)) | ||
>VNode : Symbol(preact.VNode, Decl(index.d.ts, 0, 27)) | ||
} | ||
} | ||
|
||
export type EventInput = any; | ||
>EventInput : Symbol(EventInput, Decl(index.d.ts, 5, 1)) | ||
|
||
=== /node_modules/@types/react/index.d.ts === | ||
export = React; | ||
>React : Symbol(React, Decl(index.d.ts, 1, 26)) | ||
|
||
export as namespace React; | ||
>React : Symbol(React, Decl(index.d.ts, 0, 15)) | ||
|
||
declare namespace React { | ||
>React : Symbol(React, Decl(index.d.ts, 1, 26)) | ||
|
||
type ReactNode = any; | ||
>ReactNode : Symbol(ReactNode, Decl(index.d.ts, 2, 25), Decl(index.d.ts, 2, 30)) | ||
|
||
function useMemo<T>(factory: () => T, deps: undefined): T; | ||
>useMemo : Symbol(useMemo, Decl(index.d.ts, 3, 25)) | ||
>T : Symbol(T, Decl(index.d.ts, 4, 21)) | ||
>factory : Symbol(factory, Decl(index.d.ts, 4, 24)) | ||
>T : Symbol(T, Decl(index.d.ts, 4, 21)) | ||
>deps : Symbol(deps, Decl(index.d.ts, 4, 41)) | ||
>T : Symbol(T, Decl(index.d.ts, 4, 21)) | ||
} | ||
|
||
=== /node_modules/preact/index.d.ts === | ||
export as namespace preact; | ||
>preact : Symbol(preact, Decl(index.d.ts, 0, 0)) | ||
|
||
export interface VNode<P = {}> {} | ||
>VNode : Symbol(VNode, Decl(index.d.ts, 0, 27)) | ||
>P : Symbol(P, Decl(index.d.ts, 1, 23)) | ||
|
||
=== /index.tsx === | ||
import FullCalendar from "@fullcalendar/react"; | ||
>FullCalendar : Symbol(FullCalendar, Decl(index.tsx, 0, 6)) | ||
|
||
import { EventInput } from "@fullcalendar/core"; | ||
>EventInput : Symbol(EventInput, Decl(index.tsx, 1, 8)) | ||
|
70 changes: 70 additions & 0 deletions
70
tests/baselines/reference/checkerInitializationCrash.types
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
=== /node_modules/@fullcalendar/react/index.d.ts === | ||
import * as react from 'react'; | ||
>react : typeof react | ||
|
||
declare global { | ||
>global : typeof global | ||
|
||
namespace FullCalendarVDom { | ||
>FullCalendarVDom : typeof FullCalendarVDom | ||
|
||
export import VNode = react.ReactNode; | ||
>VNode : any | ||
>react : typeof react | ||
>ReactNode : any | ||
} | ||
} | ||
|
||
export default class FullCalendar { | ||
>FullCalendar : FullCalendar | ||
} | ||
|
||
=== /node_modules/@fullcalendar/core/index.d.ts === | ||
import * as preact from 'preact'; | ||
>preact : typeof preact | ||
|
||
declare global { | ||
>global : any | ||
|
||
namespace FullCalendarVDom { | ||
type VNode = preact.VNode<any>; | ||
>VNode : any | ||
>preact : any | ||
} | ||
} | ||
|
||
export type EventInput = any; | ||
>EventInput : any | ||
|
||
=== /node_modules/@types/react/index.d.ts === | ||
export = React; | ||
>React : typeof React | ||
|
||
export as namespace React; | ||
>React : typeof React | ||
|
||
declare namespace React { | ||
>React : typeof React | ||
|
||
type ReactNode = any; | ||
>ReactNode : any | ||
|
||
function useMemo<T>(factory: () => T, deps: undefined): T; | ||
>useMemo : <T>(factory: () => T, deps: undefined) => T | ||
>factory : () => T | ||
>deps : undefined | ||
} | ||
|
||
=== /node_modules/preact/index.d.ts === | ||
export as namespace preact; | ||
>preact : typeof import("/node_modules/preact/index") | ||
|
||
export interface VNode<P = {}> {} | ||
|
||
=== /index.tsx === | ||
import FullCalendar from "@fullcalendar/react"; | ||
>FullCalendar : typeof FullCalendar | ||
|
||
import { EventInput } from "@fullcalendar/core"; | ||
>EventInput : any | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
// @module: esnext | ||
// @moduleResolution: node | ||
// @esModuleInterop: true | ||
|
||
// @Filename: /node_modules/@fullcalendar/react/index.d.ts | ||
import * as react from 'react'; | ||
declare global { | ||
namespace FullCalendarVDom { | ||
export import VNode = react.ReactNode; | ||
} | ||
} | ||
|
||
export default class FullCalendar { | ||
} | ||
|
||
// @Filename: /node_modules/@fullcalendar/core/index.d.ts | ||
import * as preact from 'preact'; | ||
declare global { | ||
namespace FullCalendarVDom { | ||
type VNode = preact.VNode<any>; | ||
} | ||
} | ||
|
||
export type EventInput = any; | ||
|
||
// @Filename: /node_modules/@types/react/index.d.ts | ||
export = React; | ||
export as namespace React; | ||
declare namespace React { | ||
type ReactNode = any; | ||
function useMemo<T>(factory: () => T, deps: undefined): T; | ||
} | ||
|
||
// @Filename: /node_modules/preact/index.d.ts | ||
export as namespace preact; | ||
export interface VNode<P = {}> {} | ||
|
||
// @Filename: /index.tsx | ||
import FullCalendar from "@fullcalendar/react"; | ||
import { EventInput } from "@fullcalendar/core"; |