diff --git a/internal/compiler/emitter.go b/internal/compiler/emitter.go index daaf74e31c..c6f6b9b60e 100644 --- a/internal/compiler/emitter.go +++ b/internal/compiler/emitter.go @@ -194,12 +194,13 @@ func (e *emitter) emitDeclarationFile(sourceFile *ast.SourceFile, declarationFil // !!! strada skipped emit if there were diagnostics printerOptions := printer.PrinterOptions{ - RemoveComments: options.RemoveComments.IsTrue(), - NewLine: options.NewLine, - NoEmitHelpers: options.NoEmitHelpers.IsTrue(), - SourceMap: options.DeclarationMap.IsTrue(), - InlineSourceMap: options.InlineSourceMap.IsTrue(), - InlineSources: options.InlineSources.IsTrue(), + RemoveComments: options.RemoveComments.IsTrue(), + OnlyPrintJSDocStyle: true, + NewLine: options.NewLine, + NoEmitHelpers: options.NoEmitHelpers.IsTrue(), + SourceMap: options.DeclarationMap.IsTrue(), + InlineSourceMap: options.InlineSourceMap.IsTrue(), + InlineSources: options.InlineSources.IsTrue(), // !!! } diff --git a/testdata/baselines/reference/compiler/parameterPropertyWithDefaultValueExtended.js b/testdata/baselines/reference/compiler/parameterPropertyWithDefaultValueExtended.js index 79eecb97b1..e9469b8bf3 100644 --- a/testdata/baselines/reference/compiler/parameterPropertyWithDefaultValueExtended.js +++ b/testdata/baselines/reference/compiler/parameterPropertyWithDefaultValueExtended.js @@ -65,27 +65,22 @@ export class PublicWithDefault { //// [parameterPropertyWithDefaultValueExtended.d.ts] -// Test with default value - should not have undefined export declare class WithDefault { readonly timestamp: Date; constructor(timestamp?: Date); } -// Test without default value but optional - should have undefined export declare class WithoutDefault { readonly timestamp?: Date | undefined; constructor(timestamp?: Date | undefined); } -// Test with explicit undefined type - should keep it export declare class ExplicitUndefined { readonly timestamp: Date | undefined; constructor(timestamp?: Date | undefined); } -// Test private parameter property with default value export declare class PrivateWithDefault { private timestamp; constructor(timestamp?: Date); } -// Test public parameter property with default value export declare class PublicWithDefault { timestamp: Date; constructor(timestamp?: Date); diff --git a/testdata/baselines/reference/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js b/testdata/baselines/reference/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js index bd7f735153..93227dca57 100644 --- a/testdata/baselines/reference/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js +++ b/testdata/baselines/reference/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js @@ -41,4 +41,4 @@ export type ControllerClass = Constructor; //// [usage.d.ts] import { ControllerClass } from './application'; import { BindingKey } from '@loopback/context'; -export declare const CONTROLLER_CLASS: BindingKey; // line in question +export declare const CONTROLLER_CLASS: BindingKey; diff --git a/testdata/baselines/reference/conformance/jsdocVariadicInOverload.js b/testdata/baselines/reference/conformance/jsdocVariadicInOverload.js index 1831f720db..590e070ce7 100644 --- a/testdata/baselines/reference/conformance/jsdocVariadicInOverload.js +++ b/testdata/baselines/reference/conformance/jsdocVariadicInOverload.js @@ -96,7 +96,6 @@ p.use(x, y, z); //// [typeTagForMultipleVariableDeclarations.d.ts] -// based on code from unifiedjs/unified declare class Node { } /** diff --git a/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js b/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js index 26ab6a2dd5..af70ff7c6f 100644 --- a/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js +++ b/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js @@ -90,7 +90,6 @@ declare const _default: { }; }; export default _default; -// Simple class export declare class User { name: string; } @@ -99,7 +98,6 @@ declare const TimestampedUser_base: { timestamp: number; }; } & typeof User; -// User that is Timestamped export declare class TimestampedUser extends TimestampedUser_base { constructor(); } diff --git a/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js.diff b/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js.diff index 0af2b84978..211600ef2e 100644 --- a/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js.diff +++ b/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js.diff @@ -26,20 +26,4 @@ + name = ''; } exports.User = User; - // User that is Timestamped -@@= skipped -47, +42 lines =@@ - }; - }; - export default _default; -+// Simple class - export declare class User { - name: string; - } -@@= skipped -8, +9 lines =@@ - timestamp: number; - }; - } & typeof User; -+// User that is Timestamped - export declare class TimestampedUser extends TimestampedUser_base { - constructor(); - } \ No newline at end of file + // User that is Timestamped \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bigintWithLib.js b/testdata/baselines/reference/submodule/compiler/bigintWithLib.js index 5983e31689..18d7e410ee 100644 --- a/testdata/baselines/reference/submodule/compiler/bigintWithLib.js +++ b/testdata/baselines/reference/submodule/compiler/bigintWithLib.js @@ -122,19 +122,14 @@ new Intl.NumberFormat("fr").format(bigintVal); //// [bigintWithLib.d.ts] -// Test BigInt functions declare let bigintVal: bigint; declare let stringVal: string; -// Test BigInt64Array declare let bigIntArray: BigInt64Array; declare let len: number; declare let arrayBufferLike: ArrayBufferView; -// Test BigUint64Array declare let bigUintArray: BigUint64Array; -// Test added DataView methods declare const dataView: DataView; -// Test emitted declarations files -declare const w = 12n; // should emit as const w = 12n -declare const x = -12n; // should emit as const x = -12n -declare const y: 12n; // should emit type 12n -declare let z: bigint; // should emit type bigint in declaration file +declare const w = 12n; +declare const x = -12n; +declare const y: 12n; +declare let z: bigint; diff --git a/testdata/baselines/reference/submodule/compiler/bigintWithLib.js.diff b/testdata/baselines/reference/submodule/compiler/bigintWithLib.js.diff deleted file mode 100644 index dcea084192..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bigintWithLib.js.diff +++ /dev/null @@ -1,26 +0,0 @@ ---- old.bigintWithLib.js -+++ new.bigintWithLib.js -@@= skipped -121, +121 lines =@@ - - - //// [bigintWithLib.d.ts] -+// Test BigInt functions - declare let bigintVal: bigint; - declare let stringVal: string; -+// Test BigInt64Array - declare let bigIntArray: BigInt64Array; - declare let len: number; - declare let arrayBufferLike: ArrayBufferView; -+// Test BigUint64Array - declare let bigUintArray: BigUint64Array; -+// Test added DataView methods - declare const dataView: DataView; --declare const w = 12n; --declare const x = -12n; --declare const y: 12n; --declare let z: bigint; -+// Test emitted declarations files -+declare const w = 12n; // should emit as const w = 12n -+declare const x = -12n; // should emit as const x = -12n -+declare const y: 12n; // should emit type 12n -+declare let z: bigint; // should emit type bigint in declaration file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularBaseTypes.js b/testdata/baselines/reference/submodule/compiler/circularBaseTypes.js index 849169c7ba..32ab8f146f 100644 --- a/testdata/baselines/reference/submodule/compiler/circularBaseTypes.js +++ b/testdata/baselines/reference/submodule/compiler/circularBaseTypes.js @@ -27,15 +27,13 @@ function f(m) { //// [circularBaseTypes.d.ts] -// Repro from #38098 type M = { value: T; }; interface M2 extends M { } -type M3 = M2[keyof M2]; // Error +type M3 = M2[keyof M2]; declare function f(m: M3): any; -// Repro from #32581 type X = { [K in keyof T]: string; } & { diff --git a/testdata/baselines/reference/submodule/compiler/circularBaseTypes.js.diff b/testdata/baselines/reference/submodule/compiler/circularBaseTypes.js.diff index 2621ae7f6b..f11e8e382f 100644 --- a/testdata/baselines/reference/submodule/compiler/circularBaseTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/circularBaseTypes.js.diff @@ -8,21 +8,4 @@ -// Repro from #38098 ; // Error function f(m) { - return m.value; -@@= skipped -9, +7 lines =@@ - - - //// [circularBaseTypes.d.ts] -+// Repro from #38098 - type M = { - value: T; - }; - interface M2 extends M { - } --type M3 = M2[keyof M2]; -+type M3 = M2[keyof M2]; // Error - declare function f(m: M3): any; -+// Repro from #32581 - type X = { - [K in keyof T]: string; - } & { \ No newline at end of file + return m.value; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classdecl.js b/testdata/baselines/reference/submodule/compiler/classdecl.js index 218418c3c1..46b09eb605 100644 --- a/testdata/baselines/reference/submodule/compiler/classdecl.js +++ b/testdata/baselines/reference/submodule/compiler/classdecl.js @@ -159,7 +159,6 @@ class e { //// [classdecl.d.ts] declare class a { - //constructor (); constructor(n: number); constructor(s: string); pgF(): void; diff --git a/testdata/baselines/reference/submodule/compiler/classdecl.js.diff b/testdata/baselines/reference/submodule/compiler/classdecl.js.diff index f7d7f783af..17aac9dd52 100644 --- a/testdata/baselines/reference/submodule/compiler/classdecl.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classdecl.js.diff @@ -15,12 +15,4 @@ + pv3; foo(ns) { return ns.toString(); - } -@@= skipped -44, +45 lines =@@ - - //// [classdecl.d.ts] - declare class a { -+ //constructor (); - constructor(n: number); - constructor(s: string); - pgF(): void; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js index ba2aecf24d..11a05dfa4e 100644 --- a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js +++ b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js @@ -65,7 +65,6 @@ declare function foo(x: { }, f: (arg: { kind: T; }) => void): void; -// Repro from #45603 interface Action { name: TName; payload: TPayload; diff --git a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js.diff b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js.diff index 829acd3f4e..1a8c6131e3 100644 --- a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js.diff +++ b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js.diff @@ -8,15 +8,7 @@ foo(a, fab); foo(b, fab); const actionA = { payload: 'any-string' }; -@@= skipped -28, +27 lines =@@ - }, f: (arg: { - kind: T; - }) => void): void; -+// Repro from #45603 - interface Action { - name: TName; - payload: TPayload; -@@= skipped -7, +8 lines =@@ +@@= skipped -35, +34 lines =@@ declare const actionA: Action<"ACTION_A", string>; declare const actionB: Action<"ACTION_B", boolean>; declare function call(action: Action, fn: (action: Action) => any): void; diff --git a/testdata/baselines/reference/submodule/compiler/commentsClass.js b/testdata/baselines/reference/submodule/compiler/commentsClass.js index cc1a0c7625..9e2be5134f 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsClass.js +++ b/testdata/baselines/reference/submodule/compiler/commentsClass.js @@ -146,19 +146,19 @@ class c9 { //// [commentsClass.d.ts] /** This is class c2 without constuctor*/ declare class c2 { -} // trailing comment1 +} declare var i2: c2; declare var i2_c: typeof c2; declare class c3 { /** Constructor comment*/ - constructor(); // trailing comment of constructor -} /* trailing comment 2 */ + constructor(); +} declare var i3: c3; declare var i3_c: typeof c3; /** Class comment*/ declare class c4 { /** Constructor comment*/ - constructor(); /* trailing comment of constructor 2*/ + constructor(); } declare var i4: c4; declare var i4_c: typeof c4; @@ -168,20 +168,14 @@ declare class c5 { } declare var i5: c5; declare var i5_c: typeof c5; -/// class with statics and constructor declare class c6 { - /// s1 comment - static s1: number; /// s1 comment2 - /// constructor comment + static s1: number; constructor(); } declare var i6: c6; declare var i6_c: typeof c6; -// class with statics and constructor declare class c7 { - // s1 comment static s1: number; - // constructor comment constructor(); } declare var i7: c7; diff --git a/testdata/baselines/reference/submodule/compiler/commentsClass.js.diff b/testdata/baselines/reference/submodule/compiler/commentsClass.js.diff index 8d7a44b13e..b0401362c6 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsClass.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsClass.js.diff @@ -32,50 +32,4 @@ + static s1; /** s1 comment2 */ /** constructor comment */ - constructor() { -@@= skipped -20, +22 lines =@@ - //// [commentsClass.d.ts] - /** This is class c2 without constuctor*/ - declare class c2 { --} -+} // trailing comment1 - declare var i2: c2; - declare var i2_c: typeof c2; - declare class c3 { - /** Constructor comment*/ -- constructor(); --} -+ constructor(); // trailing comment of constructor -+} /* trailing comment 2 */ - declare var i3: c3; - declare var i3_c: typeof c3; - /** Class comment*/ - declare class c4 { - /** Constructor comment*/ -- constructor(); -+ constructor(); /* trailing comment of constructor 2*/ - } - declare var i4: c4; - declare var i4_c: typeof c4; -@@= skipped -22, +22 lines =@@ - } - declare var i5: c5; - declare var i5_c: typeof c5; -+/// class with statics and constructor - declare class c6 { -- static s1: number; -+ /// s1 comment -+ static s1: number; /// s1 comment2 -+ /// constructor comment - constructor(); - } - declare var i6: c6; - declare var i6_c: typeof c6; -+// class with statics and constructor - declare class c7 { -+ // s1 comment - static s1: number; -+ // constructor comment - constructor(); - } - declare var i7: c7; \ No newline at end of file + constructor() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js b/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js index 18e0b9bb1c..3319f45dc8 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js +++ b/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js @@ -437,11 +437,11 @@ declare class c1 { /** p1 is property of c1*/ p1: number; /** sum with property*/ - p2(/** number to add*/ b: number): number; /* trailing comment of method*/ + p2(/** number to add*/ b: number): number; /** getter property*/ - get p3(): number; // trailing comment Getter + get p3(): number; /** setter property*/ - set p3(/** this is value*/ value: number); // trailing comment Setter + set p3(/** this is value*/ value: number); /** pp1 is property of c1*/ private pp1; /** sum with property*/ @@ -457,9 +457,9 @@ declare class c1 { /** static sum with property*/ static s2(/** number to add*/ b: number): number; /** static getter property*/ - static get s3(): number; /*trailing comment 1 getter*/ + static get s3(): number; /** setter property*/ - static set s3(/** this is value*/ value: number); /*trailing comment 2 */ /*setter*/ + static set s3(/** this is value*/ value: number); nc_p1: number; nc_p2(b: number): number; get nc_p3(): number; @@ -472,29 +472,17 @@ declare class c1 { static nc_s2(b: number): number; static get nc_s3(): number; static set nc_s3(value: number); - // p1 is property of c1 a_p1: number; - // sum with property a_p2(b: number): number; - // getter property get a_p3(): number; - // setter property set a_p3(value: number); - // pp1 is property of c1 private a_pp1; - // sum with property private a_pp2; - // getter property private get a_pp3(); - // setter property private set a_pp3(value); - // s1 is static property of c1 static a_s1: number; - // static sum with property static a_s2(b: number): number; - // static getter property static get a_s3(): number; - // setter property static set a_s3(value: number); /** p1 is property of c1 */ b_p1: number; @@ -544,12 +532,12 @@ declare var i1_c: typeof c1; declare class cProperties { private val; /** getter only property*/ - get p1(): number; // trailing comment of only getter + get p1(): number; get nc_p1(): number; /**setter only property*/ set p2(value: number); - set nc_p2(value: number); /* trailing comment of setter only*/ - x: number; /*trailing comment for property*/ - private y; // trailing comment of // style + set nc_p2(value: number); + x: number; + private y; } declare var cProperties_i: cProperties; diff --git a/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js.diff b/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js.diff index fc0a16f82d..81c4b5b65d 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js.diff @@ -125,78 +125,4 @@ + y = 10; // trailing comment of // style } var cProperties_i = new cProperties(); - cProperties_i.p2 = cProperties_i.p1; -@@= skipped -12, +14 lines =@@ - /** p1 is property of c1*/ - p1: number; - /** sum with property*/ -- p2(/** number to add*/ b: number): number; -+ p2(/** number to add*/ b: number): number; /* trailing comment of method*/ - /** getter property*/ -- get p3(): number; -+ get p3(): number; // trailing comment Getter - /** setter property*/ -- set p3(/** this is value*/ value: number); -+ set p3(/** this is value*/ value: number); // trailing comment Setter - /** pp1 is property of c1*/ - private pp1; - /** sum with property*/ -@@= skipped -20, +20 lines =@@ - /** static sum with property*/ - static s2(/** number to add*/ b: number): number; - /** static getter property*/ -- static get s3(): number; -+ static get s3(): number; /*trailing comment 1 getter*/ - /** setter property*/ -- static set s3(/** this is value*/ value: number); -+ static set s3(/** this is value*/ value: number); /*trailing comment 2 */ /*setter*/ - nc_p1: number; - nc_p2(b: number): number; - get nc_p3(): number; -@@= skipped -15, +15 lines =@@ - static nc_s2(b: number): number; - static get nc_s3(): number; - static set nc_s3(value: number); -+ // p1 is property of c1 - a_p1: number; -+ // sum with property - a_p2(b: number): number; -+ // getter property - get a_p3(): number; -+ // setter property - set a_p3(value: number); -+ // pp1 is property of c1 - private a_pp1; -+ // sum with property - private a_pp2; -+ // getter property - private get a_pp3(); -+ // setter property - private set a_pp3(value); -+ // s1 is static property of c1 - static a_s1: number; -+ // static sum with property - static a_s2(b: number): number; -+ // static getter property - static get a_s3(): number; -+ // setter property - static set a_s3(value: number); - /** p1 is property of c1 */ - b_p1: number; -@@= skipped -60, +72 lines =@@ - declare class cProperties { - private val; - /** getter only property*/ -- get p1(): number; -+ get p1(): number; // trailing comment of only getter - get nc_p1(): number; - /**setter only property*/ - set p2(value: number); -- set nc_p2(value: number); -- x: number; -- private y; -+ set nc_p2(value: number); /* trailing comment of setter only*/ -+ x: number; /*trailing comment for property*/ -+ private y; // trailing comment of // style - } - declare var cProperties_i: cProperties; \ No newline at end of file + cProperties_i.p2 = cProperties_i.p1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js b/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js index fe07fba735..8ae1611e41 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js +++ b/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js @@ -290,11 +290,7 @@ class NoQuickInfoClass { //// [commentsCommentParsing.d.ts] -/// This is simple /// comments declare function simple(): void; -/// multiLine /// Comments -/// This is example of multiline /// comments -/// Another multiLine declare function multiLine(): void; /** this is eg of single line jsdoc style comment */ declare function jsDocSingleLine(): void; @@ -308,33 +304,20 @@ declare function jsDocMultiLine(): void; /** Shoul mege this line as well * and this too*/ /** Another this one too*/ declare function jsDocMultiLineMerge(): void; -/// Triple slash comment /** jsdoc comment */ declare function jsDocMixedComments1(): void; -/// Triple slash comment /** jsdoc comment */ /*** another jsDocComment*/ declare function jsDocMixedComments2(): void; /** jsdoc comment */ /*** another jsDocComment*/ -/// Triple slash comment declare function jsDocMixedComments3(): void; /** jsdoc comment */ /*** another jsDocComment*/ -/// Triple slash comment -/// Triple slash comment 2 declare function jsDocMixedComments4(): void; -/// Triple slash comment 1 /** jsdoc comment */ /*** another jsDocComment*/ -/// Triple slash comment -/// Triple slash comment 2 declare function jsDocMixedComments5(): void; /*** another jsDocComment*/ -/// Triple slash comment 1 -/// Triple slash comment -/// Triple slash comment 2 /** jsdoc comment */ declare function jsDocMixedComments6(): void; -// This shoulnot be help comment declare function noHelpComment1(): void; -/* This shoulnot be help comment */ declare function noHelpComment2(): void; declare function noHelpComment3(): void; /** Adds two integers and returns the result @@ -381,6 +364,5 @@ declare function divide(a: number, b: number): void; *@param c it is third parameter */ declare function jsDocParamTest(/** this is inline comment for a */ a: number, /** this is inline comment for b*/ b: number, c: number, d: number): number; -/**/ declare class NoQuickInfoClass { } diff --git a/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js.diff b/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js.diff deleted file mode 100644 index a41a38d8a7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.commentsCommentParsing.js -+++ new.commentsCommentParsing.js -@@= skipped -289, +289 lines =@@ - - - //// [commentsCommentParsing.d.ts] -+/// This is simple /// comments - declare function simple(): void; -+/// multiLine /// Comments -+/// This is example of multiline /// comments -+/// Another multiLine - declare function multiLine(): void; - /** this is eg of single line jsdoc style comment */ - declare function jsDocSingleLine(): void; -@@= skipped -14, +18 lines =@@ - /** Shoul mege this line as well - * and this too*/ /** Another this one too*/ - declare function jsDocMultiLineMerge(): void; -+/// Triple slash comment - /** jsdoc comment */ - declare function jsDocMixedComments1(): void; -+/// Triple slash comment - /** jsdoc comment */ /*** another jsDocComment*/ - declare function jsDocMixedComments2(): void; - /** jsdoc comment */ /*** another jsDocComment*/ -+/// Triple slash comment - declare function jsDocMixedComments3(): void; - /** jsdoc comment */ /*** another jsDocComment*/ -+/// Triple slash comment -+/// Triple slash comment 2 - declare function jsDocMixedComments4(): void; -+/// Triple slash comment 1 - /** jsdoc comment */ /*** another jsDocComment*/ -+/// Triple slash comment -+/// Triple slash comment 2 - declare function jsDocMixedComments5(): void; - /*** another jsDocComment*/ -+/// Triple slash comment 1 -+/// Triple slash comment -+/// Triple slash comment 2 - /** jsdoc comment */ - declare function jsDocMixedComments6(): void; -+// This shoulnot be help comment - declare function noHelpComment1(): void; -+/* This shoulnot be help comment */ - declare function noHelpComment2(): void; - declare function noHelpComment3(): void; - /** Adds two integers and returns the result -@@= skipped -60, +73 lines =@@ - *@param c it is third parameter - */ - declare function jsDocParamTest(/** this is inline comment for a */ a: number, /** this is inline comment for b*/ b: number, c: number, d: number): number; -+/**/ - declare class NoQuickInfoClass { - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsEnums.js b/testdata/baselines/reference/submodule/compiler/commentsEnums.js index 134fffcc60..41e0c655b0 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsEnums.js +++ b/testdata/baselines/reference/submodule/compiler/commentsEnums.js @@ -30,9 +30,8 @@ x = Colors.FancyPink; /** Enum of colors*/ declare enum Colors { /** Fancy name for 'blue'*/ - Cornflower = 0 /* blue */, + Cornflower = 0, /** Fancy name for 'pink'*/ - FancyPink = // trailing comment - 1 -} // trailing comment + FancyPink = 1 +} declare var x: Colors; diff --git a/testdata/baselines/reference/submodule/compiler/commentsEnums.js.diff b/testdata/baselines/reference/submodule/compiler/commentsEnums.js.diff deleted file mode 100644 index 46c007efed..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsEnums.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.commentsEnums.js -+++ new.commentsEnums.js -@@= skipped -29, +29 lines =@@ - /** Enum of colors*/ - declare enum Colors { - /** Fancy name for 'blue'*/ -- Cornflower = 0, -+ Cornflower = 0 /* blue */, - /** Fancy name for 'pink'*/ -- FancyPink = 1 --} -+ FancyPink = // trailing comment -+ 1 -+} // trailing comment - declare var x: Colors; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js b/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js index 5692deb736..116ea6aac8 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js +++ b/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js @@ -164,6 +164,6 @@ export declare namespace m4 { } //// [commentsExternalModules_1.d.ts] /**This is on import declaration*/ -import extMod = require("./commentsExternalModules2_0"); // trailing comment 1 +import extMod = require("./commentsExternalModules2_0"); export declare var newVar: extMod.m1.m2.c; export declare var newVar2: extMod.m4.m2.c; diff --git a/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js.diff b/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js.diff index 5c483f0ae1..3f34288af9 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js.diff @@ -8,12 +8,4 @@ +const extMod = require("./commentsExternalModules2_0"); // trailing comment 1 extMod.m1.fooExport(); exports.newVar = new extMod.m1.m2.c(); - extMod.m4.fooExport(); -@@= skipped -41, +41 lines =@@ - } - //// [commentsExternalModules_1.d.ts] - /**This is on import declaration*/ --import extMod = require("./commentsExternalModules2_0"); -+import extMod = require("./commentsExternalModules2_0"); // trailing comment 1 - export declare var newVar: extMod.m1.m2.c; - export declare var newVar2: extMod.m4.m2.c; \ No newline at end of file + extMod.m4.fooExport(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsFunction.js b/testdata/baselines/reference/submodule/compiler/commentsFunction.js index feada1b041..2e2182bdc3 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsFunction.js +++ b/testdata/baselines/reference/submodule/compiler/commentsFunction.js @@ -103,23 +103,20 @@ function foo2() { //// [commentsFunction.d.ts] /** This comment should appear for foo*/ -declare function foo(): void; /* trailing comment of function */ +declare function foo(): void; /** This is comment for function signature*/ declare function fooWithParameters(/** this is comment about a*/ a: string, /** this is comment for b*/ -b: number): void; // trailing comment of function +b: number): void; /** fooFunc * comment */ declare var fooFunc: (b: string) => string; -/// lamdaFoo var comment declare var lambdaFoo: (a: number, b: number) => number; declare var lambddaNoVarComment: (a: number, b: number) => number; -declare function blah(a: string /* multiline trailing comment -multiline */): void; -declare function blah2(a: string /* single line multiple trailing comments */ /* second */): void; -declare function blah3(a: string // trailing commen single line -): void; -declare function blah4(/*1*/ a: string /*2*/, /*3*/ b: string /*4*/): void; +declare function blah(a: string): void; +declare function blah2(a: string): void; +declare function blah3(a: string): void; +declare function blah4(a: string, b: string): void; declare function foo1(): void; declare function foo2(): void; diff --git a/testdata/baselines/reference/submodule/compiler/commentsFunction.js.diff b/testdata/baselines/reference/submodule/compiler/commentsFunction.js.diff index c5be9123be..b3785b6487 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsFunction.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsFunction.js.diff @@ -1,35 +1,19 @@ --- old.commentsFunction.js +++ new.commentsFunction.js -@@= skipped -102, +102 lines =@@ - - //// [commentsFunction.d.ts] - /** This comment should appear for foo*/ --declare function foo(): void; -+declare function foo(): void; /* trailing comment of function */ - /** This is comment for function signature*/ - declare function fooWithParameters(/** this is comment about a*/ a: string, - /** this is comment for b*/ --b: number): void; -+b: number): void; // trailing comment of function +@@= skipped -110, +110 lines =@@ /** fooFunc * comment */ -declare var fooFunc: (/** fooFunctionValue param */ b: string) => string; -declare var lambdaFoo: (/**param a*/ a: number, /**param b*/ b: number) => number; -declare var lambddaNoVarComment: (/**param a*/ a: number, /**param b*/ b: number) => number; --declare function blah(a: string): void; --declare function blah2(a: string): void; --declare function blah3(a: string): void; --declare function blah4(/*1*/ a: string, /*3*/ b: string): void; +declare var fooFunc: (b: string) => string; -+/// lamdaFoo var comment +declare var lambdaFoo: (a: number, b: number) => number; +declare var lambddaNoVarComment: (a: number, b: number) => number; -+declare function blah(a: string /* multiline trailing comment -+multiline */): void; -+declare function blah2(a: string /* single line multiple trailing comments */ /* second */): void; -+declare function blah3(a: string // trailing commen single line -+): void; -+declare function blah4(/*1*/ a: string /*2*/, /*3*/ b: string /*4*/): void; + declare function blah(a: string): void; + declare function blah2(a: string): void; + declare function blah3(a: string): void; +-declare function blah4(/*1*/ a: string, /*3*/ b: string): void; ++declare function blah4(a: string, b: string): void; declare function foo1(): void; declare function foo2(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsInheritance.js b/testdata/baselines/reference/submodule/compiler/commentsInheritance.js index ad28aef626..095e6e5038 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsInheritance.js +++ b/testdata/baselines/reference/submodule/compiler/commentsInheritance.js @@ -260,7 +260,6 @@ interface i1 { i1_f1(): void; /** i1_l1*/ i1_l1: () => void; - // il_nc_p1 i1_nc_p1: number; i1_nc_f1(): void; i1_nc_l1: () => void; @@ -273,7 +272,6 @@ interface i1 { } declare class c1 implements i1 { i1_p1: number; - // i1_f1 i1_f1(): void; i1_l1: () => void; i1_nc_p1: number; @@ -340,7 +338,6 @@ interface i2 { i2_f1(): void; /** i2_l1*/ i2_l1: () => void; - // i2_nc_p1 i2_nc_p1: number; i2_nc_f1(): void; i2_nc_l1: () => void; diff --git a/testdata/baselines/reference/submodule/compiler/commentsInheritance.js.diff b/testdata/baselines/reference/submodule/compiler/commentsInheritance.js.diff index 9c1fef1478..db52af6aee 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsInheritance.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsInheritance.js.diff @@ -77,28 +77,4 @@ + nc_p1; nc_f1() { } - get nc_prop() { -@@= skipped -28, +29 lines =@@ - i1_f1(): void; - /** i1_l1*/ - i1_l1: () => void; -+ // il_nc_p1 - i1_nc_p1: number; - i1_nc_f1(): void; - i1_nc_l1: () => void; -@@= skipped -12, +13 lines =@@ - } - declare class c1 implements i1 { - i1_p1: number; -+ // i1_f1 - i1_f1(): void; - i1_l1: () => void; - i1_nc_p1: number; -@@= skipped -66, +67 lines =@@ - i2_f1(): void; - /** i2_l1*/ - i2_l1: () => void; -+ // i2_nc_p1 - i2_nc_p1: number; - i2_nc_f1(): void; - i2_nc_l1: () => void; \ No newline at end of file + get nc_prop() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsInterface.js b/testdata/baselines/reference/submodule/compiler/commentsInterface.js index 73b36248d0..ee3059a00f 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsInterface.js +++ b/testdata/baselines/reference/submodule/compiler/commentsInterface.js @@ -131,7 +131,6 @@ interface i2 { /** this is fnfoo*/ fnfoo(/**param help*/ b: number): string; nc_fnfoo(b: number): string; - // nc_y nc_y: number; } declare var i2_i: i2; diff --git a/testdata/baselines/reference/submodule/compiler/commentsInterface.js.diff b/testdata/baselines/reference/submodule/compiler/commentsInterface.js.diff index c261dce211..0b90da5261 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsInterface.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsInterface.js.diff @@ -8,12 +8,4 @@ + f: (/**i3_i a*/ a) => "Hello" + a, l: this.f, /** own x*/ - x: this.f(10), -@@= skipped -40, +40 lines =@@ - /** this is fnfoo*/ - fnfoo(/**param help*/ b: number): string; - nc_fnfoo(b: number): string; -+ // nc_y - nc_y: number; - } - declare var i2_i: i2; \ No newline at end of file + x: this.f(10), \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsModules.js b/testdata/baselines/reference/submodule/compiler/commentsModules.js index 8a565de21a..90ad9d5eb1 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsModules.js +++ b/testdata/baselines/reference/submodule/compiler/commentsModules.js @@ -258,33 +258,32 @@ declare namespace m1 { } /** exported function*/ function fooExport(): number; - // shouldn't appear function foo2Export(/**hm*/ a: string): void; /** foo3Export * comment */ function foo3Export(): void; -} // trailing comment module +} declare var myvar: m1.m2.c; /** module comment of m2.m3*/ declare namespace m2.m3 { /** Exported class comment*/ class c { } -} /* trailing dotted module comment*/ +} /** module comment of m3.m4.m5*/ declare namespace m3.m4.m5 { /** Exported class comment*/ class c { } -} // trailing dotted module 2 +} /** module comment of m4.m5.m6*/ declare namespace m4.m5.m6 { namespace m7 { /** Exported class comment*/ class c { } - } /* trailing inner module */ /* multiple comments*/ + } } /** module comment of m5.m6.m7*/ declare namespace m5.m6.m7 { @@ -308,7 +307,6 @@ declare namespace m7.m8 { /** Exported class comment*/ class c { } - // class e class e { } } diff --git a/testdata/baselines/reference/submodule/compiler/commentsModules.js.diff b/testdata/baselines/reference/submodule/compiler/commentsModules.js.diff index a5ac1f20cf..cde872d831 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsModules.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsModules.js.diff @@ -62,50 +62,4 @@ + let m8; (function (m8) { /** module m9 comment*/ - let m9; -@@= skipped -37, +37 lines =@@ - } - /** exported function*/ - function fooExport(): number; -+ // shouldn't appear - function foo2Export(/**hm*/ a: string): void; - /** foo3Export - * comment - */ - function foo3Export(): void; --} -+} // trailing comment module - declare var myvar: m1.m2.c; - /** module comment of m2.m3*/ - declare namespace m2.m3 { - /** Exported class comment*/ - class c { - } --} -+} /* trailing dotted module comment*/ - /** module comment of m3.m4.m5*/ - declare namespace m3.m4.m5 { - /** Exported class comment*/ - class c { - } --} -+} // trailing dotted module 2 - /** module comment of m4.m5.m6*/ - declare namespace m4.m5.m6 { - namespace m7 { - /** Exported class comment*/ - class c { - } -- } -+ } /* trailing inner module */ /* multiple comments*/ - } - /** module comment of m5.m6.m7*/ - declare namespace m5.m6.m7 { -@@= skipped -49, +50 lines =@@ - /** Exported class comment*/ - class c { - } -+ // class e - class e { - } - } \ No newline at end of file + let m9; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js b/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js index 66febbc158..a7cdd960d1 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js +++ b/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js @@ -59,16 +59,13 @@ declare namespace multiM { /** class b*/ class b { } - // class d class d { } } -/// this is multi module 2 declare namespace multiM { /** class c comment*/ class c { } - /// class e class e { } } diff --git a/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js.diff b/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js.diff deleted file mode 100644 index 5fa1378972..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.commentsMultiModuleSingleFile.js -+++ new.commentsMultiModuleSingleFile.js -@@= skipped -58, +58 lines =@@ - /** class b*/ - class b { - } -+ // class d - class d { - } - } -+/// this is multi module 2 - declare namespace multiM { - /** class c comment*/ - class c { - } -+ /// class e - class e { - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOverloads.js b/testdata/baselines/reference/submodule/compiler/commentsOverloads.js index a152d73c03..841f94fce6 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOverloads.js +++ b/testdata/baselines/reference/submodule/compiler/commentsOverloads.js @@ -276,7 +276,6 @@ interface i1 { foo(a: number): number; /** foo 2*/ foo(b: string): number; - // foo 3 foo(arr: number[]): number; /** foo 4 */ foo(arr: string[]): number; @@ -290,7 +289,6 @@ interface i1 { foo4(b: string): number; /** foo4 any */ foo4(c: any): any; - /// new 1 new (a: string): any; /** new 1*/ new (b: number): any; @@ -346,7 +344,6 @@ declare class c1 { declare class c2 { /** c2 1*/ constructor(a: number); - // c2 2 constructor(b: string); } declare class c3 { diff --git a/testdata/baselines/reference/submodule/compiler/commentsOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/commentsOverloads.js.diff deleted file mode 100644 index d6f6a7dc0c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOverloads.js.diff +++ /dev/null @@ -1,26 +0,0 @@ ---- old.commentsOverloads.js -+++ new.commentsOverloads.js -@@= skipped -275, +275 lines =@@ - foo(a: number): number; - /** foo 2*/ - foo(b: string): number; -+ // foo 3 - foo(arr: number[]): number; - /** foo 4 */ - foo(arr: string[]): number; -@@= skipped -13, +14 lines =@@ - foo4(b: string): number; - /** foo4 any */ - foo4(c: any): any; -+ /// new 1 - new (a: string): any; - /** new 1*/ - new (b: number): any; -@@= skipped -55, +56 lines =@@ - declare class c2 { - /** c2 1*/ - constructor(a: number); -+ // c2 2 - constructor(b: string); - } - declare class c3 { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js b/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js index 0b49eb7264..6ac87852db 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js +++ b/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js @@ -80,25 +80,22 @@ n4 = z2; //// [commentsVarDecl.d.ts] /** Variable comments*/ -declare var myVariable: number; // This trailing Comment1 +declare var myVariable: number; /** This is another variable comment*/ declare var anotherVariable: number; -// shouldn't appear declare var aVar: string; /** this is multiline comment * All these variables are of number type */ -declare var anotherAnotherVariable: number; /* these are multiple trailing comments */ /* multiple trailing comments */ +declare var anotherAnotherVariable: number; /** Triple slash multiline comment*/ /** another line in the comment*/ /** comment line 2*/ -declare var x: number; /* multiline trailing comment -this is multiline trailing comment */ +declare var x: number; /** triple slash comment1*/ /** jsdocstyle comment - only this comment should be in .d.ts file*/ declare var n: number; /** var deckaration with comment on type as well*/ declare var y: number; -/// var deckaration with comment on type as well declare var yy: number; /** comment2 */ declare var z: (x: number, y: number) => number; diff --git a/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js.diff b/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js.diff deleted file mode 100644 index 6ab5ce9968..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.commentsVarDecl.js -+++ new.commentsVarDecl.js -@@= skipped -79, +79 lines =@@ - - //// [commentsVarDecl.d.ts] - /** Variable comments*/ --declare var myVariable: number; -+declare var myVariable: number; // This trailing Comment1 - /** This is another variable comment*/ - declare var anotherVariable: number; -+// shouldn't appear - declare var aVar: string; - /** this is multiline comment - * All these variables are of number type */ --declare var anotherAnotherVariable: number; -+declare var anotherAnotherVariable: number; /* these are multiple trailing comments */ /* multiple trailing comments */ - /** Triple slash multiline comment*/ - /** another line in the comment*/ - /** comment line 2*/ --declare var x: number; -+declare var x: number; /* multiline trailing comment -+this is multiline trailing comment */ - /** triple slash comment1*/ - /** jsdocstyle comment - only this comment should be in .d.ts file*/ - declare var n: number; - /** var deckaration with comment on type as well*/ - declare var y: number; -+/// var deckaration with comment on type as well - declare var yy: number; - /** comment2 */ - declare var z: (x: number, y: number) => number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js b/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js index f0dd107079..93ade3dc8d 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js +++ b/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js @@ -151,7 +151,7 @@ interface i1 { (a: number): number; new (b: string): any; [a: number]: string; - myFoo(/*param prop*/ a: number): string; + myFoo(a: number): string; prop: string; } declare var i1_i: i1; diff --git a/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js.diff b/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js.diff index d3b6df3b5b..55a0b6df03 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js.diff @@ -34,13 +34,4 @@ +declare function foo(/** parameter comment*/ p: number): void; declare var fooVar: () => void; declare class c { - constructor(); -@@= skipped -16, +16 lines =@@ - (a: number): number; - new (b: string): any; - [a: number]: string; -- myFoo(a: number): string; -+ myFoo(/*param prop*/ a: number): string; - prop: string; - } - declare var i1_i: i1; \ No newline at end of file + constructor(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsemitComments.js b/testdata/baselines/reference/submodule/compiler/commentsemitComments.js index 49d7c88c5c..35cc34e86e 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsemitComments.js +++ b/testdata/baselines/reference/submodule/compiler/commentsemitComments.js @@ -176,7 +176,7 @@ interface i1 { /**indexer property*/ [a: number]: string; /** function property;*/ - myFoo(/*param prop*/ a: number): string; + myFoo(a: number): string; /** prop*/ prop: string; } @@ -189,9 +189,7 @@ declare namespace m1 { x: number; constructor(x: number); } - /// module m2 namespace m2 { } } -/// this is x declare var x: any; diff --git a/testdata/baselines/reference/submodule/compiler/commentsemitComments.js.diff b/testdata/baselines/reference/submodule/compiler/commentsemitComments.js.diff index abc75b4a99..b366c1c4fc 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsemitComments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsemitComments.js.diff @@ -20,13 +20,12 @@ constructor(x) { this.x = x; } -@@= skipped -56, +57 lines =@@ - x: number; - constructor(x: number); - } -+ /// module m2 - namespace m2 { - } - } -+/// this is x - declare var x: any; \ No newline at end of file +@@= skipped -43, +44 lines =@@ + /**indexer property*/ + [a: number]: string; + /** function property;*/ +- myFoo(/*param prop*/ a: number): string; ++ myFoo(a: number): string; + /** prop*/ + prop: string; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js b/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js index 47eefb8a42..c8afaaee30 100644 --- a/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js +++ b/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js @@ -180,7 +180,6 @@ declare class C { readonly p3: E; readonly p4: E.B; } -// Repro from #52531 declare enum MyEnum { A = 0, B = 1, diff --git a/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js.diff b/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js.diff index 91f8b029ec..835664175c 100644 --- a/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js.diff +++ b/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js.diff @@ -47,7 +47,4 @@ + readonly p3: E; readonly p4: E.B; } -+// Repro from #52531 - declare enum MyEnum { - A = 0, - B = 1, \ No newline at end of file + declare enum MyEnum { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/computedPropertiesNarrowed.js b/testdata/baselines/reference/submodule/compiler/computedPropertiesNarrowed.js index 6a50c048dd..28529b6c67 100644 --- a/testdata/baselines/reference/submodule/compiler/computedPropertiesNarrowed.js +++ b/testdata/baselines/reference/submodule/compiler/computedPropertiesNarrowed.js @@ -92,12 +92,11 @@ export const o9 = { //// [computedPropertiesNarrowed.d.ts] export declare let o: { - 1: number; // error narrow type !== declared type + 1: number; }; export declare let o2: { - 0: number; // ok literal computed type + 0: number; }; -// literals are ok export declare let o3: { 1: number; }; @@ -106,7 +105,7 @@ export declare let o31: { }; export declare let o32: { [x: number]: number; -}; // error number +}; export declare let o4: { [x: symbol]: number; }; @@ -115,13 +114,13 @@ export declare let o5: { }; declare const uu: unique symbol; export declare let o6: { - [uu]: number; // Should be ok + [uu]: number; }; export declare let o7: { - 1: number; // Should error + 1: number; }; export declare const o8: { - 1: number; // Fresh + 1: number; }; export declare const o9: { 0: number; diff --git a/testdata/baselines/reference/submodule/compiler/computedPropertiesNarrowed.js.diff b/testdata/baselines/reference/submodule/compiler/computedPropertiesNarrowed.js.diff index 589126f56a..5e457eaae7 100644 --- a/testdata/baselines/reference/submodule/compiler/computedPropertiesNarrowed.js.diff +++ b/testdata/baselines/reference/submodule/compiler/computedPropertiesNarrowed.js.diff @@ -8,12 +8,11 @@ + +//// [computedPropertiesNarrowed.d.ts] +export declare let o: { -+ 1: number; // error narrow type !== declared type ++ 1: number; +}; +export declare let o2: { -+ 0: number; // ok literal computed type ++ 0: number; +}; -+// literals are ok +export declare let o3: { + 1: number; +}; @@ -22,7 +21,7 @@ +}; +export declare let o32: { + [x: number]: number; -+}; // error number ++}; +export declare let o4: { + [x: symbol]: number; +}; @@ -31,13 +30,13 @@ +}; +declare const uu: unique symbol; +export declare let o6: { -+ [uu]: number; // Should be ok ++ [uu]: number; +}; +export declare let o7: { -+ 1: number; // Should error ++ 1: number; +}; +export declare const o8: { -+ 1: number; // Fresh ++ 1: number; +}; +export declare const o9: { + 0: number; diff --git a/testdata/baselines/reference/submodule/compiler/conditionalTypesASI.js b/testdata/baselines/reference/submodule/compiler/conditionalTypesASI.js index 043724645a..bd47ca6308 100644 --- a/testdata/baselines/reference/submodule/compiler/conditionalTypesASI.js +++ b/testdata/baselines/reference/submodule/compiler/conditionalTypesASI.js @@ -13,7 +13,6 @@ interface JSONSchema4 { //// [conditionalTypesASI.d.ts] -// Repro from #21637 interface JSONSchema4 { a?: number; extends?: string | string[]; diff --git a/testdata/baselines/reference/submodule/compiler/conditionalTypesASI.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalTypesASI.js.diff index abca94c376..51579daebe 100644 --- a/testdata/baselines/reference/submodule/compiler/conditionalTypesASI.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conditionalTypesASI.js.diff @@ -7,8 +7,4 @@ -// Repro from #21637 - //// [conditionalTypesASI.d.ts] -+// Repro from #21637 - interface JSONSchema4 { - a?: number; - extends?: string | string[]; \ No newline at end of file + //// [conditionalTypesASI.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constDeclarations.js b/testdata/baselines/reference/submodule/compiler/constDeclarations.js index e3589b8651..1f75520e56 100644 --- a/testdata/baselines/reference/submodule/compiler/constDeclarations.js +++ b/testdata/baselines/reference/submodule/compiler/constDeclarations.js @@ -26,7 +26,6 @@ for (const c5 = 0, c6 = 0; c5 < c6;) { //// [constDeclarations.d.ts] -// No error declare const c1 = false; declare const c2: number; declare const c3 = 0, c4: string, c5: any; diff --git a/testdata/baselines/reference/submodule/compiler/constDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/constDeclarations.js.diff deleted file mode 100644 index 78929eae38..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constDeclarations.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.constDeclarations.js -+++ new.constDeclarations.js -@@= skipped -25, +25 lines =@@ - - - //// [constDeclarations.d.ts] -+// No error - declare const c1 = false; - declare const c2: number; - declare const c3 = 0, c4: string, c5: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constDeclarations2.js b/testdata/baselines/reference/submodule/compiler/constDeclarations2.js index 0c1ba697b9..e870d7dcc9 100644 --- a/testdata/baselines/reference/submodule/compiler/constDeclarations2.js +++ b/testdata/baselines/reference/submodule/compiler/constDeclarations2.js @@ -20,7 +20,6 @@ var M; //// [constDeclarations2.d.ts] -// No error declare namespace M { const c1 = false; const c2: number; diff --git a/testdata/baselines/reference/submodule/compiler/constDeclarations2.js.diff b/testdata/baselines/reference/submodule/compiler/constDeclarations2.js.diff deleted file mode 100644 index 116618e8c7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constDeclarations2.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.constDeclarations2.js -+++ new.constDeclarations2.js -@@= skipped -19, +19 lines =@@ - - - //// [constDeclarations2.d.ts] -+// No error - declare namespace M { - const c1 = false; - const c2: number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js b/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js index f35471fa66..496cc2c0d8 100644 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js +++ b/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js @@ -38,17 +38,15 @@ const x = observable(false); //// [contextuallyTypedBooleanLiterals.d.ts] -// Repro from #48363 type Box = { get: () => T; set: (value: T) => void; }; declare function box(value: T): Box; -declare const bn1: Box; // Box -declare const bn2: Box; // Ok -declare const bb1: Box; // Box -declare const bb2: Box; // Error, box not assignable to Box -// Repro from #48150 +declare const bn1: Box; +declare const bn2: Box; +declare const bb1: Box; +declare const bb2: Box; interface Observable { (): T; (value: T): any; diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js.diff index 66d0d46f9e..65bad0af4d 100644 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js.diff @@ -8,26 +8,4 @@ -// Repro from #48363 const bn1 = box(0); // Box const bn2 = box(0); // Ok - const bb1 = box(false); // Box -@@= skipped -10, +8 lines =@@ - - - //// [contextuallyTypedBooleanLiterals.d.ts] -+// Repro from #48363 - type Box = { - get: () => T; - set: (value: T) => void; - }; - declare function box(value: T): Box; --declare const bn1: Box; --declare const bn2: Box; --declare const bb1: Box; --declare const bb2: Box; -+declare const bn1: Box; // Box -+declare const bn2: Box; // Ok -+declare const bb1: Box; // Box -+declare const bb2: Box; // Error, box not assignable to Box -+// Repro from #48150 - interface Observable { - (): T; - (value: T): any; \ No newline at end of file + const bb1 = box(false); // Box \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedSymbolNamedProperties.js b/testdata/baselines/reference/submodule/compiler/contextuallyTypedSymbolNamedProperties.js index 076a5a7081..3f40d48d0c 100644 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedSymbolNamedProperties.js +++ b/testdata/baselines/reference/submodule/compiler/contextuallyTypedSymbolNamedProperties.js @@ -34,7 +34,6 @@ const x = { [A]: s => s.length }; //// [contextuallyTypedSymbolNamedProperties.d.ts] -// Repros from #43628 declare const A: unique symbol; declare const B: unique symbol; type Action = { diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedSymbolNamedProperties.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypedSymbolNamedProperties.js.diff index c32206cd4b..319e9b6cc5 100644 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedSymbolNamedProperties.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextuallyTypedSymbolNamedProperties.js.diff @@ -7,12 +7,4 @@ -"use strict"; // Repros from #43628 const A = Symbol("A"); - const B = Symbol("B"); -@@= skipped -12, +11 lines =@@ - - - //// [contextuallyTypedSymbolNamedProperties.d.ts] -+// Repros from #43628 - declare const A: unique symbol; - declare const B: unique symbol; - type Action = { \ No newline at end of file + const B = Symbol("B"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowAutoAccessor1.js b/testdata/baselines/reference/submodule/compiler/controlFlowAutoAccessor1.js index 6e6c3f409d..c594f32aef 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowAutoAccessor1.js +++ b/testdata/baselines/reference/submodule/compiler/controlFlowAutoAccessor1.js @@ -119,7 +119,6 @@ declare class Example2 { constructor(test: number | undefined); getTest(): number; } -// https://github.com/microsoft/TypeScript/issues/59728 declare class Example3 { accessor value: number | null; constructor(n: number); @@ -129,5 +128,5 @@ declare class Example4 { static accessor value: number | null; } declare class Example5 { - static accessor value: any; // error + static accessor value: any; } diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowAutoAccessor1.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowAutoAccessor1.js.diff index 6d2fb7badb..c880e3e82f 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowAutoAccessor1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowAutoAccessor1.js.diff @@ -7,19 +7,4 @@ -"use strict"; class Example { accessor test; - constructor(test) { -@@= skipped -59, +58 lines =@@ - constructor(test: number | undefined); - getTest(): number; - } -+// https://github.com/microsoft/TypeScript/issues/59728 - declare class Example3 { - accessor value: number | null; - constructor(n: number); -@@= skipped -9, +10 lines =@@ - static accessor value: number | null; - } - declare class Example5 { -- static accessor value: any; -+ static accessor value: any; // error - } \ No newline at end of file + constructor(test) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/correlatedUnions.js b/testdata/baselines/reference/submodule/compiler/correlatedUnions.js index 40766012d2..4feb2b13c4 100644 --- a/testdata/baselines/reference/submodule/compiler/correlatedUnions.js +++ b/testdata/baselines/reference/submodule/compiler/correlatedUnions.js @@ -424,7 +424,6 @@ function getValueConcrete(o, k) { //// [correlatedUnions.d.ts] -// Various repros from #30581 type RecordMap = { n: number; s: string; @@ -438,9 +437,8 @@ type UnionRecord = { }; }[K]; declare function processRecord(rec: UnionRecord): void; -declare const r1: UnionRecord<'n'>; // { kind: 'n', v: number, f: (v: number) => void } -declare const r2: UnionRecord; // { kind: 'n', ... } | { kind: 's', ... } | { kind: 'b', ... } -// -------- +declare const r1: UnionRecord<'n'>; +declare const r2: UnionRecord; type TextFieldData = { value: string; }; @@ -464,7 +462,6 @@ declare function renderTextField(props: TextFieldData): void; declare function renderSelectField(props: SelectFieldData): void; declare const renderFuncs: RenderFuncMap; declare function renderField(field: FormField): void; -// -------- type TypeMap = { foo: string; bar: number; @@ -482,7 +479,6 @@ type DataEntry = { }[K]; declare const data: DataEntry[]; declare function process(data: DataEntry[]): void; -// -------- type LetterMap = { A: string; B: number; @@ -509,7 +505,6 @@ declare const xx: { letter: B; caller: BCaller; }; -// -------- type Ev = { [P in K]: { readonly name: P; @@ -529,9 +524,7 @@ declare const scrollEvent: { readonly once?: boolean | undefined; readonly callback: (ev: Event) => void; }; -// -------- declare function ff1(): void; -// Repro from #47368 type ArgMap = { a: number; b: string; @@ -544,7 +537,6 @@ declare function f1(funcs: Funcs, key: K, arg: ArgMap[K] declare function f2(funcs: Funcs, key: K, arg: ArgMap[K]): void; declare function f3(funcs: Funcs, key: K, arg: ArgMap[K]): void; declare function f4(x: Funcs[keyof ArgMap], y: Funcs[K]): void; -// Repro from #47890 interface MyObj { someKey: { name: string; @@ -555,13 +547,11 @@ interface MyObj { } declare const ref: MyObj; declare function func(k: K): MyObj[K]['name'] | undefined; -// Repro from #48157 interface Foo { bar?: string; } declare function foo(prop: T, f: Required): void; declare function bar(t: string): void; -// Repro from #48246 declare function makeCompleteLookupMapping, Attr extends keyof T[number]>(ops: T, attr: Attr): { [Item in T[number] as Item[Attr]]: Item; }; @@ -582,7 +572,6 @@ type BarLookup = typeof BAR_LOOKUP; type Baz = { [K in keyof BarLookup]: BarLookup[K]['name']; }; -// repro from #43982 interface Original { prop1: { subProp1: string; @@ -602,13 +591,11 @@ type SameKeys = { }; type MappedFromOriginal = SameKeys; declare const getStringAndNumberFromOriginalAndMapped: (original: Original, mappedFromOriginal: SameKeys, key: K, nestedKey: N) => [Original[K][N], SameKeys[K][N]]; -// repro from #31675 interface Config { string: string; number: number; } declare function getConfigOrDefault(userConfig: Partial, key: T, defaultValue: Config[T]): Config[T]; -// repro from #47523 type Foo1 = { x: number; y: string; diff --git a/testdata/baselines/reference/submodule/compiler/correlatedUnions.js.diff b/testdata/baselines/reference/submodule/compiler/correlatedUnions.js.diff index 4caee878bc..521dea88b7 100644 --- a/testdata/baselines/reference/submodule/compiler/correlatedUnions.js.diff +++ b/testdata/baselines/reference/submodule/compiler/correlatedUnions.js.diff @@ -9,51 +9,7 @@ function processRecord(rec) { rec.f(rec.v); } -@@= skipped -122, +120 lines =@@ - - - //// [correlatedUnions.d.ts] -+// Various repros from #30581 - type RecordMap = { - n: number; - s: string; -@@= skipped -13, +14 lines =@@ - }; - }[K]; - declare function processRecord(rec: UnionRecord): void; --declare const r1: UnionRecord<'n'>; --declare const r2: UnionRecord; -+declare const r1: UnionRecord<'n'>; // { kind: 'n', v: number, f: (v: number) => void } -+declare const r2: UnionRecord; // { kind: 'n', ... } | { kind: 's', ... } | { kind: 'b', ... } -+// -------- - type TextFieldData = { - value: string; - }; -@@= skipped -25, +26 lines =@@ - declare function renderSelectField(props: SelectFieldData): void; - declare const renderFuncs: RenderFuncMap; - declare function renderField(field: FormField): void; -+// -------- - type TypeMap = { - foo: string; - bar: number; -@@= skipped -17, +18 lines =@@ - }[K]; - declare const data: DataEntry[]; - declare function process(data: DataEntry[]): void; -+// -------- - type LetterMap = { - A: string; - B: number; -@@= skipped -26, +27 lines =@@ - letter: B; - caller: BCaller; - }; -+// -------- - type Ev = { - [P in K]: { - readonly name: P; -@@= skipped -11, +12 lines =@@ +@@= skipped -214, +212 lines =@@ declare function createEventListener({ name, once, callback }: Ev): Ev; declare const clickEvent: { readonly name: "click"; @@ -67,55 +23,13 @@ + readonly once?: boolean | undefined; readonly callback: (ev: Event) => void; }; -+// -------- declare function ff1(): void; -+// Repro from #47368 - type ArgMap = { - a: number; - b: string; -@@= skipped -21, +23 lines =@@ - declare function f2(funcs: Funcs, key: K, arg: ArgMap[K]): void; - declare function f3(funcs: Funcs, key: K, arg: ArgMap[K]): void; - declare function f4(x: Funcs[keyof ArgMap], y: Funcs[K]): void; -+// Repro from #47890 - interface MyObj { - someKey: { - name: string; -@@= skipped -10, +11 lines =@@ - } - declare const ref: MyObj; - declare function func(k: K): MyObj[K]['name'] | undefined; -+// Repro from #48157 - interface Foo { - bar?: string; - } - declare function foo(prop: T, f: Required): void; - declare function bar(t: string): void; -+// Repro from #48246 - declare function makeCompleteLookupMapping, Attr extends keyof T[number]>(ops: T, attr: Attr): { - [Item in T[number] as Item[Attr]]: Item; - }; -@@= skipped -25, +27 lines =@@ - type Baz = { - [K in keyof BarLookup]: BarLookup[K]['name']; - }; -+// repro from #43982 - interface Original { - prop1: { - subProp1: string; -@@= skipped -18, +19 lines =@@ +@@= skipped -74, +74 lines =@@ }; }; type MappedFromOriginal = SameKeys; -declare const getStringAndNumberFromOriginalAndMapped: >(original: Original, mappedFromOriginal: MappedFromOriginal, key: K, nestedKey: N) => [Original[K][N], MappedFromOriginal[K][N]]; +declare const getStringAndNumberFromOriginalAndMapped: (original: Original, mappedFromOriginal: SameKeys, key: K, nestedKey: N) => [Original[K][N], SameKeys[K][N]]; -+// repro from #31675 interface Config { string: string; - number: number; - } - declare function getConfigOrDefault(userConfig: Partial, key: T, defaultValue: Config[T]): Config[T]; -+// repro from #47523 - type Foo1 = { - x: number; - y: string; \ No newline at end of file + number: number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileAccessors.js b/testdata/baselines/reference/submodule/compiler/declFileAccessors.js index 8f3041b248..b6ca207f55 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileAccessors.js +++ b/testdata/baselines/reference/submodule/compiler/declFileAccessors.js @@ -221,9 +221,7 @@ export declare class c1 { private set nc_pp3(value); static get nc_s3(): string; static set nc_s3(value: string); - // Only getter property get onlyGetter(): number; - // Only setter property set onlySetter(value: number); } //// [declFileAccessors_1.d.ts] @@ -247,8 +245,6 @@ declare class c2 { private set nc_pp3(value); static get nc_s3(): string; static set nc_s3(value: string); - // Only getter property get onlyGetter(): number; - // Only setter property set onlySetter(value: number); } diff --git a/testdata/baselines/reference/submodule/compiler/declFileAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/declFileAccessors.js.diff deleted file mode 100644 index 528dc22ad7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileAccessors.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.declFileAccessors.js -+++ new.declFileAccessors.js -@@= skipped -220, +220 lines =@@ - private set nc_pp3(value); - static get nc_s3(): string; - static set nc_s3(value: string); -+ // Only getter property - get onlyGetter(): number; -+ // Only setter property - set onlySetter(value: number); - } - //// [declFileAccessors_1.d.ts] -@@= skipped -24, +26 lines =@@ - private set nc_pp3(value); - static get nc_s3(): string; - static set nc_s3(value: string); -+ // Only getter property - get onlyGetter(): number; -+ // Only setter property - set onlySetter(value: number); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js b/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js index 7f81096b61..3221a166b5 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js +++ b/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js @@ -104,13 +104,11 @@ declare namespace templa.dom.mvc { interface IElementController extends templa.mvc.IController { } } -// Module declare namespace templa.dom.mvc { class AbstractElementController extends templa.mvc.AbstractController implements IElementController { constructor(); } } -// Module declare namespace templa.dom.mvc.composite { class AbstractCompositeElementController extends templa.dom.mvc.AbstractElementController { _controllers: templa.mvc.IController[]; diff --git a/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js.diff b/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js.diff index b8361a9497..813f1d3628 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js.diff @@ -29,18 +29,4 @@ + _controllers; constructor() { super(); - this._controllers = []; -@@= skipped -41, +42 lines =@@ - interface IElementController extends templa.mvc.IController { - } - } -+// Module - declare namespace templa.dom.mvc { - class AbstractElementController extends templa.mvc.AbstractController implements IElementController { - constructor(); - } - } -+// Module - declare namespace templa.dom.mvc.composite { - class AbstractCompositeElementController extends templa.dom.mvc.AbstractElementController { - _controllers: templa.mvc.IController[]; \ No newline at end of file + this._controllers = []; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js b/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js index 94983eb5d8..758c478bcc 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js +++ b/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js @@ -40,9 +40,9 @@ declare namespace m { } declare namespace m1 { import x = m.c; - var d: x; // emit the type as m.c + var d: x; } declare namespace m2 { export import x = m.c; - var d: x; // emit the type as x + var d: x; } diff --git a/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js.diff b/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js.diff deleted file mode 100644 index 6ae186e710..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.declFileInternalAliases.js -+++ new.declFileInternalAliases.js -@@= skipped -39, +39 lines =@@ - } - declare namespace m1 { - import x = m.c; -- var d: x; -+ var d: x; // emit the type as m.c - } - declare namespace m2 { - export import x = m.c; -- var d: x; -+ var d: x; // emit the type as x - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithAccessors.js b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithAccessors.js index a0feaea61b..2e5751c619 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithAccessors.js +++ b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithAccessors.js @@ -31,8 +31,8 @@ declare function makePoint(x: number): { b: number; x: number; }; -declare var /*4*/ point: { +declare var point: { b: number; x: number; }; -declare var /*2*/ x: number; +declare var x: number; diff --git a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithAccessors.js.diff new file mode 100644 index 0000000000..3969a9f463 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithAccessors.js.diff @@ -0,0 +1,13 @@ +--- old.declFileObjectLiteralWithAccessors.js ++++ new.declFileObjectLiteralWithAccessors.js +@@= skipped -30, +30 lines =@@ + b: number; + x: number; + }; +-declare var /*4*/ point: { ++declare var point: { + b: number; + x: number; + }; +-declare var /*2*/ x: number; ++declare var x: number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlyGetter.js b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlyGetter.js index 379fd73856..d8972bd690 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlyGetter.js +++ b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlyGetter.js @@ -25,7 +25,7 @@ var /*2*/ x = point. /*3*/x; declare function makePoint(x: number): { readonly x: number; }; -declare var /*4*/ point: { +declare var point: { readonly x: number; }; -declare var /*2*/ x: number; +declare var x: number; diff --git a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlyGetter.js.diff b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlyGetter.js.diff new file mode 100644 index 0000000000..fbff5dd83f --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlyGetter.js.diff @@ -0,0 +1,12 @@ +--- old.declFileObjectLiteralWithOnlyGetter.js ++++ new.declFileObjectLiteralWithOnlyGetter.js +@@= skipped -24, +24 lines =@@ + declare function makePoint(x: number): { + readonly x: number; + }; +-declare var /*4*/ point: { ++declare var point: { + readonly x: number; + }; +-declare var /*2*/ x: number; ++declare var x: number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlySetter.js b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlySetter.js index aa5d6bfa3e..f5640a1a20 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlySetter.js +++ b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlySetter.js @@ -27,7 +27,7 @@ declare function makePoint(x: number): { b: number; x: number; }; -declare var /*3*/ point: { +declare var point: { b: number; x: number; }; diff --git a/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlySetter.js.diff b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlySetter.js.diff new file mode 100644 index 0000000000..611eda4e6b --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/declFileObjectLiteralWithOnlySetter.js.diff @@ -0,0 +1,11 @@ +--- old.declFileObjectLiteralWithOnlySetter.js ++++ new.declFileObjectLiteralWithOnlySetter.js +@@= skipped -26, +26 lines =@@ + b: number; + x: number; + }; +-declare var /*3*/ point: { ++declare var point: { + b: number; + x: number; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js b/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js index 41c61bd248..faaf025a56 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js +++ b/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js @@ -14,8 +14,6 @@ var n = { w: null, x: '', y: () => { }, z: 32 }; //// [declFileRegressionTests.d.ts] -// 'null' not converted to 'any' in d.ts -// function types not piped through correctly declare var n: { w: any; x: string; diff --git a/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js.diff b/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js.diff deleted file mode 100644 index 8904cd8559..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.declFileRegressionTests.js -+++ new.declFileRegressionTests.js -@@= skipped -13, +13 lines =@@ - - - //// [declFileRegressionTests.d.ts] -+// 'null' not converted to 'any' in d.ts -+// function types not piped through correctly - declare var n: { - w: any; - x: string; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js index c80b42b8eb..98c48c1020 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js @@ -114,18 +114,13 @@ declare namespace m { } declare class g { } -// Just the name declare function foo(): c[]; declare function foo2(): c[]; -// Qualified name declare function foo3(): m.c[]; declare function foo4(): typeof m.c; -// Just the name with type arguments declare function foo5(): g[]; declare function foo6(): g[]; -// Qualified name with type arguments declare function foo7(): m.g[]; declare function foo8(): m.g[]; -// Array of function types declare function foo9(): (() => c)[]; declare function foo10(): (() => c)[]; diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js.diff deleted file mode 100644 index 591b91a171..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.declFileTypeAnnotationArrayType.js -+++ new.declFileTypeAnnotationArrayType.js -@@= skipped -113, +113 lines =@@ - } - declare class g { - } -+// Just the name - declare function foo(): c[]; - declare function foo2(): c[]; -+// Qualified name - declare function foo3(): m.c[]; - declare function foo4(): typeof m.c; -+// Just the name with type arguments - declare function foo5(): g[]; - declare function foo6(): g[]; -+// Qualified name with type arguments - declare function foo7(): m.g[]; - declare function foo8(): m.g[]; -+// Array of function types - declare function foo9(): (() => c)[]; - declare function foo10(): (() => c)[]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationBuiltInType.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationBuiltInType.js index a8c0b2730d..f81cd5bd69 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationBuiltInType.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationBuiltInType.js @@ -80,18 +80,13 @@ function foo10() { //// [declFileTypeAnnotationBuiltInType.d.ts] -// string declare function foo(): string; declare function foo2(): string; -// number declare function foo3(): number; declare function foo4(): number; -// boolean declare function foo5(): boolean; declare function foo6(): boolean; -// void declare function foo7(): void; declare function foo8(): void; -// any declare function foo9(): any; declare function foo10(): any; diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationBuiltInType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationBuiltInType.js.diff deleted file mode 100644 index 4cc587df51..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationBuiltInType.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.declFileTypeAnnotationBuiltInType.js -+++ new.declFileTypeAnnotationBuiltInType.js -@@= skipped -79, +79 lines =@@ - - - //// [declFileTypeAnnotationBuiltInType.d.ts] -+// string - declare function foo(): string; - declare function foo2(): string; -+// number - declare function foo3(): number; - declare function foo4(): number; -+// boolean - declare function foo5(): boolean; - declare function foo6(): boolean; -+// void - declare function foo7(): void; - declare function foo8(): void; -+// any - declare function foo9(): any; - declare function foo10(): any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js index d95df7e200..f680c18a3f 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js @@ -51,7 +51,6 @@ declare namespace m { } declare class g { } -// Just the name declare var k: [c, m.c]; declare var l: [c, m.c]; declare var x: [g, m.g, () => c]; diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js.diff deleted file mode 100644 index 0080dfeb2e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.declFileTypeAnnotationTupleType.js -+++ new.declFileTypeAnnotationTupleType.js -@@= skipped -50, +50 lines =@@ - } - declare class g { - } -+// Just the name - declare var k: [c, m.c]; - declare var l: [c, m.c]; - declare var x: [g, m.g, () => c]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js index beab88714a..b4cc74a3cb 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js @@ -68,25 +68,17 @@ declare namespace m { class c { } } -// Object literal with everything declare var x: { - // Call signatures (a: number): c; (a: string): g; - // Construct signatures new (a: number): c; new (a: string): m.c; - // Indexers [n: number]: c; [n: string]: c; - // Properties a: c; b: g; - // methods m1(): g; m2(a: string, b?: number, ...c: c[]): string; }; -// Function type declare var y: (a: string) => string; -// constructor type declare var z: new (a: string) => m.c; diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js.diff deleted file mode 100644 index 3d00c7b3bb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- old.declFileTypeAnnotationTypeLiteral.js -+++ new.declFileTypeAnnotationTypeLiteral.js -@@= skipped -67, +67 lines =@@ - class c { - } - } -+// Object literal with everything - declare var x: { -+ // Call signatures - (a: number): c; - (a: string): g; -+ // Construct signatures - new (a: number): c; - new (a: string): m.c; -+ // Indexers - [n: number]: c; - [n: string]: c; -+ // Properties - a: c; - b: g; -+ // methods - m1(): g; - m2(a: string, b?: number, ...c: c[]): string; - }; -+// Function type - declare var y: (a: string) => string; -+// constructor type - declare var z: new (a: string) => m.c; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js index 1e52be68fb..0cc55684cf 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js @@ -99,15 +99,11 @@ declare namespace m { } declare class g { } -// Just the name declare function foo(): typeof c; declare function foo2(): typeof c; -// Qualified name declare function foo3(): typeof m.c; declare function foo4(): typeof m.c; -// Just the name with type arguments declare function foo5(): typeof g; declare function foo6(): typeof g; -// Qualified name with type arguments declare function foo7(): typeof m.g; declare function foo8(): typeof m.g; diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js.diff deleted file mode 100644 index 21e11db8be..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.declFileTypeAnnotationTypeQuery.js -+++ new.declFileTypeAnnotationTypeQuery.js -@@= skipped -98, +98 lines =@@ - } - declare class g { - } -+// Just the name - declare function foo(): typeof c; - declare function foo2(): typeof c; -+// Qualified name - declare function foo3(): typeof m.c; - declare function foo4(): typeof m.c; -+// Just the name with type arguments - declare function foo5(): typeof g; - declare function foo6(): typeof g; -+// Qualified name with type arguments - declare function foo7(): typeof m.g; - declare function foo8(): typeof m.g; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js index 46844af6f3..7c3c084efc 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js @@ -99,15 +99,11 @@ declare namespace m { } declare class g { } -// Just the name declare function foo(): c; declare function foo2(): c; -// Qualified name declare function foo3(): m.c; declare function foo4(): m.c; -// Just the name with type arguments declare function foo5(): g; declare function foo6(): g; -// Qualified name with type arguments declare function foo7(): m.g; declare function foo8(): m.g; diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js.diff deleted file mode 100644 index 6889f13a07..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.declFileTypeAnnotationTypeReference.js -+++ new.declFileTypeAnnotationTypeReference.js -@@= skipped -98, +98 lines =@@ - } - declare class g { - } -+// Just the name - declare function foo(): c; - declare function foo2(): c; -+// Qualified name - declare function foo3(): m.c; - declare function foo4(): m.c; -+// Just the name with type arguments - declare function foo5(): g; - declare function foo6(): g; -+// Qualified name with type arguments - declare function foo7(): m.g; - declare function foo8(): m.g; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js index 9863a9d89a..3878a65083 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js @@ -63,7 +63,6 @@ declare namespace m { declare class g { private s; } -// Just the name declare var k: c | m.c; declare var l: c | m.c; declare var x: g | m.g | (() => c); diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js.diff index 93c2fbcd18..68f1148df7 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js.diff @@ -21,12 +21,4 @@ + s; } // Just the name - var k = new c() || new m.c(); -@@= skipped -34, +38 lines =@@ - declare class g { - private s; - } -+// Just the name - declare var k: c | m.c; - declare var l: c | m.c; - declare var x: g | m.g | (() => c); \ No newline at end of file + var k = new c() || new m.c(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js index ae2c5c96fe..afbb2ea8b8 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js @@ -201,40 +201,25 @@ declare namespace m { } } export class c { - // getter with annotation get foo1(): private1; - // getter without annotation get foo2(): private1; - // setter with annotation set foo3(param: private1); - // Both - getter without annotation, setter with annotation get foo4(): private1; set foo4(param: private1); - // Both - with annotation get foo5(): private1; set foo5(param: private1); - // getter with annotation get foo11(): public1; - // getter without annotation get foo12(): public1; - // setter with annotation set foo13(param: public1); - // Both - getter without annotation, setter with annotation get foo14(): public1; set foo14(param: public1); - // Both - with annotation get foo15(): public1; set foo15(param: public1); - // getter with annotation get foo111(): m2.public2; - // getter without annotation get foo112(): m2.public2; - // setter with annotation set foo113(param: m2.public2); - // Both - getter without annotation, setter with annotation get foo114(): m2.public2; set foo114(param: m2.public2); - // Both - with annotation get foo115(): m2.public2; set foo115(param: m2.public2); } diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js.diff deleted file mode 100644 index 4a1c92754b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js.diff +++ /dev/null @@ -1,43 +0,0 @@ ---- old.declFileTypeAnnotationVisibilityErrorAccessors.js -+++ new.declFileTypeAnnotationVisibilityErrorAccessors.js -@@= skipped -200, +200 lines =@@ - } - } - export class c { -+ // getter with annotation - get foo1(): private1; -+ // getter without annotation - get foo2(): private1; -+ // setter with annotation - set foo3(param: private1); -+ // Both - getter without annotation, setter with annotation - get foo4(): private1; - set foo4(param: private1); -+ // Both - with annotation - get foo5(): private1; - set foo5(param: private1); -+ // getter with annotation - get foo11(): public1; -+ // getter without annotation - get foo12(): public1; -+ // setter with annotation - set foo13(param: public1); -+ // Both - getter without annotation, setter with annotation - get foo14(): public1; - set foo14(param: public1); -+ // Both - with annotation - get foo15(): public1; - set foo15(param: public1); -+ // getter with annotation - get foo111(): m2.public2; -+ // getter without annotation - get foo112(): m2.public2; -+ // setter with annotation - set foo113(param: m2.public2); -+ // Both - getter without annotation, setter with annotation - get foo114(): m2.public2; - set foo114(param: m2.public2); -+ // Both - with annotation - get foo115(): m2.public2; - set foo115(param: m2.public2); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js index 2ce1490a30..8db4cacf8c 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js @@ -85,7 +85,7 @@ declare namespace M { export namespace N { class Window { } - var p: W; // Should report error that W is private + var p: W; } export {}; } @@ -94,7 +94,7 @@ declare namespace M1 { namespace N { class Window { } - var p: W; // No error + var p: W; } } declare namespace M2 { @@ -106,8 +106,8 @@ declare namespace M2 { class public1 { } } - export type t2 = private1; // error + export type t2 = private1; export type t12 = public1; - export type t112 = m3.public1; // error + export type t112 = m3.public1; export {}; } diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js.diff deleted file mode 100644 index 2b2bc3ea7f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.declFileTypeAnnotationVisibilityErrorTypeAlias.js -+++ new.declFileTypeAnnotationVisibilityErrorTypeAlias.js -@@= skipped -84, +84 lines =@@ - export namespace N { - class Window { - } -- var p: W; -+ var p: W; // Should report error that W is private - } - export {}; - } -@@= skipped -9, +9 lines =@@ - namespace N { - class Window { - } -- var p: W; -+ var p: W; // No error - } - } - declare namespace M2 { -@@= skipped -12, +12 lines =@@ - class public1 { - } - } -- export type t2 = private1; -+ export type t2 = private1; // error - export type t12 = public1; -- export type t112 = m3.public1; -+ export type t112 = m3.public1; // error - export {}; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js index 0a366cdee4..5ca559de83 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js +++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js @@ -88,10 +88,8 @@ declare namespace m { y: m2.public1; method(): private1; }; - // Function type export var y: (a: private1) => m2.public1; export var y2: (a: private1) => m2.public1; - // constructor type export var z: new (a: private1) => m2.public1; export var z2: new (a: private1) => m2.public1; export {}; diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js.diff deleted file mode 100644 index 62702874b8..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.declFileTypeAnnotationVisibilityErrorTypeLiteral.js -+++ new.declFileTypeAnnotationVisibilityErrorTypeLiteral.js -@@= skipped -87, +87 lines =@@ - y: m2.public1; - method(): private1; - }; -+ // Function type - export var y: (a: private1) => m2.public1; - export var y2: (a: private1) => m2.public1; -+ // constructor type - export var z: new (a: private1) => m2.public1; - export var z2: new (a: private1) => m2.public1; - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declFileWithErrorsInInputDeclarationFile.js b/testdata/baselines/reference/submodule/compiler/declFileWithErrorsInInputDeclarationFile.js index b19f2e5156..14dd0f1313 100644 --- a/testdata/baselines/reference/submodule/compiler/declFileWithErrorsInInputDeclarationFile.js +++ b/testdata/baselines/reference/submodule/compiler/declFileWithErrorsInInputDeclarationFile.js @@ -22,4 +22,4 @@ var x = new M.C(); // Declaration file wont get emitted because there are errors //// [client.d.ts] /// -declare var x: M.C; // Declaration file wont get emitted because there are errors in declaration file +declare var x: M.C; diff --git a/testdata/baselines/reference/submodule/compiler/declFileWithErrorsInInputDeclarationFile.js.diff b/testdata/baselines/reference/submodule/compiler/declFileWithErrorsInInputDeclarationFile.js.diff deleted file mode 100644 index 74004879bb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declFileWithErrorsInInputDeclarationFile.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.declFileWithErrorsInInputDeclarationFile.js -+++ new.declFileWithErrorsInInputDeclarationFile.js -@@= skipped -21, +21 lines =@@ - - //// [client.d.ts] - /// --declare var x: M.C; -+declare var x: M.C; // Declaration file wont get emitted because there are errors in declaration file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declInput-2.js b/testdata/baselines/reference/submodule/compiler/declInput-2.js index 6980a78e89..a8b42eeaf0 100644 --- a/testdata/baselines/reference/submodule/compiler/declInput-2.js +++ b/testdata/baselines/reference/submodule/compiler/declInput-2.js @@ -61,16 +61,16 @@ declare namespace M { interface I2 { } export class D { - private c; // don't generate + private c; m1: number; m2: string; - m22: C; // don't generate + m22: C; m23: E; m24: I1; - m25: I2; // don't generate + m25: I2; m232(): E; m242(): I1; - m252(): I2; // don't generate + m252(): I2; m26(i: I1): void; m262(i: I2): void; m3(): C; diff --git a/testdata/baselines/reference/submodule/compiler/declInput-2.js.diff b/testdata/baselines/reference/submodule/compiler/declInput-2.js.diff index 0c34c22e3f..d654e9f0a7 100644 --- a/testdata/baselines/reference/submodule/compiler/declInput-2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declInput-2.js.diff @@ -13,25 +13,4 @@ + m25; // don't generate m232() { return null; } m242() { return null; } - m252() { return null; } // don't generate -@@= skipped -22, +29 lines =@@ - interface I2 { - } - export class D { -- private c; -+ private c; // don't generate - m1: number; - m2: string; -- m22: C; -+ m22: C; // don't generate - m23: E; - m24: I1; -- m25: I2; -+ m25: I2; // don't generate - m232(): E; - m242(): I1; -- m252(): I2; -+ m252(): I2; // don't generate - m26(i: I1): void; - m262(i: I2): void; - m3(): C; \ No newline at end of file + m252() { return null; } // don't generate \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsFunctionExpr.js b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsFunctionExpr.js index 0337d95f28..84245e79bf 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsFunctionExpr.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsFunctionExpr.js @@ -33,15 +33,11 @@ const shadowedVariable = ({ value: alias }) => value; type Named = { name: string; }; -// Tempting to remove alias if unused declare let notReferenced: ({ name: alias }: Named) => void; -// Resons we can't remove aliases that are not used in the function signature: -// 1.Causes duplicate identifier if we remove alias declare const duplicateIndetifiers: ({ name: alias, name: alias2 }: Named) => void; declare const duplicateIndetifiers2: (name: string, { name: alias }: Named) => void; declare const duplicateIndetifiers3: ({ name: alias }: Named, { name: alias2 }: Named) => void; declare let value: string; -// 2.Can change in meaning for typeof value if we remove alias declare const shadowedVariable: ({ value: alias }: { value: string; }) => string; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsFunctionExpr.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsFunctionExpr.js.diff index 7503231e56..3cc7f094ab 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsFunctionExpr.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsFunctionExpr.js.diff @@ -1,18 +1,7 @@ --- old.declarationEmitBindingPatternsFunctionExpr.js +++ new.declarationEmitBindingPatternsFunctionExpr.js -@@= skipped -32, +32 lines =@@ - type Named = { - name: string; - }; -+// Tempting to remove alias if unused - declare let notReferenced: ({ name: alias }: Named) => void; -+// Resons we can't remove aliases that are not used in the function signature: -+// 1.Causes duplicate identifier if we remove alias - declare const duplicateIndetifiers: ({ name: alias, name: alias2 }: Named) => void; - declare const duplicateIndetifiers2: (name: string, { name: alias }: Named) => void; - declare const duplicateIndetifiers3: ({ name: alias }: Named, { name: alias2 }: Named) => void; +@@= skipped -39, +39 lines =@@ declare let value: string; -+// 2.Can change in meaning for typeof value if we remove alias declare const shadowedVariable: ({ value: alias }: { value: string; -}) => typeof value; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsUnused.js b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsUnused.js index ea6f07022b..df54fee1b4 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsUnused.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsUnused.js @@ -209,13 +209,10 @@ let referencedInSignartureParamTypeCtorType; type Named = { name: string; }; -// Resons we can't remove aliases that are not used in the function signature: -// 1.Causes duplicate identifier if we remove alias declare function duplicateIndetifiers({ name: alias, name: alias2 }: Named): void; declare function duplicateIndetifiers2(name: string, { name: alias }: Named): void; declare function duplicateIndetifiers3({ name: alias }: Named, { name: alias2 }: Named): void; declare let value: string; -// 2.Can change in meaning for typeof value if we remove alias declare function shadowedVariable({ value: alias }: { value: string; }): typeof value; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsUnused.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsUnused.js.diff index c3bac9e3e3..da13c0a194 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsUnused.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternsUnused.js.diff @@ -1,20 +1,6 @@ --- old.declarationEmitBindingPatternsUnused.js +++ new.declarationEmitBindingPatternsUnused.js -@@= skipped -208, +208 lines =@@ - type Named = { - name: string; - }; -+// Resons we can't remove aliases that are not used in the function signature: -+// 1.Causes duplicate identifier if we remove alias - declare function duplicateIndetifiers({ name: alias, name: alias2 }: Named): void; - declare function duplicateIndetifiers2(name: string, { name: alias }: Named): void; - declare function duplicateIndetifiers3({ name: alias }: Named, { name: alias2 }: Named): void; - declare let value: string; -+// 2.Can change in meaning for typeof value if we remove alias - declare function shadowedVariable({ value: alias }: { - value: string; - }): typeof value; -@@= skipped -18, +21 lines =@@ +@@= skipped -226, +226 lines =@@ function: string; }): typeof alias; declare function referencedInInferredType({ name: alias }: Named): { diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=false).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=false).js index 957f53367d..49f72541c0 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=false).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=false).js @@ -79,5 +79,4 @@ declare const _default: { name: string; }; export default _default; -// allows `undefined` on the input side, thanks to the initializer export declare function fnWithPartialAnnotationOnDefaultparam(x: P, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=false).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=false).js.diff index 6e0b361190..769b8995e5 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=false).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=false).js.diff @@ -63,5 +63,4 @@ + name: string; +}; export default _default; -+// allows `undefined` on the input side, thanks to the initializer export declare function fnWithPartialAnnotationOnDefaultparam(x: P, b: number): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=true).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=true).js index da49ad189a..32e96f18cb 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=true).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=true).js @@ -76,7 +76,6 @@ declare const _default: { name: string; }; export default _default; -// allows `undefined` on the input side, thanks to the initializer export declare function fnWithPartialAnnotationOnDefaultparam(x: { name: string; } | undefined, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=true).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=true).js.diff index a09997b854..2772c7e04b 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=true).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode1(strictnullchecks=true).js.diff @@ -67,7 +67,6 @@ +}; export default _default; -export declare function fnWithPartialAnnotationOnDefaultparam(x: P | undefined, b: number): void; -+// allows `undefined` on the input side, thanks to the initializer +export declare function fnWithPartialAnnotationOnDefaultparam(x: { + name: string; +} | undefined, b: number): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=false).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=false).js index 6a062f6919..14a100ffcc 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=false).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=false).js @@ -74,7 +74,6 @@ declare const _default: { name: string; }; export default _default; -// allows `undefined` on the input side, thanks to the initializer export declare function fnWithPartialAnnotationOnDefaultparam(x: {} & { name: string; }, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=false).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=false).js.diff index bbf234c6c8..46243d6de3 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=false).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=false).js.diff @@ -74,8 +74,4 @@ +declare const _default: { name: string; }; - export default _default; -+// allows `undefined` on the input side, thanks to the initializer - export declare function fnWithPartialAnnotationOnDefaultparam(x: {} & { - name: string; - }, b: number): void; \ No newline at end of file + export default _default; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=true).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=true).js index ac5e86000a..10b54412d4 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=true).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=true).js @@ -74,7 +74,6 @@ declare const _default: { name: string; }; export default _default; -// allows `undefined` on the input side, thanks to the initializer export declare function fnWithPartialAnnotationOnDefaultparam(x: { name: string; } | undefined, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=true).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=true).js.diff index b3e249e4a9..63b45e739f 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=true).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode2(strictnullchecks=true).js.diff @@ -78,7 +78,6 @@ }; export default _default; -export declare function fnWithPartialAnnotationOnDefaultparam(x: ({} & { -+// allows `undefined` on the input side, thanks to the initializer +export declare function fnWithPartialAnnotationOnDefaultparam(x: { name: string; -}) | undefined, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=false).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=false).js index 7273fc0707..0646bb0b3b 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=false).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=false).js @@ -79,5 +79,4 @@ declare const _default: { name: string; }; export default _default; -// allows `undefined` on the input side, thanks to the initializer export declare function fnWithPartialAnnotationOnDefaultparam(x: P, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=false).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=false).js.diff index e313ad7a37..6d9d8729a7 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=false).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=false).js.diff @@ -63,5 +63,4 @@ + name: string; +}; export default _default; -+// allows `undefined` on the input side, thanks to the initializer export declare function fnWithPartialAnnotationOnDefaultparam(x: P, b: number): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=true).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=true).js index 2064815c40..a40d5cf44d 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=true).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=true).js @@ -76,7 +76,6 @@ declare const _default: { name: string; }; export default _default; -// allows `undefined` on the input side, thanks to the initializer export declare function fnWithPartialAnnotationOnDefaultparam(x: { name: string; } | undefined, b: number): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=true).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=true).js.diff index ef89503559..98135ca3d3 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=true).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode3(strictnullchecks=true).js.diff @@ -67,7 +67,6 @@ +}; export default _default; -export declare function fnWithPartialAnnotationOnDefaultparam(x: P | undefined, b: number): void; -+// allows `undefined` on the input side, thanks to the initializer +export declare function fnWithPartialAnnotationOnDefaultparam(x: { + name: string; +} | undefined, b: number): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js index 1e4f4486b1..f731d32e3b 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js @@ -64,7 +64,7 @@ export declare class C { }; /** @optional */ optField: { name?: string; - }; // not a thing + }; /** @readonly */ readonly roFiled: { name?: string; }; @@ -89,7 +89,6 @@ declare const _default: { name?: string; }; export default /** @type {P} */ _default; -// allows `undefined` on the input side, thanks to the initializer /** * * @param {P} x diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js.diff index f3a0058677..3ce20e95ee 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=false).js.diff @@ -28,7 +28,7 @@ + }; + /** @optional */ optField: { + name?: string; -+ }; // not a thing ++ }; + /** @readonly */ readonly roFiled: { + name?: string; + }; @@ -53,7 +53,6 @@ + name?: string; +}; +export default /** @type {P} */ _default; -+// allows `undefined` on the input side, thanks to the initializer /** * * @param {P} x diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js index 2c541d1a1e..9e50d3792c 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js @@ -64,7 +64,7 @@ export declare class C { }; /** @optional */ optField: { name?: string | undefined; - }; // not a thing + }; /** @readonly */ readonly roFiled: { name?: string | undefined; }; @@ -89,7 +89,6 @@ declare const _default: { name?: string | undefined; }; export default /** @type {P} */ _default; -// allows `undefined` on the input side, thanks to the initializer /** * * @param {P} x diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js.diff index d23c7499ea..ae201f753b 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode4(strictnullchecks=true).js.diff @@ -28,7 +28,7 @@ + }; + /** @optional */ optField: { + name?: string | undefined; -+ }; // not a thing ++ }; + /** @readonly */ readonly roFiled: { + name?: string | undefined; + }; @@ -53,7 +53,6 @@ + name?: string | undefined; +}; +export default /** @type {P} */ _default; -+// allows `undefined` on the input side, thanks to the initializer /** * * @param {P} x diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=false).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=false).js index 84d0d948ec..12ad63498a 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=false).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=false).js @@ -35,12 +35,8 @@ type R = { foo: string; }; export declare class C { - // under !strictNullChecks all types can be reused from the assertion - // under strictNullChecks we need to add undefined, and we can't always know we can - // Can't know if references contain undefined, fall back to inference tsResolve?: R; tsResolve2?: string | R; - // Simple type. we can add undefined reuseType?: string | ((p: R) => void); reuseType2?: string | (new (p: R) => R); reuseType3?: any; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=false).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=false).js.diff index 19fbe3299d..940a074d1c 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=false).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=false).js.diff @@ -25,12 +25,8 @@ - reuseType7?: `A` | `A`; - reuseType8?: `${string}-ok` | `${string}-ok`; - reuseType9?: this | this; -+ // under !strictNullChecks all types can be reused from the assertion -+ // under strictNullChecks we need to add undefined, and we can't always know we can -+ // Can't know if references contain undefined, fall back to inference + tsResolve?: R; + tsResolve2?: string | R; -+ // Simple type. we can add undefined + reuseType?: string | ((p: R) => void); + reuseType2?: string | (new (p: R) => R); + reuseType3?: any; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=true).js b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=true).js index febd2b3841..a7d8957885 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=true).js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=true).js @@ -35,12 +35,8 @@ type R = { foo: string; }; export declare class C { - // under !strictNullChecks all types can be reused from the assertion - // under strictNullChecks we need to add undefined, and we can't always know we can - // Can't know if references contain undefined, fall back to inference tsResolve?: R | undefined; tsResolve2?: string | R | undefined; - // Simple type. we can add undefined reuseType?: string | ((p: R) => void) | undefined; reuseType2?: string | (new (p: R) => R) | undefined; reuseType3?: any; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=true).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=true).js.diff index 91670fae79..a2b19bdc1f 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=true).js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitCastReusesTypeNode5(strictnullchecks=true).js.diff @@ -25,12 +25,8 @@ - reuseType7?: `A` | `A`; - reuseType8?: `${string}-ok` | `${string}-ok`; - reuseType9?: this | this; -+ // under !strictNullChecks all types can be reused from the assertion -+ // under strictNullChecks we need to add undefined, and we can't always know we can -+ // Can't know if references contain undefined, fall back to inference + tsResolve?: R | undefined; + tsResolve2?: string | R | undefined; -+ // Simple type. we can add undefined + reuseType?: string | ((p: R) => void) | undefined; + reuseType2?: string | (new (p: R) => R) | undefined; + reuseType3?: any; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js b/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js index 4d7dddc9e5..ec6beac4dd 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js @@ -22,7 +22,6 @@ export class VFile { //// [index.d.ts] -// https://github.com/microsoft/TypeScript/issues/58167 export declare class VFile { /** * @returns {string} diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js.diff index cdaba99bfd..d57f3704f6 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassAccessorsJs1.js.diff @@ -9,7 +9,6 @@ - * @param {URL | string} path - */ - set path(path: URL | string); -+// https://github.com/microsoft/TypeScript/issues/58167 +export declare class VFile { /** * @returns {string} diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js index c74d129b8a..50fec95a2f 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js @@ -77,18 +77,18 @@ exports.C4 = C4; //// [declarationEmitClassMemberNameConflict.d.ts] export declare class C1 { - C1(): void; // has to be the same as the class name + C1(): void; bar(): (t: typeof C1) => void; } export declare class C2 { - C2: any; // has to be the same as the class name + C2: any; bar(): (t: typeof C2) => void; } export declare class C3 { - get C3(): number; // has to be the same as the class name + get C3(): number; bar(): (t: typeof C3) => void; } export declare class C4 { - set C4(v: any); // has to be the same as the class name + set C4(v: any); bar(): (t: typeof C4) => void; } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js.diff index 9e2cee3c0a..49ed2c0ba7 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js.diff @@ -7,27 +7,4 @@ + C2; // has to be the same as the class name bar() { return function (t) { - }; -@@= skipped -26, +27 lines =@@ - - //// [declarationEmitClassMemberNameConflict.d.ts] - export declare class C1 { -- C1(): void; -+ C1(): void; // has to be the same as the class name - bar(): (t: typeof C1) => void; - } - export declare class C2 { -- C2: any; -+ C2: any; // has to be the same as the class name - bar(): (t: typeof C2) => void; - } - export declare class C3 { -- get C3(): number; -+ get C3(): number; // has to be the same as the class name - bar(): (t: typeof C3) => void; - } - export declare class C4 { -- set C4(v: any); -+ set C4(v: any); // has to be the same as the class name - bar(): (t: typeof C4) => void; - } \ No newline at end of file + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js index 4e7c601350..18c3b0929b 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js @@ -51,10 +51,7 @@ declare enum Hello1 { World1 = 0 } declare class Foo { - // Same names + string => OK Bar: string; - // Same names + enum => OK Hello: typeof Hello; - // Different names + enum => OK Hello2: typeof Hello1; } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js.diff index f6b9e10626..ad64fad17e 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js.diff @@ -20,15 +20,3 @@ + Hello2 = Hello1; } - -@@= skipped -20, +18 lines =@@ - World1 = 0 - } - declare class Foo { -+ // Same names + string => OK - Bar: string; -+ // Same names + enum => OK - Hello: typeof Hello; -+ // Different names + enum => OK - Hello2: typeof Hello1; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js index 7ee4b84e7e..28ded45ac7 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js @@ -16,7 +16,6 @@ export class Foo { //// [foo.d.ts] -// https://github.com/microsoft/TypeScript/issues/55391 export declare class Foo { /** * Bar. diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js.diff index 1fadaf7c83..45825e9d86 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassSetAccessorParamNameInJs.js.diff @@ -5,7 +5,6 @@ //// [foo.d.ts] -export class Foo { -+// https://github.com/microsoft/TypeScript/issues/55391 +export declare class Foo { /** * Bar. diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js b/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js index 004b6d6432..322a5aee9e 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js @@ -20,5 +20,5 @@ exports.Bar = Bar; //// [declarationEmitConstantNoWidening.d.ts] export declare const FOO = "FOO"; export declare class Bar { - readonly type: string; // Should be widening literal "FOO" - so either `typeof "FOO"` or = "FOO" + readonly type: string; } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js.diff index 75b30bdff7..d1cae2cb33 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js.diff @@ -16,5 +16,5 @@ export declare const FOO = "FOO"; export declare class Bar { - readonly type = "FOO"; -+ readonly type: string; // Should be widening literal "FOO" - so either `typeof "FOO"` or = "FOO" ++ readonly type: string; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js index 4ad36a7c1c..6f4961b2a0 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js @@ -25,9 +25,6 @@ function baz4({} = { x: 10 }) { } //// [declarationEmitDestructuring4.d.ts] -// For an array binding pattern with empty elements, -// we will not make any modification and will emit -// the similar binding pattern users' have written declare function baz([]: any[]): void; declare function baz1([]?: number[]): void; declare function baz2([[]]?: [number[]]): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js.diff deleted file mode 100644 index 85c5e3a8c7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.declarationEmitDestructuring4.js -+++ new.declarationEmitDestructuring4.js -@@= skipped -24, +24 lines =@@ - - - //// [declarationEmitDestructuring4.d.ts] -+// For an array binding pattern with empty elements, -+// we will not make any modification and will emit -+// the similar binding pattern users' have written - declare function baz([]: any[]): void; - declare function baz1([]?: number[]): void; - declare function baz2([[]]?: [number[]]): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js index 991cf6dbf5..024a6dba0e 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js @@ -21,9 +21,9 @@ var [x3, y3, z3] = a; // emit x3, y3, z3 //// [declarationEmitDestructuringArrayPattern1.d.ts] -declare var x: number; // emit x: number -declare var x1: number, y1: string; // emit x1: number, y1: string -declare var z1: number; // emit z1: number +declare var x: number; +declare var x1: number, y1: string; +declare var z1: number; declare var a: (string | number)[]; -declare var x2: string | number; // emit x2: number | string -declare var x3: string | number, y3: string | number, z3: string | number; // emit x3, y3, z3 +declare var x2: string | number; +declare var x3: string | number, y3: string | number, z3: string | number; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js.diff deleted file mode 100644 index 82b0c230e3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.declarationEmitDestructuringArrayPattern1.js -+++ new.declarationEmitDestructuringArrayPattern1.js -@@= skipped -20, +20 lines =@@ - - - //// [declarationEmitDestructuringArrayPattern1.d.ts] --declare var x: number; --declare var x1: number, y1: string; --declare var z1: number; -+declare var x: number; // emit x: number -+declare var x1: number, y1: string; // emit x1: number, y1: string -+declare var z1: number; // emit z1: number - declare var a: (string | number)[]; --declare var x2: string | number; --declare var x3: string | number, y3: string | number, z3: string | number; -+declare var x2: string | number; // emit x2: number | string -+declare var x3: string | number, y3: string | number, z3: string | number; // emit x3, y3, z3 \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js b/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js index a2e3f5e1e1..b9b0406166 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js @@ -62,14 +62,12 @@ class Hola { declare class Hello { } //// [test2.d.ts] -/* A comment at the top of the file. */ /** * Hi class */ declare class Hi { } //// [test3.d.ts] -// A one-line comment at the top of the file. /** * Hola class */ diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js.diff deleted file mode 100644 index 2f6a3385f6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.declarationEmitDetachedComment1.js -+++ new.declarationEmitDetachedComment1.js -@@= skipped -61, +61 lines =@@ - declare class Hello { - } - //// [test2.d.ts] -+/* A comment at the top of the file. */ - /** - * Hi class - */ - declare class Hi { - } - //// [test3.d.ts] -+// A one-line comment at the top of the file. - /** - * Hola class - */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js b/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js index 2bd0a0a592..1fa315c015 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js @@ -17,5 +17,4 @@ exports.fun = fun; //// [declarationEmitDistributiveConditionalWithInfer.d.ts] -// This function's type is changed on declaration export declare const fun: (subFun: () => (Collection[Field] extends infer T ? T extends Collection[Field] ? T extends readonly (infer InnerArr)[] ? InnerArr : T : never : never)[]) => void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js.diff index d4149d87a3..62dde4562b 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js.diff @@ -5,5 +5,4 @@ //// [declarationEmitDistributiveConditionalWithInfer.d.ts] -export declare const fun: (subFun: () => FlatArray[]) => void; -+// This function's type is changed on declaration +export declare const fun: (subFun: () => (Collection[Field] extends infer T ? T extends Collection[Field] ? T extends readonly (infer InnerArr)[] ? InnerArr : T : never : never)[]) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js b/testdata/baselines/reference/submodule/compiler/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js index 8769a79fa0..2d15052e32 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js @@ -78,8 +78,6 @@ __exportStar(require("@emotion/core"), exports); import { Component } from 'react'; export declare function getComp(): Component; //// [inferred-comp-export.d.ts] -// this shouldn't need any triple-slash references - it should have a direct import to `react` and that's it -// This issue (#35343) _only_ reproduces in the test harness when the file in question is in a subfolder export declare const obj: { comp: import("react").Component; }; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js.diff index 8b819774e7..5dc38271c6 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js.diff @@ -8,13 +8,4 @@ +const get_comp_1 = require("./get-comp"); // this shouldn't need any triple-slash references - it should have a direct import to `react` and that's it // This issue (#35343) _only_ reproduces in the test harness when the file in question is in a subfolder - exports.obj = { -@@= skipped -30, +30 lines =@@ - import { Component } from 'react'; - export declare function getComp(): Component; - //// [inferred-comp-export.d.ts] -+// this shouldn't need any triple-slash references - it should have a direct import to `react` and that's it -+// This issue (#35343) _only_ reproduces in the test harness when the file in question is in a subfolder - export declare const obj: { - comp: import("react").Component; - }; \ No newline at end of file + exports.obj = { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitFBoundedTypeParams.js b/testdata/baselines/reference/submodule/compiler/declarationEmitFBoundedTypeParams.js index 850cb6781c..e11747d6f4 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitFBoundedTypeParams.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitFBoundedTypeParams.js @@ -18,5 +18,4 @@ function append(result, value) { //// [declarationEmitFBoundedTypeParams.d.ts] -// Repro from #6040 declare function append(result: a[], value: b): a[]; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitFBoundedTypeParams.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitFBoundedTypeParams.js.diff deleted file mode 100644 index f8fcabc095..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitFBoundedTypeParams.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.declarationEmitFBoundedTypeParams.js -+++ new.declarationEmitFBoundedTypeParams.js -@@= skipped -17, +17 lines =@@ - - - //// [declarationEmitFBoundedTypeParams.d.ts] -+// Repro from #6040 - declare function append(result: a[], value: b): a[]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitFirstTypeArgumentGenericFunctionType.js b/testdata/baselines/reference/submodule/compiler/declarationEmitFirstTypeArgumentGenericFunctionType.js index d40c6181b6..1f6eee98c7 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitFirstTypeArgumentGenericFunctionType.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitFirstTypeArgumentGenericFunctionType.js @@ -53,15 +53,15 @@ var prop4; // parenthesized first type argument //// [declarationEmitFirstTypeArgumentGenericFunctionType.d.ts] declare class X { } -declare var prop11: X<() => Tany>; // spaces before the first type argument -declare var prop12: X<(() => Tany)>; // spaces before the first type argument +declare var prop11: X<() => Tany>; +declare var prop12: X<(() => Tany)>; declare function f1(): X<() => Tany>; declare function f2(): X<() => Tany>; declare function f3(): X<() => Tany>; declare function f4(): X<(() => Tany)>; declare class Y { } -declare var prop2: Y() => Tany>; // No space after second type argument -declare var prop2: Y() => Tany>; // space after second type argument -declare var prop3: Y<() => Tany, () => Tany>; // space before first type argument -declare var prop4: Y<(() => Tany), () => Tany>; // parenthesized first type argument +declare var prop2: Y() => Tany>; +declare var prop2: Y() => Tany>; +declare var prop3: Y<() => Tany, () => Tany>; +declare var prop4: Y<(() => Tany), () => Tany>; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitFirstTypeArgumentGenericFunctionType.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitFirstTypeArgumentGenericFunctionType.js.diff index ddbaa4b83e..ec1bf6aac3 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitFirstTypeArgumentGenericFunctionType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitFirstTypeArgumentGenericFunctionType.js.diff @@ -5,23 +5,19 @@ declare class X { } -declare var prop11: X<(() => Tany)>; --declare var prop12: X<(() => Tany)>; ++declare var prop11: X<() => Tany>; + declare var prop12: X<(() => Tany)>; -declare function f1(): X<(() => Tany)>; -declare function f2(): X<(() => Tany)>; -declare function f3(): X<(() => Tany)>; -+declare var prop11: X<() => Tany>; // spaces before the first type argument -+declare var prop12: X<(() => Tany)>; // spaces before the first type argument +declare function f1(): X<() => Tany>; +declare function f2(): X<() => Tany>; +declare function f3(): X<() => Tany>; declare function f4(): X<(() => Tany)>; declare class Y { } --declare var prop2: Y() => Tany>; --declare var prop2: Y() => Tany>; + declare var prop2: Y() => Tany>; + declare var prop2: Y() => Tany>; -declare var prop3: Y<(() => Tany), () => Tany>; --declare var prop4: Y<(() => Tany), () => Tany>; -+declare var prop2: Y() => Tany>; // No space after second type argument -+declare var prop2: Y() => Tany>; // space after second type argument -+declare var prop3: Y<() => Tany, () => Tany>; // space before first type argument -+declare var prop4: Y<(() => Tany), () => Tany>; // parenthesized first type argument \ No newline at end of file ++declare var prop3: Y<() => Tany, () => Tany>; + declare var prop4: Y<(() => Tany), () => Tany>; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js b/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js index d7e5da76e4..3c6825e7be 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js @@ -39,7 +39,7 @@ function child1(prototype) { //// [parent.d.ts] -import './child1'; // this import should still exist in some form in the output, since it augments this module +import './child1'; export declare class ParentThing implements ParentThing { } //// [child1.d.ts] diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js.diff index 8558457051..b76d77ddb0 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js.diff @@ -8,13 +8,4 @@ +const child1_1 = require("./child1"); // this import should still exist in some form in the output, since it augments this module class ParentThing { } - exports.ParentThing = ParentThing; -@@= skipped -15, +15 lines =@@ - - - //// [parent.d.ts] --import './child1'; -+import './child1'; // this import should still exist in some form in the output, since it augments this module - export declare class ParentThing implements ParentThing { - } - //// [child1.d.ts] \ No newline at end of file + exports.ParentThing = ParentThing; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitGlobalThisPreserved.js b/testdata/baselines/reference/submodule/compiler/declarationEmitGlobalThisPreserved.js index 8a8ab0d5f7..0d3f70f44c 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitGlobalThisPreserved.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitGlobalThisPreserved.js @@ -111,13 +111,6 @@ export type AsFunctionType = (isNaN: typeof globalThis.isNaN) => typeof globalTh //// [declarationEmitGlobalThisPreserved.d.ts] -// Adding this makes tooltips fail too. -// declare global { -// namespace isNaN { -// const prop: number; -// } -// } -// Broken inference cases. export declare const a1: (isNaN: typeof globalThis.isNaN) => typeof globalThis.isNaN; export declare const a2: (isNaN: typeof globalThis.isNaN, bar?: typeof globalThis.isNaN) => typeof globalThis.isNaN; export declare const a3: (isNaN: number, bar: typeof globalThis.isNaN) => typeof globalThis.isNaN; @@ -168,7 +161,6 @@ export declare class A { export declare function fromParameter(isNaN: number, bar: typeof globalThis.isNaN): () => { bar: typeof globalThis.isNaN; }; -// Non-inference cases. export declare const explicitlyTypedVariable: (isNaN: typeof globalThis.isNaN) => typeof globalThis.isNaN; export declare function explicitlyTypedFunction(isNaN: typeof globalThis.isNaN): typeof globalThis.isNaN; export type AsObjectProperty = { diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitGlobalThisPreserved.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitGlobalThisPreserved.js.diff deleted file mode 100644 index c802084bd8..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitGlobalThisPreserved.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.declarationEmitGlobalThisPreserved.js -+++ new.declarationEmitGlobalThisPreserved.js -@@= skipped -110, +110 lines =@@ - - - //// [declarationEmitGlobalThisPreserved.d.ts] -+// Adding this makes tooltips fail too. -+// declare global { -+// namespace isNaN { -+// const prop: number; -+// } -+// } -+// Broken inference cases. - export declare const a1: (isNaN: typeof globalThis.isNaN) => typeof globalThis.isNaN; - export declare const a2: (isNaN: typeof globalThis.isNaN, bar?: typeof globalThis.isNaN) => typeof globalThis.isNaN; - export declare const a3: (isNaN: number, bar: typeof globalThis.isNaN) => typeof globalThis.isNaN; -@@= skipped -50, +57 lines =@@ - export declare function fromParameter(isNaN: number, bar: typeof globalThis.isNaN): () => { - bar: typeof globalThis.isNaN; - }; -+// Non-inference cases. - export declare const explicitlyTypedVariable: (isNaN: typeof globalThis.isNaN) => typeof globalThis.isNaN; - export declare function explicitlyTypedFunction(isNaN: typeof globalThis.isNaN): typeof globalThis.isNaN; - export type AsObjectProperty = { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js index 7d2907c7bc..76c691351c 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js @@ -26,6 +26,5 @@ exports.v = v; //// [0.d.ts] export type Data = string | boolean; //// [1.d.ts] -//let v2: Z.Data; declare let v: string | boolean; export { v }; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js.diff deleted file mode 100644 index 067a2bad3b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.declarationEmitInferredTypeAlias5.js -+++ new.declarationEmitInferredTypeAlias5.js -@@= skipped -25, +25 lines =@@ - //// [0.d.ts] - export type Data = string | boolean; - //// [1.d.ts] -+//let v2: Z.Data; - declare let v: string | boolean; - export { v }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js index 852f418b22..2fe741d288 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js @@ -14,7 +14,6 @@ exports.b = [{ foo: 0, m() { } }, { bar: 1 }]; //// [declarationEmitInferredUndefinedPropFromFunctionInArray.d.ts] -// repro from https://github.com/microsoft/TypeScript/issues/53914 export declare let b: ({ foo: number; m(): void; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js.diff index 282c829556..7d4aec176a 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js.diff @@ -10,9 +10,3 @@ +// repro from https://github.com/microsoft/TypeScript/issues/53914 exports.b = [{ foo: 0, m() { } }, { bar: 1 }]; - - //// [declarationEmitInferredUndefinedPropFromFunctionInArray.d.ts] -+// repro from https://github.com/microsoft/TypeScript/issues/53914 - export declare let b: ({ - foo: number; - m(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js b/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js index 6ff014ffbb..cb3ee5ab89 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js @@ -55,4 +55,3 @@ export declare const dropPrivateProps1: (obj: Obj) => { [K in import("./int export declare const dropPrivateProps2: (obj: Obj) => { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; }; //// [test.d.ts] export {}; -//b._bar // no error, type of b._bar is string <===== NOT expected diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js.diff index 031e16f39a..d6791facc1 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js.diff @@ -17,9 +17,4 @@ +const api_1 = require("./api"); const a = (0, api_1.dropPrivateProps1)({ foo: 42, _bar: 'secret' }); // type is {foo: number} //a._bar // error: _bar does not exist <===== as expected - const b = (0, api_1.dropPrivateProps2)({ foo: 42, _bar: 'secret' }); // type is {foo: number, _bar: string} -@@= skipped -22, +22 lines =@@ - export declare const dropPrivateProps2: (obj: Obj) => { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; }; - //// [test.d.ts] - export {}; -+//b._bar // no error, type of b._bar is string <===== NOT expected \ No newline at end of file + const b = (0, api_1.dropPrivateProps2)({ foo: 42, _bar: 'secret' }); // type is {foo: number, _bar: string} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitLambdaWithMissingTypeParameterNoCrash.js b/testdata/baselines/reference/submodule/compiler/declarationEmitLambdaWithMissingTypeParameterNoCrash.js index 63abb22353..7717554923 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitLambdaWithMissingTypeParameterNoCrash.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitLambdaWithMissingTypeParameterNoCrash.js @@ -14,6 +14,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); //// [declarationEmitLambdaWithMissingTypeParameterNoCrash.d.ts] export interface Foo { - preFetch: (c: T1) => void; // Type T2 is not defined - preFetcher: new (c: T1) => void; // Type T2 is not defined + preFetch: (c: T1) => void; + preFetcher: new (c: T1) => void; } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitLambdaWithMissingTypeParameterNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitLambdaWithMissingTypeParameterNoCrash.js.diff deleted file mode 100644 index d582419fd4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitLambdaWithMissingTypeParameterNoCrash.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.declarationEmitLambdaWithMissingTypeParameterNoCrash.js -+++ new.declarationEmitLambdaWithMissingTypeParameterNoCrash.js -@@= skipped -13, +13 lines =@@ - - //// [declarationEmitLambdaWithMissingTypeParameterNoCrash.d.ts] - export interface Foo { -- preFetch: (c: T1) => void; -- preFetcher: new (c: T1) => void; -+ preFetch: (c: T1) => void; // Type T2 is not defined -+ preFetcher: new (c: T1) => void; // Type T2 is not defined - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js b/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js index 9a680f5eb1..5bc956f943 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js @@ -73,7 +73,6 @@ export declare const Mixed: { } & typeof Unmixed; declare const FilteredThing_base: (abstract new (...args: any[]) => { match(path: string): boolean; - // other concrete methods, fields, constructor thing: number; }) & typeof Unmixed; export declare class FilteredThing extends FilteredThing_base { diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js.diff index dd23dec817..54f41f7b66 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js.diff @@ -31,12 +31,4 @@ + thing = 12; } return FilterMixin; - } -@@= skipped -43, +35 lines =@@ - } & typeof Unmixed; - declare const FilteredThing_base: (abstract new (...args: any[]) => { - match(path: string): boolean; -+ // other concrete methods, fields, constructor - thing: number; - }) & typeof Unmixed; - export declare class FilteredThing extends FilteredThing_base { \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypePropertyFromNumericStringKey.js b/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypePropertyFromNumericStringKey.js index f18c67615e..cf17422ad6 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypePropertyFromNumericStringKey.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypePropertyFromNumericStringKey.js @@ -13,4 +13,4 @@ exports.f = ((arg) => arg)({ '0': 0 }); // Original prop uses string syntax //// [declarationEmitMappedTypePropertyFromNumericStringKey.d.ts] export declare const f: { "0": string | number; -}; // Original prop uses string syntax +}; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypePropertyFromNumericStringKey.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypePropertyFromNumericStringKey.js.diff index 83f33882a4..3d865db89d 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypePropertyFromNumericStringKey.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypePropertyFromNumericStringKey.js.diff @@ -5,6 +5,5 @@ //// [declarationEmitMappedTypePropertyFromNumericStringKey.d.ts] export declare const f: { - '0': string | number; --}; + "0": string | number; -+}; // Original prop uses string syntax \ No newline at end of file + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js index 8ddc7792d5..988539dae1 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js @@ -153,11 +153,11 @@ export declare namespace M.P { } } export import im = M.P.f; - var a: typeof M.f; // emitted incorrectly as typeof f - var b: typeof M.C; // ok - var c: typeof M.N; // ok - var g: typeof M.c.g; // ok - var d: typeof import("./declarationEmit_nameConflicts_1"); // emitted incorrectly as typeof im + var a: typeof M.f; + var b: typeof M.C; + var c: typeof M.N; + var g: typeof M.c.g; + var d: typeof import("./declarationEmit_nameConflicts_1"); } export declare namespace M.Q { function f(): void; @@ -169,11 +169,11 @@ export declare namespace M.Q { } } interface b extends M.b { - } // ok + } interface I extends M.c.I { - } // ok + } namespace c { interface I extends M.c.I { - } // ok + } } } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js.diff index 74a77abef8..aa67cad6dd 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js.diff @@ -27,35 +27,14 @@ (function (Q) { function f() { } Q.f = f; -@@= skipped -49, +49 lines =@@ - } - } - export import im = M.P.f; -- var a: typeof M.f; -- var b: typeof M.C; -- var c: typeof M.N; +@@= skipped -52, +52 lines =@@ + var a: typeof M.f; + var b: typeof M.C; + var c: typeof M.N; - var g: typeof M.N.g; - var d: typeof M.d; -+ var a: typeof M.f; // emitted incorrectly as typeof f -+ var b: typeof M.C; // ok -+ var c: typeof M.N; // ok -+ var g: typeof M.c.g; // ok -+ var d: typeof import("./declarationEmit_nameConflicts_1"); // emitted incorrectly as typeof im ++ var g: typeof M.c.g; ++ var d: typeof import("./declarationEmit_nameConflicts_1"); } export declare namespace M.Q { - function f(): void; -@@= skipped -16, +16 lines =@@ - } - } - interface b extends M.b { -- } -+ } // ok - interface I extends M.c.I { -- } -+ } // ok - namespace c { - interface I extends M.c.I { -- } -+ } // ok - } - } \ No newline at end of file + function f(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js index 3f54f6d7bf..b8e74b6031 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js @@ -67,8 +67,8 @@ declare namespace X.Y.base { } } declare namespace X.Y.base.Z { - var f: typeof base.f; // Should be base.f - var C: typeof base.C; // Should be base.C - var M: typeof base.M; // Should be base.M - var E: typeof base.E; // Should be base.E + var f: typeof base.f; + var C: typeof base.C; + var M: typeof base.M; + var E: typeof base.E; } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js.diff index 86975c88c3..4d68409c3e 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js.diff @@ -26,17 +26,4 @@ + let Z; (function (Z) { Z.f = X.Y.base.f; // Should be base.f - Z.C = X.Y.base.C; // Should be base.C -@@= skipped -28, +28 lines =@@ - } - } - declare namespace X.Y.base.Z { -- var f: typeof base.f; -- var C: typeof base.C; -- var M: typeof base.M; -- var E: typeof base.E; -+ var f: typeof base.f; // Should be base.f -+ var C: typeof base.C; // Should be base.C -+ var M: typeof base.M; // Should be base.M -+ var E: typeof base.E; // Should be base.E - } \ No newline at end of file + Z.C = X.Y.base.C; // Should be base.C \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js index 6d11ab22c2..d434ff7371 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js @@ -91,8 +91,8 @@ declare namespace M.P { enum D { f = 0 } - var v: M.D; // ok - var w: typeof M.D.f; // error, should be typeof M.D.f - var x: typeof M.C.f; // error, should be typeof M.C.f - var x: typeof M.C.f; // error, should be typeof M.E.f + var v: M.D; + var w: typeof M.D.f; + var x: typeof M.C.f; + var x: typeof M.C.f; } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js.diff index 18425df32e..85cffdb5db 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js.diff @@ -8,17 +8,4 @@ + let P; (function (P) { class C { - static f() { } -@@= skipped -43, +43 lines =@@ - enum D { - f = 0 - } -- var v: M.D; -- var w: typeof M.D.f; -- var x: typeof M.C.f; -- var x: typeof M.C.f; -+ var v: M.D; // ok -+ var w: typeof M.D.f; // error, should be typeof M.D.f -+ var x: typeof M.C.f; // error, should be typeof M.C.f -+ var x: typeof M.C.f; // error, should be typeof M.E.f - } \ No newline at end of file + static f() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflictsWithAlias.js b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflictsWithAlias.js index e57b6a34c6..608174fbd1 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflictsWithAlias.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflictsWithAlias.js @@ -28,5 +28,5 @@ export declare namespace M { interface I { } } - var w: v.I; // Gets emitted as C.I, which is the wrong interface + var w: v.I; } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflictsWithAlias.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflictsWithAlias.js.diff deleted file mode 100644 index 7b451253dc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflictsWithAlias.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.declarationEmitNameConflictsWithAlias.js -+++ new.declarationEmitNameConflictsWithAlias.js -@@= skipped -27, +27 lines =@@ - interface I { - } - } -- var w: v.I; -+ var w: v.I; // Gets emitted as C.I, which is the wrong interface - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse1.js b/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse1.js index e3210f1a79..55dfb44bf1 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse1.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse1.js @@ -24,7 +24,6 @@ export type Id = T; export declare const _: { foo: {}; }; -/////////// /** * huh */ diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse1.js.diff index d4b0bced66..c1b2801948 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse1.js.diff @@ -7,7 +7,5 @@ - foo: import("./id").Id<{}>; + foo: {}; }; -+/////////// /** - * huh - */ \ No newline at end of file + * huh \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse2.js b/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse2.js index 6ca4125960..46e141d13a 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse2.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse2.js @@ -24,7 +24,6 @@ export type Id = T; export declare const _: { foo: {}; }; -/////////// /** * huh */ diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse2.js.diff index ff1edbf068..b708087b26 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNoInvalidCommentReuse2.js.diff @@ -7,7 +7,5 @@ - foo: import("./id").Id<{}>; + foo: {}; }; -+/////////// /** - * huh - */ \ No newline at end of file + * huh \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessors1.js b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessors1.js index d6bd727738..0ce00d2f8f 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessors1.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessors1.js @@ -37,12 +37,10 @@ export const obj4 = { //// [declarationEmitObjectLiteralAccessors1.d.ts] -// same type accessors export declare const obj1: { /** my awesome getter (first in source order) */ x: string; }; -// divergent accessors export declare const obj2: { /** my awesome getter */ get x(): string; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessors1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessors1.js.diff deleted file mode 100644 index a6bf587188..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessors1.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.declarationEmitObjectLiteralAccessors1.js -+++ new.declarationEmitObjectLiteralAccessors1.js -@@= skipped -36, +36 lines =@@ - - - //// [declarationEmitObjectLiteralAccessors1.d.ts] -+// same type accessors - export declare const obj1: { - /** my awesome getter (first in source order) */ - x: string; - }; -+// divergent accessors - export declare const obj2: { - /** my awesome getter */ - get x(): string; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js index 72b37a745b..0e9ddb2510 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js @@ -55,7 +55,6 @@ export const obj4 = { //// [index.d.ts] -// same type accessors export declare const obj1: { /** * my awesome getter (first in source order) @@ -63,7 +62,6 @@ export declare const obj1: { */ x: string; }; -// divergent accessors export declare const obj2: { /** * my awesome getter diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js.diff index da768af639..a11d1cf2c3 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitObjectLiteralAccessorsJs1.js.diff @@ -8,7 +8,6 @@ - let x: string; -} -export const obj2: { -+// same type accessors +export declare const obj1: { + /** + * my awesome getter (first in source order) @@ -16,12 +15,11 @@ + */ + x: string; +}; -+// divergent accessors +export declare const obj2: { /** * my awesome getter * @returns {string} -@@= skipped -15, +21 lines =@@ +@@= skipped -15, +19 lines =@@ */ set x(a: number); }; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitOfFuncspace.js b/testdata/baselines/reference/submodule/compiler/declarationEmitOfFuncspace.js index 168ad92844..bfb147eff4 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitOfFuncspace.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitOfFuncspace.js @@ -18,7 +18,6 @@ function ExpandoMerge(n) { //// [expando.d.ts] -// #27032 declare function ExpandoMerge(n: number): number; declare namespace ExpandoMerge { interface I { diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitOfFuncspace.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitOfFuncspace.js.diff deleted file mode 100644 index 2d61dfd546..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitOfFuncspace.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.declarationEmitOfFuncspace.js -+++ new.declarationEmitOfFuncspace.js -@@= skipped -17, +17 lines =@@ - - - //// [expando.d.ts] -+// #27032 - declare function ExpandoMerge(n: number): number; - declare namespace ExpandoMerge { - interface I { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js index 6947597486..b8b5207032 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js @@ -24,13 +24,12 @@ function ignoreExtraVariables(ctor) { //// [file.d.ts] -declare const IGNORE_EXTRA_VARIABLES: unique symbol; //Notice how this is unexported -//This is exported +declare const IGNORE_EXTRA_VARIABLES: unique symbol; export declare function ignoreExtraVariables(ctor: CtorT): { new (...args: any[]): { - [IGNORE_EXTRA_VARIABLES]: boolean; //An unexported constant is used + [IGNORE_EXTRA_VARIABLES]: boolean; }; } & CtorT; export {}; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js.diff index 9b1641691a..52d5dbe616 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js.diff @@ -18,17 +18,3 @@ + }; } - - //// [file.d.ts] --declare const IGNORE_EXTRA_VARIABLES: unique symbol; -+declare const IGNORE_EXTRA_VARIABLES: unique symbol; //Notice how this is unexported -+//This is exported - export declare function ignoreExtraVariables(ctor: CtorT): { - new (...args: any[]): { -- [IGNORE_EXTRA_VARIABLES]: boolean; -+ [IGNORE_EXTRA_VARIABLES]: boolean; //An unexported constant is used - }; - } & CtorT; - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js b/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js index 427f265f15..9f6a28c67e 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js @@ -26,7 +26,6 @@ const obj2 = { [hundredNum]: "bar" }; //// [declarationEmitPropertyNumericStringKey.d.ts] -// https://github.com/microsoft/TypeScript/issues/55292 declare const STATUS: { readonly "404": "not found"; }; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js.diff deleted file mode 100644 index 87d8ebc484..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.declarationEmitPropertyNumericStringKey.js -+++ new.declarationEmitPropertyNumericStringKey.js -@@= skipped -25, +25 lines =@@ - - - //// [declarationEmitPropertyNumericStringKey.d.ts] -+// https://github.com/microsoft/TypeScript/issues/55292 - declare const STATUS: { - readonly "404": "not found"; - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js b/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js index e6539b0816..d7d769dcba 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js @@ -100,7 +100,6 @@ class C4 { //// [declarationEmitProtectedMembers.d.ts] -// Class with protected members declare class C1 { protected x: number; protected f(): number; @@ -111,12 +110,10 @@ declare class C1 { protected static set staticSetter(a: number); protected static get staticGetter(): number; } -// Derived class overriding protected members declare class C2 extends C1 { protected f(): number; protected static sf(): number; } -// Derived class making protected members public declare class C3 extends C2 { x: number; static sx: number; @@ -124,7 +121,6 @@ declare class C3 extends C2 { static sf(): number; static get staticGetter(): number; } -// Protected properties in constructors declare class C4 { protected a: number; protected b: any; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js.diff index a1c798d265..53806d70f5 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js.diff @@ -31,33 +31,4 @@ + b; constructor(a, b) { this.a = a; - this.b = b; -@@= skipped -8, +10 lines =@@ - - - //// [declarationEmitProtectedMembers.d.ts] -+// Class with protected members - declare class C1 { - protected x: number; - protected f(): number; -@@= skipped -10, +11 lines =@@ - protected static set staticSetter(a: number); - protected static get staticGetter(): number; - } -+// Derived class overriding protected members - declare class C2 extends C1 { - protected f(): number; - protected static sf(): number; - } -+// Derived class making protected members public - declare class C3 extends C2 { - x: number; - static sx: number; -@@= skipped -11, +13 lines =@@ - static sf(): number; - static get staticGetter(): number; - } -+// Protected properties in constructors - declare class C4 { - protected a: number; - protected b: any; \ No newline at end of file + this.b = b; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js b/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js index 400dbba8f8..80863fe47d 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js @@ -53,7 +53,7 @@ exports.spread = __assign({}, (0, bug_1.createInstance)()); //// [bug.d.ts] export declare const SYMBOL: unique symbol; export interface Interface { - readonly [SYMBOL]: string; // remove readonly and @showEmit to see the expected error + readonly [SYMBOL]: string; } export declare function createInstance(): Interface; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js.diff index 287db45c40..57152bbabf 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js.diff @@ -9,11 +9,8 @@ exports.spread = __assign({}, (0, bug_1.createInstance)()); - //// [bug.d.ts] - export declare const SYMBOL: unique symbol; - export interface Interface { -- readonly [SYMBOL]: string; -+ readonly [SYMBOL]: string; // remove readonly and @showEmit to see the expected error +@@= skipped -10, +10 lines =@@ + readonly [SYMBOL]: string; } export declare function createInstance(): Interface; +//// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js b/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js index 9513551272..ee64eb9aee 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js @@ -34,10 +34,8 @@ exports.createClient = createClient; //// [declarationEmitShadowingInferNotRenamed.d.ts] -// Modified instance type UpdatedClient = C & { foo: number; }; -export declare const createClient: string> | (new (...args: any[]) => string)>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C // or map of instances respectively - ? UpdatedClient : never; }; +export declare const createClient: string> | (new (...args: any[]) => string)>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; }; export {}; diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js.diff index 064adb526c..ebb2e00aa2 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js.diff @@ -5,11 +5,9 @@ //// [declarationEmitShadowingInferNotRenamed.d.ts] -type Client = string; -+// Modified instance type UpdatedClient = C & { foo: number; }; -export declare const createClient: Client) | Record Client>>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; }; -+export declare const createClient: string> | (new (...args: any[]) => string)>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C // or map of instances respectively -+ ? UpdatedClient : never; }; ++export declare const createClient: string> | (new (...args: any[]) => string)>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; }; export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile2.js b/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile2.js index fb29e29d67..34fbfba4d8 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile2.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile2.js @@ -38,7 +38,6 @@ exports._ = boxedBox_1.boxedBox; export declare const _: import("./box").Box<{ boxed: import("./box").Box; }>; -// At index 83 /** * wat */ diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile2.js.diff index 929a139ce3..69a7035dd1 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile2.js.diff @@ -8,12 +8,4 @@ +const boxedBox_1 = require("./boxedBox"); exports._ = boxedBox_1.boxedBox; // At index 83 - /** -@@= skipped -12, +12 lines =@@ - export declare const _: import("./box").Box<{ - boxed: import("./box").Box; - }>; -+// At index 83 - /** - * wat - */ \ No newline at end of file + /** \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js index 35209340b0..cec0c160c1 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js @@ -16,5 +16,5 @@ class Foo { //// [declarationEmitTypeofThisInClass.d.ts] declare class Foo { foo: string; - bar: typeof this.foo; //Public property 'bar' of exported class has or is using private name 'this'.(4031) + bar: typeof this.foo; } diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js.diff index 4986e2b51c..9da3a505c5 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js.diff @@ -10,10 +10,3 @@ + bar; //Public property 'bar' of exported class has or is using private name 'this'.(4031) } - - //// [declarationEmitTypeofThisInClass.d.ts] - declare class Foo { - foo: string; -- bar: typeof this.foo; -+ bar: typeof this.foo; //Public property 'bar' of exported class has or is using private name 'this'.(4031) - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js b/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js index 8dc5e72918..f9946ec7af 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js +++ b/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js @@ -87,9 +87,6 @@ void p3.result.three; //// [declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts] -// Note that both of the following have an `any` in their return type from where we bottom out the type printout -// for having too many instances of the same symbol nesting. -// Slightly simplified repro from https://github.com/microsoft/TypeScript/issues/30732 so it's easier to read and debug export type Key = keyof U; export type Value, U> = U[K]; export declare const updateIfChanged: (t: T) => ((key: K) => (>(key: K) => (>>(key: K) => (>>>(key: K) => (>>>>(key: K) => (>>>>>(key: K) => (>>>>>>(key: K) => (>>>>>>>(key: K) => (>>>>>>>>(key: K) => (>>>>>>>>>(key: K) => (>>>>>>>>>>(key: K) => /*elided*/ any & { @@ -129,7 +126,6 @@ export declare const updateIfChanged: (t: T) => ((key: K) map: (updater: (u: T) => T) => T; set: (newU: T) => T; }; -// example from https://github.com/microsoft/TypeScript/issues/31605 export declare const testRecFun: (parent: T) => { result: T; deeper: (child: U) => { @@ -169,61 +165,91 @@ export declare const testRecFun: (parent: T) => { //// [DtsFileErrors] -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,108): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,152): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,163): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,208): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,219): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,230): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,276): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,287): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,298): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,309): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,356): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,367): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,378): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,389): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,400): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,448): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,459): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,470): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,481): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,492): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,503): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,552): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,563): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,574): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,585): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,596): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,607): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,618): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,668): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,679): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,690): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,701): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,712): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,723): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,734): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,745): error TS2304: Cannot find name 'K_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,796): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,807): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,818): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,829): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,840): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,851): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,862): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,873): error TS2304: Cannot find name 'K_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,884): error TS2304: Cannot find name 'K_9'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,936): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,947): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,958): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,969): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,980): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,991): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,1002): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,1013): error TS2304: Cannot find name 'K_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,1024): error TS2304: Cannot find name 'K_9'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,1035): error TS2304: Cannot find name 'K_10'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,108): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,152): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,163): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,208): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,219): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,230): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,276): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,287): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,298): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,309): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,356): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,367): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,378): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,389): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,400): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,448): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,459): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,470): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,481): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,492): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,503): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,552): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,563): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,574): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,585): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,596): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,607): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,618): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,668): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,679): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,690): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,701): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,712): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,723): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,734): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,745): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,796): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,807): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,818): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,829): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,840): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,851): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,862): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,873): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,884): error TS2304: Cannot find name 'K_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,936): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,947): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,958): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,969): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,980): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,991): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,1002): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,1013): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,1024): error TS2304: Cannot find name 'K_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,1035): error TS2304: Cannot find name 'K_10'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,50): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,61): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,72): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,83): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,94): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,105): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,116): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,127): error TS2304: Cannot find name 'K_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,138): error TS2304: Cannot find name 'K_10'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,176): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,187): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,198): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,209): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,220): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,231): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,242): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,253): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,264): error TS2304: Cannot find name 'K_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,275): error TS2304: Cannot find name 'K_10'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,43): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,54): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,65): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,76): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,87): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,98): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,109): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,120): error TS2304: Cannot find name 'K_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,131): error TS2304: Cannot find name 'K_10'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,39): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,50): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,61): error TS2304: Cannot find name 'K_3'. @@ -233,17 +259,15 @@ declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,94): error declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,105): error TS2304: Cannot find name 'K_7'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,116): error TS2304: Cannot find name 'K_8'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,127): error TS2304: Cannot find name 'K_9'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,138): error TS2304: Cannot find name 'K_10'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,176): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,187): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,198): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,209): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,220): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,231): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,242): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,253): error TS2304: Cannot find name 'K_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,264): error TS2304: Cannot find name 'K_9'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,275): error TS2304: Cannot find name 'K_10'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,163): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,174): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,185): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,196): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,207): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,218): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,229): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,240): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,251): error TS2304: Cannot find name 'K_9'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,32): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,43): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,54): error TS2304: Cannot find name 'K_3'. @@ -253,7 +277,6 @@ declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,87): error declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,98): error TS2304: Cannot find name 'K_7'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,109): error TS2304: Cannot find name 'K_8'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,120): error TS2304: Cannot find name 'K_9'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,131): error TS2304: Cannot find name 'K_10'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,39): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,50): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,61): error TS2304: Cannot find name 'K_3'. @@ -262,16 +285,14 @@ declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,83): error declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,94): error TS2304: Cannot find name 'K_6'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,105): error TS2304: Cannot find name 'K_7'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,116): error TS2304: Cannot find name 'K_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,127): error TS2304: Cannot find name 'K_9'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,163): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,174): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,185): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,196): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,207): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,218): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,229): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,240): error TS2304: Cannot find name 'K_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,251): error TS2304: Cannot find name 'K_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,151): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,162): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,173): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,184): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,195): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,206): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,217): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,228): error TS2304: Cannot find name 'K_8'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,32): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,43): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,54): error TS2304: Cannot find name 'K_3'. @@ -280,7 +301,6 @@ declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,76): error declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,87): error TS2304: Cannot find name 'K_6'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,98): error TS2304: Cannot find name 'K_7'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,109): error TS2304: Cannot find name 'K_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,120): error TS2304: Cannot find name 'K_9'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,39): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,50): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,61): error TS2304: Cannot find name 'K_3'. @@ -288,15 +308,13 @@ declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,72): error declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,83): error TS2304: Cannot find name 'K_5'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,94): error TS2304: Cannot find name 'K_6'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,105): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,116): error TS2304: Cannot find name 'K_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,151): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,162): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,173): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,184): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,195): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,206): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,217): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,228): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,139): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,150): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,161): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,172): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,183): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,194): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,205): error TS2304: Cannot find name 'K_7'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,32): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,43): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,54): error TS2304: Cannot find name 'K_3'. @@ -304,142 +322,117 @@ declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,65): error declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,76): error TS2304: Cannot find name 'K_5'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,87): error TS2304: Cannot find name 'K_6'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,98): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,109): error TS2304: Cannot find name 'K_8'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,39): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,50): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,61): error TS2304: Cannot find name 'K_3'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,72): error TS2304: Cannot find name 'K_4'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,83): error TS2304: Cannot find name 'K_5'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,94): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,105): error TS2304: Cannot find name 'K_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,139): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,150): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,161): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,172): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,183): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,194): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,205): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,127): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,138): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,149): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,160): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,171): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,182): error TS2304: Cannot find name 'K_6'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,32): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,43): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,54): error TS2304: Cannot find name 'K_3'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,65): error TS2304: Cannot find name 'K_4'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,76): error TS2304: Cannot find name 'K_5'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,87): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,98): error TS2304: Cannot find name 'K_7'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,39): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,50): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,61): error TS2304: Cannot find name 'K_3'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,72): error TS2304: Cannot find name 'K_4'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,83): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,94): error TS2304: Cannot find name 'K_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,127): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,138): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,149): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,160): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,171): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,182): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,115): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,126): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,137): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,148): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,159): error TS2304: Cannot find name 'K_5'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,32): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,43): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,54): error TS2304: Cannot find name 'K_3'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,65): error TS2304: Cannot find name 'K_4'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,76): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,87): error TS2304: Cannot find name 'K_6'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,39): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,50): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,61): error TS2304: Cannot find name 'K_3'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,72): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,83): error TS2304: Cannot find name 'K_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,115): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,126): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,137): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,148): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,159): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,103): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,114): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,125): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,136): error TS2304: Cannot find name 'K_4'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,32): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,43): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,54): error TS2304: Cannot find name 'K_3'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,65): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,76): error TS2304: Cannot find name 'K_5'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,39): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,50): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,61): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,72): error TS2304: Cannot find name 'K_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,103): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,114): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,125): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,136): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,91): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,102): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,113): error TS2304: Cannot find name 'K_3'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(26,32): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(26,43): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(26,54): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(26,65): error TS2304: Cannot find name 'K_4'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,39): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,50): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,61): error TS2304: Cannot find name 'K_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,91): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,102): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,113): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,79): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,90): error TS2304: Cannot find name 'K_2'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(29,32): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(29,43): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(29,54): error TS2304: Cannot find name 'K_3'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,39): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,50): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,79): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,90): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,67): error TS2304: Cannot find name 'K_1'. declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(32,32): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(32,43): error TS2304: Cannot find name 'K_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(34,39): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(34,67): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(35,32): error TS2304: Cannot find name 'K_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(49,25): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,29): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,35): error TS2304: Cannot find name 'U_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,33): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,39): error TS2304: Cannot find name 'U_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,45): error TS2304: Cannot find name 'U_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,37): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,43): error TS2304: Cannot find name 'U_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,49): error TS2304: Cannot find name 'U_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,55): error TS2304: Cannot find name 'U_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,41): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,47): error TS2304: Cannot find name 'U_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,53): error TS2304: Cannot find name 'U_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,59): error TS2304: Cannot find name 'U_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,65): error TS2304: Cannot find name 'U_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,45): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,51): error TS2304: Cannot find name 'U_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,57): error TS2304: Cannot find name 'U_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,63): error TS2304: Cannot find name 'U_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,69): error TS2304: Cannot find name 'U_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,75): error TS2304: Cannot find name 'U_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,49): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,55): error TS2304: Cannot find name 'U_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,61): error TS2304: Cannot find name 'U_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,67): error TS2304: Cannot find name 'U_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,73): error TS2304: Cannot find name 'U_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,79): error TS2304: Cannot find name 'U_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,85): error TS2304: Cannot find name 'U_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,53): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,59): error TS2304: Cannot find name 'U_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,65): error TS2304: Cannot find name 'U_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,71): error TS2304: Cannot find name 'U_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,77): error TS2304: Cannot find name 'U_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,83): error TS2304: Cannot find name 'U_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,89): error TS2304: Cannot find name 'U_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,95): error TS2304: Cannot find name 'U_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,57): error TS2304: Cannot find name 'U_1'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,63): error TS2304: Cannot find name 'U_2'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,69): error TS2304: Cannot find name 'U_3'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,75): error TS2304: Cannot find name 'U_4'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,81): error TS2304: Cannot find name 'U_5'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,87): error TS2304: Cannot find name 'U_6'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,93): error TS2304: Cannot find name 'U_7'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,99): error TS2304: Cannot find name 'U_8'. -declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,105): error TS2304: Cannot find name 'U_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(45,25): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(47,29): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(47,35): error TS2304: Cannot find name 'U_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(49,33): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(49,39): error TS2304: Cannot find name 'U_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(49,45): error TS2304: Cannot find name 'U_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,37): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,43): error TS2304: Cannot find name 'U_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,49): error TS2304: Cannot find name 'U_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,55): error TS2304: Cannot find name 'U_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,41): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,47): error TS2304: Cannot find name 'U_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,53): error TS2304: Cannot find name 'U_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,59): error TS2304: Cannot find name 'U_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,65): error TS2304: Cannot find name 'U_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,45): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,51): error TS2304: Cannot find name 'U_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,57): error TS2304: Cannot find name 'U_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,63): error TS2304: Cannot find name 'U_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,69): error TS2304: Cannot find name 'U_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,75): error TS2304: Cannot find name 'U_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,49): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,55): error TS2304: Cannot find name 'U_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,61): error TS2304: Cannot find name 'U_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,67): error TS2304: Cannot find name 'U_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,73): error TS2304: Cannot find name 'U_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,79): error TS2304: Cannot find name 'U_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,85): error TS2304: Cannot find name 'U_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,53): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,59): error TS2304: Cannot find name 'U_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,65): error TS2304: Cannot find name 'U_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,71): error TS2304: Cannot find name 'U_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,77): error TS2304: Cannot find name 'U_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,83): error TS2304: Cannot find name 'U_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,89): error TS2304: Cannot find name 'U_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,95): error TS2304: Cannot find name 'U_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,57): error TS2304: Cannot find name 'U_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,63): error TS2304: Cannot find name 'U_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,69): error TS2304: Cannot find name 'U_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,75): error TS2304: Cannot find name 'U_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,81): error TS2304: Cannot find name 'U_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,87): error TS2304: Cannot find name 'U_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,93): error TS2304: Cannot find name 'U_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,99): error TS2304: Cannot find name 'U_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,105): error TS2304: Cannot find name 'U_9'. ==== declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts (265 errors) ==== - // Note that both of the following have an `any` in their return type from where we bottom out the type printout - // for having too many instances of the same symbol nesting. - // Slightly simplified repro from https://github.com/microsoft/TypeScript/issues/30732 so it's easier to read and debug export type Key = keyof U; export type Value, U> = U[K]; export declare const updateIfChanged: (t: T) => ((key: K) => (>(key: K) => (>>(key: K) => (>>>(key: K) => (>>>>(key: K) => (>>>>>(key: K) => (>>>>>>(key: K) => (>>>>>>>(key: K) => (>>>>>>>>(key: K) => (>>>>>>>>>(key: K) => (>>>>>>>>>>(key: K) => /*elided*/ any & { @@ -919,7 +912,6 @@ declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,105): erro map: (updater: (u: T) => T) => T; set: (newU: T) => T; }; - // example from https://github.com/microsoft/TypeScript/issues/31605 export declare const testRecFun: (parent: T) => { result: T; deeper: (child: U) => { diff --git a/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js.diff b/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js.diff index 15a48fc3b9..395d957158 100644 --- a/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js.diff +++ b/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js.diff @@ -9,13 +9,8 @@ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { -@@= skipped -45, +43 lines =@@ - - +@@= skipped -47, +45 lines =@@ //// [declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts] -+// Note that both of the following have an `any` in their return type from where we bottom out the type printout -+// for having too many instances of the same symbol nesting. -+// Slightly simplified repro from https://github.com/microsoft/TypeScript/issues/30732 so it's easier to read and debug export type Key = keyof U; export type Value, U> = U[K]; -export declare const updateIfChanged: (t: T) => ((key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => /*elided*/ any & { @@ -81,12 +76,7 @@ }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; -@@= skipped -39, +42 lines =@@ - map: (updater: (u: T) => T) => T; - set: (newU: T) => T; - }; -+// example from https://github.com/microsoft/TypeScript/issues/31605 - export declare const testRecFun: (parent: T) => { +@@= skipped -41, +41 lines =@@ result: T; deeper: (child: U) => { result: T & U; @@ -131,7 +121,7 @@ }; }; }; -@@= skipped -34, +35 lines =@@ +@@= skipped -30, +30 lines =@@ }; }; }; @@ -140,61 +130,91 @@ +//// [DtsFileErrors] + + -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,108): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,152): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,163): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,208): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,219): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,230): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,276): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,287): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,298): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,309): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,356): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,367): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,378): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,389): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,400): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,448): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,459): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,470): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,481): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,492): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,503): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,552): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,563): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,574): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,585): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,596): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,607): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,618): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,668): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,679): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,690): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,701): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,712): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,723): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,734): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,745): error TS2304: Cannot find name 'K_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,796): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,807): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,818): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,829): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,840): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,851): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,862): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,873): error TS2304: Cannot find name 'K_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,884): error TS2304: Cannot find name 'K_9'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,936): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,947): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,958): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,969): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,980): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,991): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,1002): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,1013): error TS2304: Cannot find name 'K_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,1024): error TS2304: Cannot find name 'K_9'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(6,1035): error TS2304: Cannot find name 'K_10'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,108): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,152): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,163): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,208): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,219): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,230): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,276): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,287): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,298): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,309): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,356): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,367): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,378): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,389): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,400): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,448): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,459): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,470): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,481): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,492): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,503): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,552): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,563): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,574): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,585): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,596): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,607): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,618): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,668): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,679): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,690): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,701): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,712): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,723): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,734): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,745): error TS2304: Cannot find name 'K_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,796): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,807): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,818): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,829): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,840): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,851): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,862): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,873): error TS2304: Cannot find name 'K_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,884): error TS2304: Cannot find name 'K_9'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,936): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,947): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,958): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,969): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,980): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,991): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,1002): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,1013): error TS2304: Cannot find name 'K_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,1024): error TS2304: Cannot find name 'K_9'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(3,1035): error TS2304: Cannot find name 'K_10'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,39): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,50): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,61): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,72): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,83): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,94): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,105): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,116): error TS2304: Cannot find name 'K_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,127): error TS2304: Cannot find name 'K_9'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,138): error TS2304: Cannot find name 'K_10'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,176): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,187): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,198): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,209): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,220): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,231): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,242): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,253): error TS2304: Cannot find name 'K_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,264): error TS2304: Cannot find name 'K_9'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(4,275): error TS2304: Cannot find name 'K_10'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,32): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,43): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,54): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,65): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,76): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,87): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,98): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,109): error TS2304: Cannot find name 'K_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,120): error TS2304: Cannot find name 'K_9'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(5,131): error TS2304: Cannot find name 'K_10'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,50): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,61): error TS2304: Cannot find name 'K_3'. @@ -204,17 +224,15 @@ +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,105): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,116): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,127): error TS2304: Cannot find name 'K_9'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,138): error TS2304: Cannot find name 'K_10'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,176): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,187): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,198): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,209): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,220): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,231): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,242): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,253): error TS2304: Cannot find name 'K_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,264): error TS2304: Cannot find name 'K_9'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,275): error TS2304: Cannot find name 'K_10'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,163): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,174): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,185): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,196): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,207): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,218): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,229): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,240): error TS2304: Cannot find name 'K_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(7,251): error TS2304: Cannot find name 'K_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,43): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,54): error TS2304: Cannot find name 'K_3'. @@ -224,7 +242,6 @@ +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,98): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,109): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,120): error TS2304: Cannot find name 'K_9'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(8,131): error TS2304: Cannot find name 'K_10'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,50): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,61): error TS2304: Cannot find name 'K_3'. @@ -233,16 +250,14 @@ +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,94): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,105): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,116): error TS2304: Cannot find name 'K_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,127): error TS2304: Cannot find name 'K_9'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,163): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,174): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,185): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,196): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,207): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,218): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,229): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,240): error TS2304: Cannot find name 'K_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,251): error TS2304: Cannot find name 'K_9'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,151): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,162): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,173): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,184): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,195): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,206): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,217): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(10,228): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,43): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,54): error TS2304: Cannot find name 'K_3'. @@ -251,7 +266,6 @@ +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,87): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,98): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,109): error TS2304: Cannot find name 'K_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(11,120): error TS2304: Cannot find name 'K_9'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,50): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,61): error TS2304: Cannot find name 'K_3'. @@ -259,15 +273,13 @@ +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,83): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,94): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,105): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,116): error TS2304: Cannot find name 'K_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,151): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,162): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,173): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,184): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,195): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,206): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,217): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,228): error TS2304: Cannot find name 'K_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,139): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,150): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,161): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,172): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,183): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,194): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(13,205): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,43): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,54): error TS2304: Cannot find name 'K_3'. @@ -275,142 +287,117 @@ +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,76): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,87): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,98): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(14,109): error TS2304: Cannot find name 'K_8'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,50): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,61): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,72): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,83): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,94): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,105): error TS2304: Cannot find name 'K_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,139): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,150): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,161): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,172): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,183): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,194): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,205): error TS2304: Cannot find name 'K_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,127): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,138): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,149): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,160): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,171): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(16,182): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,43): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,54): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,65): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,76): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,87): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(17,98): error TS2304: Cannot find name 'K_7'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,50): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,61): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,72): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,83): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,94): error TS2304: Cannot find name 'K_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,127): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,138): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,149): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,160): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,171): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,182): error TS2304: Cannot find name 'K_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,115): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,126): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,137): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,148): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(19,159): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,43): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,54): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,65): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,76): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(20,87): error TS2304: Cannot find name 'K_6'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,50): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,61): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,72): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,83): error TS2304: Cannot find name 'K_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,115): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,126): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,137): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,148): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,159): error TS2304: Cannot find name 'K_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,103): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,114): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,125): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(22,136): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,43): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,54): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,65): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(23,76): error TS2304: Cannot find name 'K_5'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,50): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,61): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,72): error TS2304: Cannot find name 'K_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,103): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,114): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,125): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,136): error TS2304: Cannot find name 'K_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,91): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,102): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(25,113): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(26,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(26,43): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(26,54): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(26,65): error TS2304: Cannot find name 'K_4'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,39): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,50): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,61): error TS2304: Cannot find name 'K_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,91): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,102): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,113): error TS2304: Cannot find name 'K_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,79): error TS2304: Cannot find name 'K_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(28,90): error TS2304: Cannot find name 'K_2'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(29,32): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(29,43): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(29,54): error TS2304: Cannot find name 'K_3'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,39): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,50): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,79): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,90): error TS2304: Cannot find name 'K_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(31,67): error TS2304: Cannot find name 'K_1'. +declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(32,32): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(32,43): error TS2304: Cannot find name 'K_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(34,39): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(34,67): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(35,32): error TS2304: Cannot find name 'K_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(49,25): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,29): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,35): error TS2304: Cannot find name 'U_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,33): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,39): error TS2304: Cannot find name 'U_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,45): error TS2304: Cannot find name 'U_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,37): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,43): error TS2304: Cannot find name 'U_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,49): error TS2304: Cannot find name 'U_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,55): error TS2304: Cannot find name 'U_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,41): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,47): error TS2304: Cannot find name 'U_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,53): error TS2304: Cannot find name 'U_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,59): error TS2304: Cannot find name 'U_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,65): error TS2304: Cannot find name 'U_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,45): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,51): error TS2304: Cannot find name 'U_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,57): error TS2304: Cannot find name 'U_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,63): error TS2304: Cannot find name 'U_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,69): error TS2304: Cannot find name 'U_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,75): error TS2304: Cannot find name 'U_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,49): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,55): error TS2304: Cannot find name 'U_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,61): error TS2304: Cannot find name 'U_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,67): error TS2304: Cannot find name 'U_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,73): error TS2304: Cannot find name 'U_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,79): error TS2304: Cannot find name 'U_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,85): error TS2304: Cannot find name 'U_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,53): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,59): error TS2304: Cannot find name 'U_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,65): error TS2304: Cannot find name 'U_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,71): error TS2304: Cannot find name 'U_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,77): error TS2304: Cannot find name 'U_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,83): error TS2304: Cannot find name 'U_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,89): error TS2304: Cannot find name 'U_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(63,95): error TS2304: Cannot find name 'U_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,57): error TS2304: Cannot find name 'U_1'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,63): error TS2304: Cannot find name 'U_2'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,69): error TS2304: Cannot find name 'U_3'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,75): error TS2304: Cannot find name 'U_4'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,81): error TS2304: Cannot find name 'U_5'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,87): error TS2304: Cannot find name 'U_6'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,93): error TS2304: Cannot find name 'U_7'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,99): error TS2304: Cannot find name 'U_8'. -+declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(65,105): error TS2304: Cannot find name 'U_9'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(45,25): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(47,29): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(47,35): error TS2304: Cannot find name 'U_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(49,33): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(49,39): error TS2304: Cannot find name 'U_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(49,45): error TS2304: Cannot find name 'U_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,37): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,43): error TS2304: Cannot find name 'U_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,49): error TS2304: Cannot find name 'U_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(51,55): error TS2304: Cannot find name 'U_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,41): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,47): error TS2304: Cannot find name 'U_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,53): error TS2304: Cannot find name 'U_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,59): error TS2304: Cannot find name 'U_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(53,65): error TS2304: Cannot find name 'U_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,45): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,51): error TS2304: Cannot find name 'U_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,57): error TS2304: Cannot find name 'U_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,63): error TS2304: Cannot find name 'U_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,69): error TS2304: Cannot find name 'U_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(55,75): error TS2304: Cannot find name 'U_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,49): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,55): error TS2304: Cannot find name 'U_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,61): error TS2304: Cannot find name 'U_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,67): error TS2304: Cannot find name 'U_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,73): error TS2304: Cannot find name 'U_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,79): error TS2304: Cannot find name 'U_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(57,85): error TS2304: Cannot find name 'U_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,53): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,59): error TS2304: Cannot find name 'U_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,65): error TS2304: Cannot find name 'U_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,71): error TS2304: Cannot find name 'U_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,77): error TS2304: Cannot find name 'U_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,83): error TS2304: Cannot find name 'U_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,89): error TS2304: Cannot find name 'U_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(59,95): error TS2304: Cannot find name 'U_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,57): error TS2304: Cannot find name 'U_1'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,63): error TS2304: Cannot find name 'U_2'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,69): error TS2304: Cannot find name 'U_3'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,75): error TS2304: Cannot find name 'U_4'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,81): error TS2304: Cannot find name 'U_5'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,87): error TS2304: Cannot find name 'U_6'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,93): error TS2304: Cannot find name 'U_7'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,99): error TS2304: Cannot find name 'U_8'. ++declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts(61,105): error TS2304: Cannot find name 'U_9'. + + +==== declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts (265 errors) ==== -+ // Note that both of the following have an `any` in their return type from where we bottom out the type printout -+ // for having too many instances of the same symbol nesting. -+ // Slightly simplified repro from https://github.com/microsoft/TypeScript/issues/30732 so it's easier to read and debug + export type Key = keyof U; + export type Value, U> = U[K]; + export declare const updateIfChanged: (t: T) => ((key: K) => (>(key: K) => (>>(key: K) => (>>>(key: K) => (>>>>(key: K) => (>>>>>(key: K) => (>>>>>>(key: K) => (>>>>>>>(key: K) => (>>>>>>>>(key: K) => (>>>>>>>>>(key: K) => (>>>>>>>>>>(key: K) => /*elided*/ any & { @@ -890,7 +877,6 @@ + map: (updater: (u: T) => T) => T; + set: (newU: T) => T; + }; -+ // example from https://github.com/microsoft/TypeScript/issues/31605 + export declare const testRecFun: (parent: T) => { + result: T; + deeper: (child: U) => { diff --git a/testdata/baselines/reference/submodule/compiler/declareDottedModuleName.js b/testdata/baselines/reference/submodule/compiler/declareDottedModuleName.js index 0706279e98..a7ea2f3591 100644 --- a/testdata/baselines/reference/submodule/compiler/declareDottedModuleName.js +++ b/testdata/baselines/reference/submodule/compiler/declareDottedModuleName.js @@ -19,7 +19,7 @@ module T.U { // This needs to be emitted declare namespace M { } declare namespace M { - namespace R.S { } //This should be emitted + namespace R.S { } } -declare namespace T.U { // This needs to be emitted +declare namespace T.U { } diff --git a/testdata/baselines/reference/submodule/compiler/declareDottedModuleName.js.diff b/testdata/baselines/reference/submodule/compiler/declareDottedModuleName.js.diff deleted file mode 100644 index bdb173f76c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/declareDottedModuleName.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.declareDottedModuleName.js -+++ new.declareDottedModuleName.js -@@= skipped -18, +18 lines =@@ - declare namespace M { - } - declare namespace M { -- namespace R.S { } -+ namespace R.S { } //This should be emitted - } --declare namespace T.U { -+declare namespace T.U { // This needs to be emitted - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js b/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js index 9a00358d07..a8e4d07c86 100644 --- a/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js +++ b/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js @@ -23,7 +23,6 @@ class BufferPool { //// [deeplyNestedConstraints.d.ts] -// Repro from #41931 type Enum = Record; type TypeMap = { [key in E[keyof E]]: number | boolean | string | number[]; diff --git a/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js.diff index cb7a652f43..aa5c1605a1 100644 --- a/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js.diff +++ b/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js.diff @@ -8,12 +8,4 @@ -// Repro from #41931 class BufferPool { setArray2(_, array) { - array.length; // Requires exploration of >5 levels of constraints -@@= skipped -10, +8 lines =@@ - - - //// [deeplyNestedConstraints.d.ts] -+// Repro from #41931 - type Enum = Record; - type TypeMap = { - [key in E[keyof E]]: number | boolean | string | number[]; \ No newline at end of file + array.length; // Requires exploration of >5 levels of constraints \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution.js b/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution.js index 4f182ec742..8edd173c99 100644 --- a/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution.js +++ b/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution.js @@ -38,21 +38,19 @@ function f3(x) { //// [deferredLookupTypeResolution.d.ts] -// Repro from #17456 type StringContains = ({ [K in S]: 'true'; } & { [key: string]: 'false'; })[L]; type ObjectHasKey = StringContains, L>; -type First = ObjectHasKey; // Should be deferred +type First = ObjectHasKey; type T1 = ObjectHasKey<{ a: string; -}, 'a'>; // 'true' +}, 'a'>; type T2 = ObjectHasKey<{ a: string; -}, 'b'>; // 'false' -// Verify that mapped type isn't eagerly resolved in type-to-string operation +}, 'b'>; declare function f1(a: A, b: B): { [P in A | B]: any; }; diff --git a/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution.js.diff b/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution.js.diff index b67c3d837f..4d447e3693 100644 --- a/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution.js.diff +++ b/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution.js.diff @@ -8,29 +8,4 @@ -// Repro from #17456 function f2(a) { return f1(a, 'x'); - } -@@= skipped -11, +9 lines =@@ - - - //// [deferredLookupTypeResolution.d.ts] -+// Repro from #17456 - type StringContains = ({ - [K in S]: 'true'; - } & { - [key: string]: 'false'; - })[L]; - type ObjectHasKey = StringContains, L>; --type First = ObjectHasKey; -+type First = ObjectHasKey; // Should be deferred - type T1 = ObjectHasKey<{ - a: string; --}, 'a'>; -+}, 'a'>; // 'true' - type T2 = ObjectHasKey<{ - a: string; --}, 'b'>; -+}, 'b'>; // 'false' -+// Verify that mapped type isn't eagerly resolved in type-to-string operation - declare function f1(a: A, b: B): { - [P in A | B]: any; - }; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution2.js b/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution2.js index 3039f872c5..791854dd9a 100644 --- a/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution2.js +++ b/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution2.js @@ -28,7 +28,6 @@ type DeepOK = { true: 'true', otherwise: 'false' }[Juxtapose]; //// [deferredLookupTypeResolution2.d.ts] -// Repro from #17456 type StringContains = ({ [K in S]: 'true'; } & { @@ -36,10 +35,9 @@ type StringContains = ({ })[L]; type ObjectHasKey = StringContains, L>; type A = ObjectHasKey; -type B = ObjectHasKey<[string, number], '1'>; // "true" -type C = ObjectHasKey<[string, number], '2'>; // "false" -type D = A<[string]>; // "true" -// Error, "false" not handled +type B = ObjectHasKey<[string, number], '1'>; +type C = ObjectHasKey<[string, number], '2'>; +type D = A<[string]>; type E = { true: 'true'; }[ObjectHasKey]; @@ -48,7 +46,6 @@ type Juxtapose = ({ } & { [k: string]: 'true'; })[ObjectHasKey]; -// Error, "otherwise" is missing type DeepError = { true: 'true'; }[Juxtapose]; diff --git a/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution2.js.diff b/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution2.js.diff index 77e4f3c9ed..7401b3875d 100644 --- a/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/deferredLookupTypeResolution2.js.diff @@ -8,30 +8,4 @@ -// Repro from #17456 - //// [deferredLookupTypeResolution2.d.ts] -+// Repro from #17456 - type StringContains = ({ - [K in S]: 'true'; - } & { -@@= skipped -12, +11 lines =@@ - })[L]; - type ObjectHasKey = StringContains, L>; - type A = ObjectHasKey; --type B = ObjectHasKey<[string, number], '1'>; --type C = ObjectHasKey<[string, number], '2'>; --type D = A<[string]>; -+type B = ObjectHasKey<[string, number], '1'>; // "true" -+type C = ObjectHasKey<[string, number], '2'>; // "false" -+type D = A<[string]>; // "true" -+// Error, "false" not handled - type E = { - true: 'true'; - }[ObjectHasKey]; -@@= skipped -11, +12 lines =@@ - } & { - [k: string]: 'true'; - })[ObjectHasKey]; -+// Error, "otherwise" is missing - type DeepError = { - true: 'true'; - }[Juxtapose]; \ No newline at end of file + //// [deferredLookupTypeResolution2.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js b/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js index d47a2b2ae8..cb715c54ff 100644 --- a/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js +++ b/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js @@ -41,7 +41,6 @@ declare function f2({ a, b }?: { a: number; b: number; }): void; -// Repro from #8681 interface Type { t: void; } diff --git a/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js.diff b/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js.diff deleted file mode 100644 index 684afea880..0000000000 --- a/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.destructureOptionalParameter.js -+++ new.destructureOptionalParameter.js -@@= skipped -40, +40 lines =@@ - a: number; - b: number; - }): void; -+// Repro from #8681 - interface Type { - t: void; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js b/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js index a39204dcaa..28b2bd20f1 100644 --- a/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js +++ b/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js @@ -41,7 +41,6 @@ function ListItem(_data) { //// [discriminatedUnionJsxElement.d.ts] -// Repro from #46021 interface IData { menuItemsVariant?: MenuItemVariant; } diff --git a/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js.diff b/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js.diff index 3426fc09e7..ad545cf227 100644 --- a/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js.diff +++ b/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js.diff @@ -8,12 +8,4 @@ -// Repro from #46021 function Menu(data) { var _a; - const listItemVariant = (_a = data.menuItemsVariant) !== null && _a !== void 0 ? _a : ListItemVariant.OneLine; -@@= skipped -18, +16 lines =@@ - - - //// [discriminatedUnionJsxElement.d.ts] -+// Repro from #46021 - interface IData { - menuItemsVariant?: MenuItemVariant; - } \ No newline at end of file + const listItemVariant = (_a = data.menuItemsVariant) !== null && _a !== void 0 ? _a : ListItemVariant.OneLine; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js b/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js index 4b665679b5..f395db6ef7 100644 --- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js +++ b/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js @@ -80,16 +80,16 @@ declare namespace N { } //// [file2.d.ts] declare class I { -} // error -- cannot merge interface with non-ambient class +} interface C1 { -} // error -- cannot merge interface with non-ambient class -declare function C2(): void; // error -- cannot merge function with non-ambient class +} +declare function C2(): void; declare class f { -} // error -- cannot merge function with non-ambient class +} declare var v: number; declare namespace Foo { - var x: number; // error for redeclaring var in a different parent + var x: number; } declare namespace N { - function F(): any; // no error because function is ambient + function F(): any; } diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js.diff index 9ea9518870..d1cfe8bdab 100644 --- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js.diff +++ b/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js.diff @@ -7,27 +7,4 @@ + static x; } var N; - (function (N) { -@@= skipped -38, +39 lines =@@ - } - //// [file2.d.ts] - declare class I { --} -+} // error -- cannot merge interface with non-ambient class - interface C1 { --} --declare function C2(): void; -+} // error -- cannot merge interface with non-ambient class -+declare function C2(): void; // error -- cannot merge function with non-ambient class - declare class f { --} -+} // error -- cannot merge function with non-ambient class - declare var v: number; - declare namespace Foo { -- var x: number; -+ var x: number; // error for redeclaring var in a different parent - } - declare namespace N { -- function F(): any; -+ function F(): any; // no error because function is ambient - } \ No newline at end of file + (function (N) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/dynamicNames.js b/testdata/baselines/reference/submodule/compiler/dynamicNames.js index 8fb99a7884..14ae09b401 100644 --- a/testdata/baselines/reference/submodule/compiler/dynamicNames.js +++ b/testdata/baselines/reference/submodule/compiler/dynamicNames.js @@ -241,13 +241,11 @@ import { s0, T0 } from "./module"; export declare const c4 = "a"; export declare const c5 = 1; export declare const s2: typeof s0; -// object literals export declare const o1: { a: number; 1: string; [s0]: boolean; }; -// check element access types export declare const o1_c4: number; export declare const o1_c5: string; export declare const o1_s2: boolean; diff --git a/testdata/baselines/reference/submodule/compiler/dynamicNames.js.diff b/testdata/baselines/reference/submodule/compiler/dynamicNames.js.diff deleted file mode 100644 index e27b56454d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/dynamicNames.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.dynamicNames.js -+++ new.dynamicNames.js -@@= skipped -240, +240 lines =@@ - export declare const c4 = "a"; - export declare const c5 = 1; - export declare const s2: typeof s0; -+// object literals - export declare const o1: { - a: number; - 1: string; - [s0]: boolean; - }; -+// check element access types - export declare const o1_c4: number; - export declare const o1_c5: string; - export declare const o1_s2: boolean; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitBOM.js b/testdata/baselines/reference/submodule/compiler/emitBOM.js index fd9d92eb3a..d1a68b3e5e 100644 --- a/testdata/baselines/reference/submodule/compiler/emitBOM.js +++ b/testdata/baselines/reference/submodule/compiler/emitBOM.js @@ -10,5 +10,4 @@ var x; //# sourceMappingURL=emitBOM.js.map //// [emitBOM.d.ts] -// JS and d.ts output should have a BOM but not the sourcemap -declare var x: any; +declare var x: any; diff --git a/testdata/baselines/reference/submodule/compiler/emitBOM.js.diff b/testdata/baselines/reference/submodule/compiler/emitBOM.js.diff index 01a4a8fadf..5731187213 100644 --- a/testdata/baselines/reference/submodule/compiler/emitBOM.js.diff +++ b/testdata/baselines/reference/submodule/compiler/emitBOM.js.diff @@ -23,5 +23,4 @@ //// [emitBOM.d.ts] -declare var x: any; -+// JS and d.ts output should have a BOM but not the sourcemap -+declare var x: any; \ No newline at end of file ++declare var x: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js index bb86a95ae1..dcd7eb5ad3 100644 --- a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js +++ b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js @@ -83,7 +83,6 @@ export declare var circularReference: { tags(c: any): any; }; }; -// repro from #15066 export declare class FooItem { foo(): void; name?: string; diff --git a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js.diff b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js.diff index b2dbe1962a..93a883c6db 100644 --- a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js.diff +++ b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js.diff @@ -25,7 +25,4 @@ + tags(c: any): any; }; }; -+// repro from #15066 - export declare class FooItem { - foo(): void; - name?: string; \ No newline at end of file + export declare class FooItem { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js index b6ea007e95..3dfa5c2c71 100644 --- a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js +++ b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js @@ -75,7 +75,6 @@ export declare var noPrivates: { getTags(): void; ps: number; }; -// altered repro from #15066 to add private property export declare class FooItem { foo(): void; name?: string; diff --git a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js.diff b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js.diff index c00eee9d55..70ffad67fd 100644 --- a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js.diff @@ -57,7 +57,6 @@ + getTags(): void; + ps: number; +}; -+// altered repro from #15066 to add private property +export declare class FooItem { + foo(): void; + name?: string; diff --git a/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js b/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js index 24d5efc673..4c61b7d7ba 100644 --- a/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js +++ b/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js @@ -31,7 +31,6 @@ exports.c = { //// [emitMethodCalledNew.d.ts] -// https://github.com/microsoft/TypeScript/issues/55075 export declare const a: { "new"(x: number): number; }; diff --git a/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js.diff b/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js.diff index af82e570f5..3acf938c2e 100644 --- a/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js.diff +++ b/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js.diff @@ -10,12 +10,4 @@ +// https://github.com/microsoft/TypeScript/issues/55075 exports.a = { new(x) { return x + 1; } - }; -@@= skipped -15, +15 lines =@@ - - - //// [emitMethodCalledNew.d.ts] -+// https://github.com/microsoft/TypeScript/issues/55075 - export declare const a: { - "new"(x: number): number; }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js index d1f6d02a06..ea221a5a78 100644 --- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js +++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js @@ -168,4 +168,4 @@ export declare var xxxx9: x11; import { z1 } from "./server"; export declare var z111: z1; import { z2 as z3 } from "./server"; -export declare var z2: z3; // z2 shouldn't give redeclare error +export declare var z2: z3; diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js.diff index eb2109c006..26231b39d7 100644 --- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js.diff +++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js.diff @@ -35,10 +35,3 @@ +const server_9 = require("./server"); exports.z2 = new server_9.z2(); // z2 shouldn't give redeclare error - -@@= skipped -73, +73 lines =@@ - import { z1 } from "./server"; - export declare var z111: z1; - import { z2 as z3 } from "./server"; --export declare var z2: z3; -+export declare var z2: z3; // z2 shouldn't give redeclare error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithExport.js b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithExport.js index 7acbb0c4c6..271be51897 100644 --- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithExport.js +++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithExport.js @@ -99,4 +99,4 @@ export declare var xxxx: number; export declare var xxxx: number; export declare var xxxx: number; export declare var z111: number; -export declare var z2: number; // z2 shouldn't give redeclare error +export declare var z2: number; diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithExport.js.diff index 0c7994d144..3e0f2c5373 100644 --- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithExport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithExport.js.diff @@ -35,10 +35,3 @@ +const server_9 = require("./server"); exports.z2 = server_9.z2; // z2 shouldn't give redeclare error - -@@= skipped -44, +44 lines =@@ - export declare var xxxx: number; - export declare var xxxx: number; - export declare var z111: number; --export declare var z2: number; -+export declare var z2: number; // z2 shouldn't give redeclare error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js index b6304a8680..1a6b211dd4 100644 --- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js +++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js @@ -53,6 +53,6 @@ export declare class C2 implements I2 { prop2: string; } //// [client.d.ts] -import { C, I } from "./server"; // Shouldnt emit I and C2 into the js file and emit C and I in .d.ts file +import { C, I } from "./server"; export type cValInterface = I; export declare var cVal: C; diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js.diff index a87342a45c..5cb9073eb2 100644 --- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js.diff +++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js.diff @@ -25,12 +25,3 @@ +const server_1 = require("./server"); // Shouldnt emit I and C2 into the js file and emit C and I in .d.ts file exports.cVal = new server_1.C(); - -@@= skipped -33, +29 lines =@@ - prop2: string; - } - //// [client.d.ts] --import { C, I } from "./server"; -+import { C, I } from "./server"; // Shouldnt emit I and C2 into the js file and emit C and I in .d.ts file - export type cValInterface = I; - export declare var cVal: C; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/escapedReservedCompilerNamedIdentifier.js b/testdata/baselines/reference/submodule/compiler/escapedReservedCompilerNamedIdentifier.js index f34ef2605e..6ae365348a 100644 --- a/testdata/baselines/reference/submodule/compiler/escapedReservedCompilerNamedIdentifier.js +++ b/testdata/baselines/reference/submodule/compiler/escapedReservedCompilerNamedIdentifier.js @@ -66,7 +66,6 @@ var b5 = o5["_proto__"]; //// [escapedReservedCompilerNamedIdentifier.d.ts] -// double underscores declare var __proto__: number; declare var o: { __proto__: number; @@ -76,7 +75,6 @@ declare var o1: { __proto__: number; }; declare var b1: number; -// Triple underscores declare var ___proto__: number; declare var o2: { ___proto__: number; @@ -86,7 +84,6 @@ declare var o3: { ___proto__: number; }; declare var b3: number; -// One underscore declare var _proto__: number; declare var o4: { _proto__: number; diff --git a/testdata/baselines/reference/submodule/compiler/escapedReservedCompilerNamedIdentifier.js.diff b/testdata/baselines/reference/submodule/compiler/escapedReservedCompilerNamedIdentifier.js.diff deleted file mode 100644 index cd8f3c3795..0000000000 --- a/testdata/baselines/reference/submodule/compiler/escapedReservedCompilerNamedIdentifier.js.diff +++ /dev/null @@ -1,26 +0,0 @@ ---- old.escapedReservedCompilerNamedIdentifier.js -+++ new.escapedReservedCompilerNamedIdentifier.js -@@= skipped -65, +65 lines =@@ - - - //// [escapedReservedCompilerNamedIdentifier.d.ts] -+// double underscores - declare var __proto__: number; - declare var o: { - __proto__: number; -@@= skipped -9, +10 lines =@@ - __proto__: number; - }; - declare var b1: number; -+// Triple underscores - declare var ___proto__: number; - declare var o2: { - ___proto__: number; -@@= skipped -9, +10 lines =@@ - ___proto__: number; - }; - declare var b3: number; -+// One underscore - declare var _proto__: number; - declare var o4: { - _proto__: number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js b/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js index 4f8252f128..a5f9b593d5 100644 --- a/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js +++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js @@ -43,6 +43,5 @@ if (Math.random()) { //// [expandoFunctionBlockShadowing.d.ts] -// https://github.com/microsoft/TypeScript/issues/56538 export declare function X(): void; export declare function Y(): void; diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js.diff index e1e3783a15..fa0b90a7ec 100644 --- a/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js.diff +++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js.diff @@ -12,11 +12,8 @@ function X() { } if (Math.random()) { const X = {}; -@@= skipped -21, +21 lines =@@ - - +@@= skipped -23, +23 lines =@@ //// [expandoFunctionBlockShadowing.d.ts] -+// https://github.com/microsoft/TypeScript/issues/56538 export declare function X(): void; export declare function Y(): void; -export declare namespace Y { diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionNullishProperty.js b/testdata/baselines/reference/submodule/compiler/expandoFunctionNullishProperty.js index 81eda40802..eaa83e486c 100644 --- a/testdata/baselines/reference/submodule/compiler/expandoFunctionNullishProperty.js +++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionNullishProperty.js @@ -56,7 +56,6 @@ export function testUndefined() { //// [expandoFunctionNullishProperty.d.ts] -// mentioned in https://github.com/microsoft/TypeScript/issues/54220 interface TestNull { (): void; readonly prop: null; diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionNullishProperty.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionNullishProperty.js.diff index ed59955bbf..f5d6dc439b 100644 --- a/testdata/baselines/reference/submodule/compiler/expandoFunctionNullishProperty.js.diff +++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionNullishProperty.js.diff @@ -7,12 +7,4 @@ -// mentioned in https://github.com/microsoft/TypeScript/issues/54220 export function testNull() { function inner() { } - inner.prop = null; -@@= skipped -19, +18 lines =@@ - - - //// [expandoFunctionNullishProperty.d.ts] -+// mentioned in https://github.com/microsoft/TypeScript/issues/54220 - interface TestNull { - (): void; - readonly prop: null; \ No newline at end of file + inner.prop = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolProperty.js b/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolProperty.js index 52975d8c78..db168306d0 100644 --- a/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolProperty.js +++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolProperty.js @@ -28,7 +28,6 @@ export function test() { //// [expandoFunctionSymbolProperty.d.ts] -// repro from https://github.com/microsoft/TypeScript/issues/54220 declare const symb: unique symbol; interface TestSymb { (): void; diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolProperty.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolProperty.js.diff deleted file mode 100644 index 5d4ef80890..0000000000 --- a/testdata/baselines/reference/submodule/compiler/expandoFunctionSymbolProperty.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.expandoFunctionSymbolProperty.js -+++ new.expandoFunctionSymbolProperty.js -@@= skipped -27, +27 lines =@@ - - - //// [expandoFunctionSymbolProperty.d.ts] -+// repro from https://github.com/microsoft/TypeScript/issues/54220 - declare const symb: unique symbol; - interface TestSymb { - (): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/exportAssignmentMembersVisibleInAugmentation.js b/testdata/baselines/reference/submodule/compiler/exportAssignmentMembersVisibleInAugmentation.js index 25914247f5..29fdf646b7 100644 --- a/testdata/baselines/reference/submodule/compiler/exportAssignmentMembersVisibleInAugmentation.js +++ b/testdata/baselines/reference/submodule/compiler/exportAssignmentMembersVisibleInAugmentation.js @@ -29,11 +29,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); //// [a.d.ts] declare module "foo" { - function f(): T; // OK + function f(): T; } export {}; //// [b.d.ts] import * as foo from "foo"; declare module "foo" { - function g(): foo.T; // OK + function g(): foo.T; } diff --git a/testdata/baselines/reference/submodule/compiler/exportAssignmentMembersVisibleInAugmentation.js.diff b/testdata/baselines/reference/submodule/compiler/exportAssignmentMembersVisibleInAugmentation.js.diff deleted file mode 100644 index 6dba8723a1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/exportAssignmentMembersVisibleInAugmentation.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.exportAssignmentMembersVisibleInAugmentation.js -+++ new.exportAssignmentMembersVisibleInAugmentation.js -@@= skipped -28, +28 lines =@@ - - //// [a.d.ts] - declare module "foo" { -- function f(): T; -+ function f(): T; // OK - } - export {}; - //// [b.d.ts] - import * as foo from "foo"; - declare module "foo" { -- function g(): foo.T; -+ function g(): foo.T; // OK - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js b/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js index 2d18c16dd8..e1a75d1f0e 100644 --- a/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js +++ b/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js @@ -50,6 +50,6 @@ declare namespace Aaa { declare namespace Bbb { export class SomeType { } - export * from Aaa; // this line causes the nullref + export * from Aaa; } declare var a: Bbb.SomeType; diff --git a/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js.diff b/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js.diff index 532003c1eb..599316d939 100644 --- a/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js.diff +++ b/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js.diff @@ -7,12 +7,3 @@ + export * from Aaa; // this line causes the nullref })(Bbb || (Bbb = {})); var a; - -@@= skipped -16, +17 lines =@@ - declare namespace Bbb { - export class SomeType { - } -- export * from Aaa; -+ export * from Aaa; // this line causes the nullref - } - declare var a: Bbb.SomeType; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js b/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js index 130b60f8b9..f86e7b7e9a 100644 --- a/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js +++ b/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js @@ -70,7 +70,6 @@ export declare class A { static r: any; } //// [exportStarFromEmptyModule_module2.d.ts] -// empty //// [exportStarFromEmptyModule_module3.d.ts] export * from "./exportStarFromEmptyModule_module2"; export * from "./exportStarFromEmptyModule_module1"; diff --git a/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js.diff b/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js.diff index 432060c372..7c33e43513 100644 --- a/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js.diff +++ b/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js.diff @@ -22,12 +22,4 @@ +const X = require("./exportStarFromEmptyModule_module3"); var s; X.A.q; - X.A.r; // Error -@@= skipped -16, +17 lines =@@ - static r: any; - } - //// [exportStarFromEmptyModule_module2.d.ts] -+// empty - //// [exportStarFromEmptyModule_module3.d.ts] - export * from "./exportStarFromEmptyModule_module2"; - export * from "./exportStarFromEmptyModule_module1"; \ No newline at end of file + X.A.r; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/fakeInfinity1.js b/testdata/baselines/reference/submodule/compiler/fakeInfinity1.js index ff02928516..c28497a9fa 100644 --- a/testdata/baselines/reference/submodule/compiler/fakeInfinity1.js +++ b/testdata/baselines/reference/submodule/compiler/fakeInfinity1.js @@ -38,7 +38,6 @@ exports.oops = 123456789123456789123456789123456789123456789123456789; //// [fakeInfinity1.d.ts] -// These are not actually the real infinity. export type PositiveInfinity = 1e999; export type NegativeInfinity = -1e999; export type TypeOfInfinity = typeof Infinity; diff --git a/testdata/baselines/reference/submodule/compiler/fakeInfinity1.js.diff b/testdata/baselines/reference/submodule/compiler/fakeInfinity1.js.diff deleted file mode 100644 index a031cba4d9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/fakeInfinity1.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.fakeInfinity1.js -+++ new.fakeInfinity1.js -@@= skipped -37, +37 lines =@@ - - - //// [fakeInfinity1.d.ts] -+// These are not actually the real infinity. - export type PositiveInfinity = 1e999; - export type NegativeInfinity = -1e999; - export type TypeOfInfinity = typeof Infinity; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/flatArrayNoExcessiveStackDepth.js b/testdata/baselines/reference/submodule/compiler/flatArrayNoExcessiveStackDepth.js index 9464ff1f34..34286aaf03 100644 --- a/testdata/baselines/reference/submodule/compiler/flatArrayNoExcessiveStackDepth.js +++ b/testdata/baselines/reference/submodule/compiler/flatArrayNoExcessiveStackDepth.js @@ -41,11 +41,9 @@ function f(x, y) { //// [flatArrayNoExcessiveStackDepth.d.ts] -// Repro from #43493 declare const foo: unknown[]; declare const bar: string[]; interface Foo extends Array { } -// Repros from comments in #43249 declare const repro_43249: (value: unknown) => void; declare function f(x: FlatArray, y: FlatArray): void; diff --git a/testdata/baselines/reference/submodule/compiler/flatArrayNoExcessiveStackDepth.js.diff b/testdata/baselines/reference/submodule/compiler/flatArrayNoExcessiveStackDepth.js.diff index e8f5602e5e..de12ee2d61 100644 --- a/testdata/baselines/reference/submodule/compiler/flatArrayNoExcessiveStackDepth.js.diff +++ b/testdata/baselines/reference/submodule/compiler/flatArrayNoExcessiveStackDepth.js.diff @@ -8,16 +8,4 @@ -// Repro from #43493 const bar = foo.flatMap(bar => bar); // Repros from comments in #43249 - const repro_43249 = (value) => { -@@= skipped -18, +16 lines =@@ - - - //// [flatArrayNoExcessiveStackDepth.d.ts] -+// Repro from #43493 - declare const foo: unknown[]; - declare const bar: string[]; - interface Foo extends Array { - } -+// Repros from comments in #43249 - declare const repro_43249: (value: unknown) => void; - declare function f(x: FlatArray, y: FlatArray): void; \ No newline at end of file + const repro_43249 = (value) => { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericArray1.js b/testdata/baselines/reference/submodule/compiler/genericArray1.js index db222809bb..c1a5adefa9 100644 --- a/testdata/baselines/reference/submodule/compiler/genericArray1.js +++ b/testdata/baselines/reference/submodule/compiler/genericArray1.js @@ -32,15 +32,4 @@ var lengths = ["a", "b", "c"].map(x => x.length); //// [genericArray1.d.ts] -/* -var n: number[]; - -interface Array { -map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; -} - -interface String{ - length: number; -} -*/ declare var lengths: number[]; diff --git a/testdata/baselines/reference/submodule/compiler/genericArray1.js.diff b/testdata/baselines/reference/submodule/compiler/genericArray1.js.diff deleted file mode 100644 index e90d5f35fc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/genericArray1.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.genericArray1.js -+++ new.genericArray1.js -@@= skipped -31, +31 lines =@@ - - - //// [genericArray1.d.ts] -+/* -+var n: number[]; -+ -+interface Array { -+map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; -+} -+ -+interface String{ -+ length: number; -+} -+*/ - declare var lengths: number[]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses0.js b/testdata/baselines/reference/submodule/compiler/genericClasses0.js index 7d8f8bb484..88bcd39ef8 100644 --- a/testdata/baselines/reference/submodule/compiler/genericClasses0.js +++ b/testdata/baselines/reference/submodule/compiler/genericClasses0.js @@ -22,4 +22,4 @@ declare class C { x: T; } declare var v1: C; -declare var y: string; // should be 'string' +declare var y: string; diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses0.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses0.js.diff index 6c42e160fc..f13a812604 100644 --- a/testdata/baselines/reference/submodule/compiler/genericClasses0.js.diff +++ b/testdata/baselines/reference/submodule/compiler/genericClasses0.js.diff @@ -7,10 +7,4 @@ + x; } var v1; - var y = v1.x; // should be 'string' -@@= skipped -10, +11 lines =@@ - x: T; - } - declare var v1: C; --declare var y: string; -+declare var y: string; // should be 'string' \ No newline at end of file + var y = v1.x; // should be 'string' \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses1.js b/testdata/baselines/reference/submodule/compiler/genericClasses1.js index ce0cfa7573..d5c49af702 100644 --- a/testdata/baselines/reference/submodule/compiler/genericClasses1.js +++ b/testdata/baselines/reference/submodule/compiler/genericClasses1.js @@ -22,4 +22,4 @@ declare class C { x: T; } declare var v1: C; -declare var y: string; // should be 'string' +declare var y: string; diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses1.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses1.js.diff index 4a2761f1fc..c4ee6eee92 100644 --- a/testdata/baselines/reference/submodule/compiler/genericClasses1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/genericClasses1.js.diff @@ -7,10 +7,4 @@ + x; } var v1 = new C(); - var y = v1.x; // should be 'string' -@@= skipped -10, +11 lines =@@ - x: T; - } - declare var v1: C; --declare var y: string; -+declare var y: string; // should be 'string' \ No newline at end of file + var y = v1.x; // should be 'string' \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses2.js b/testdata/baselines/reference/submodule/compiler/genericClasses2.js index 288eeed028..c27caeb9fa 100644 --- a/testdata/baselines/reference/submodule/compiler/genericClasses2.js +++ b/testdata/baselines/reference/submodule/compiler/genericClasses2.js @@ -39,6 +39,6 @@ declare class C { z: Foo; } declare var v1: C; -declare var y: string; // should be 'string' -declare var w: string; // should be 'string' -declare var z: number; // should be 'number' +declare var y: string; +declare var w: string; +declare var z: number; diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses2.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses2.js.diff index b1631843d1..f617bb2ecf 100644 --- a/testdata/baselines/reference/submodule/compiler/genericClasses2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/genericClasses2.js.diff @@ -9,14 +9,4 @@ + z; } var v1; - var y = v1.x; // should be 'string' -@@= skipped -17, +20 lines =@@ - z: Foo; - } - declare var v1: C; --declare var y: string; --declare var w: string; --declare var z: number; -+declare var y: string; // should be 'string' -+declare var w: string; // should be 'string' -+declare var z: number; // should be 'number' \ No newline at end of file + var y = v1.x; // should be 'string' \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses3.js b/testdata/baselines/reference/submodule/compiler/genericClasses3.js index d4641ff334..ac7879316d 100644 --- a/testdata/baselines/reference/submodule/compiler/genericClasses3.js +++ b/testdata/baselines/reference/submodule/compiler/genericClasses3.js @@ -42,6 +42,6 @@ declare class C extends B { x: T; } declare var v2: C; -declare var y: string; // should be 'string' -declare var u: string; // should be 'string' +declare var y: string; +declare var u: string; declare var z: string; diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses3.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses3.js.diff index e8a3a6a883..80d11f4508 100644 --- a/testdata/baselines/reference/submodule/compiler/genericClasses3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/genericClasses3.js.diff @@ -11,13 +11,4 @@ + x; } var v2; - var y = v2.x; // should be 'string' -@@= skipped -18, +21 lines =@@ - x: T; - } - declare var v2: C; --declare var y: string; --declare var u: string; -+declare var y: string; // should be 'string' -+declare var u: string; // should be 'string' - declare var z: string; \ No newline at end of file + var y = v2.x; // should be 'string' \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericDefaults.js b/testdata/baselines/reference/submodule/compiler/genericDefaults.js index 1c6c4a79ca..1f8e74a99a 100644 --- a/testdata/baselines/reference/submodule/compiler/genericDefaults.js +++ b/testdata/baselines/reference/submodule/compiler/genericDefaults.js @@ -893,47 +893,26 @@ declare const d: D; declare const ab: AB; declare const bc: BC; declare const x: any; -// function without type parameters declare function f00(a?: A): A; -// function with a type parameter without a default declare function f01(a?: T): T; -// function with a type paramter with a default declare function f02(a?: T): T; -// function with a type parameter with a default that refers to itself declare function f03(a?: T): T; -// function with a type paramter without a default and a type parameter with a default declare function f04(a?: T, b?: U): [T, U]; -// function with a type parameter without a default and a type parameter with a default that refers to an earlier type parameter declare function f05(a?: T, b?: U): [T, U]; -// function with a type parameter with a default that refers to an earlier type parameter with a default declare function f06(a?: T, b?: U): [T, U]; -// function with a type parameter without a default and a type parameter with a default that refers to an earlier type parameter with a default declare function f07(a?: T, b?: U, c?: V): [T, U, V]; -// function with a type parameter with a default that refers to an earlier type parameter with a constraint declare function f08(a?: T, b?: U): [T, U]; -// function with a type parameter with a constraint and a default that refers to an earlier type parameter declare function f09(a?: T, b?: U): [T, U]; -// function with a type parameter with a constraint and a default that refers to an earlier type parameter with a constraint declare function f10(a?: T, b?: U): [T, U]; -// function with a type parameter with a default that refers to an earier type parameter in a union declare function f11(a?: T, b?: U): [T, U]; -// function with a type parameter with a default that refers to an earlier type parameter in an intersection declare function f12(a?: T, b?: U): [T, U]; -// function with a type parameter with a default that refers to a later type parameter with a default declare function f13(a?: T, b?: U): [T, U]; -// function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default declare function f14(a?: T, b?: U, c?: V): [T, U, V]; -// function with two type parameters with defaults that mutually refer to each other declare function f15(a?: T, b?: U): [T, U]; -// function with a type parameter without a default and two type parameters with defaults that mutually refer to each other declare function f16(a?: T, b?: U, c?: V): [T, U, V]; -// function with a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in a union declare function f17(a?: T, b?: U): [T, U]; -// function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in a union declare function f18(a?: T, b?: U, c?: V): [T, U, V]; -// function with a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in an intersection declare function f19(a?: T, b?: U): [T, U]; -// function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in an intersection declare function f20(a?: T, b?: U, c?: V): [T, U, V]; interface i00 { a: T; @@ -1013,7 +992,6 @@ declare const Derived02c00: Derived02; declare const Derived02c01: Derived02; declare const Derived02c02: Derived02; declare const Derived02c03: Derived02; -// https://github.com/Microsoft/TypeScript/issues/16211 interface Base02 { } interface Base02Constructor { @@ -1051,6 +1029,5 @@ declare const t03c01: [1, 1]; declare const t03c02: [number, number]; declare const t03c03: [1, 1]; declare const t03c04: [number, 1]; -// https://github.com/Microsoft/TypeScript/issues/16221 interface SelfReference> { } diff --git a/testdata/baselines/reference/submodule/compiler/genericDefaults.js.diff b/testdata/baselines/reference/submodule/compiler/genericDefaults.js.diff deleted file mode 100644 index 3217ce445d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/genericDefaults.js.diff +++ /dev/null @@ -1,65 +0,0 @@ ---- old.genericDefaults.js -+++ new.genericDefaults.js -@@= skipped -892, +892 lines =@@ - declare const ab: AB; - declare const bc: BC; - declare const x: any; -+// function without type parameters - declare function f00(a?: A): A; -+// function with a type parameter without a default - declare function f01(a?: T): T; -+// function with a type paramter with a default - declare function f02(a?: T): T; -+// function with a type parameter with a default that refers to itself - declare function f03(a?: T): T; -+// function with a type paramter without a default and a type parameter with a default - declare function f04(a?: T, b?: U): [T, U]; -+// function with a type parameter without a default and a type parameter with a default that refers to an earlier type parameter - declare function f05(a?: T, b?: U): [T, U]; -+// function with a type parameter with a default that refers to an earlier type parameter with a default - declare function f06(a?: T, b?: U): [T, U]; -+// function with a type parameter without a default and a type parameter with a default that refers to an earlier type parameter with a default - declare function f07(a?: T, b?: U, c?: V): [T, U, V]; -+// function with a type parameter with a default that refers to an earlier type parameter with a constraint - declare function f08(a?: T, b?: U): [T, U]; -+// function with a type parameter with a constraint and a default that refers to an earlier type parameter - declare function f09(a?: T, b?: U): [T, U]; -+// function with a type parameter with a constraint and a default that refers to an earlier type parameter with a constraint - declare function f10(a?: T, b?: U): [T, U]; -+// function with a type parameter with a default that refers to an earier type parameter in a union - declare function f11(a?: T, b?: U): [T, U]; -+// function with a type parameter with a default that refers to an earlier type parameter in an intersection - declare function f12(a?: T, b?: U): [T, U]; -+// function with a type parameter with a default that refers to a later type parameter with a default - declare function f13(a?: T, b?: U): [T, U]; -+// function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default - declare function f14(a?: T, b?: U, c?: V): [T, U, V]; -+// function with two type parameters with defaults that mutually refer to each other - declare function f15(a?: T, b?: U): [T, U]; -+// function with a type parameter without a default and two type parameters with defaults that mutually refer to each other - declare function f16(a?: T, b?: U, c?: V): [T, U, V]; -+// function with a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in a union - declare function f17(a?: T, b?: U): [T, U]; -+// function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in a union - declare function f18(a?: T, b?: U, c?: V): [T, U, V]; -+// function with a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in an intersection - declare function f19(a?: T, b?: U): [T, U]; -+// function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in an intersection - declare function f20(a?: T, b?: U, c?: V): [T, U, V]; - interface i00 { - a: T; -@@= skipped -99, +120 lines =@@ - declare const Derived02c01: Derived02; - declare const Derived02c02: Derived02; - declare const Derived02c03: Derived02; -+// https://github.com/Microsoft/TypeScript/issues/16211 - interface Base02 { - } - interface Base02Constructor { -@@= skipped -37, +38 lines =@@ - declare const t03c02: [number, number]; - declare const t03c03: [1, 1]; - declare const t03c04: [number, 1]; -+// https://github.com/Microsoft/TypeScript/issues/16221 - interface SelfReference> { - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericDefaultsErrors.js b/testdata/baselines/reference/submodule/compiler/genericDefaultsErrors.js index a63e76ff60..3166bdc47c 100644 --- a/testdata/baselines/reference/submodule/compiler/genericDefaultsErrors.js +++ b/testdata/baselines/reference/submodule/compiler/genericDefaultsErrors.js @@ -56,42 +56,41 @@ f12("a"); // error //// [genericDefaultsErrors.d.ts] declare const x: any; -declare function f03(): void; // error -declare function f04(): void; // error -declare function f05(): void; // error -declare function f06(): void; // error +declare function f03(): void; +declare function f04(): void; +declare function f05(): void; +declare function f06(): void; declare function f11(): void; declare function f12(a?: U): void; interface i00 { -} // ok +} interface i00 { -} // error +} interface i01 { -} // ok +} interface i01 { -} // error +} interface i04 { -} // error +} interface i05 { -} // error +} interface i06 { -} // error +} interface i07 { -} // error +} interface i08 { -} // error +} interface i09 { } -type i09t00 = i09; // error -type i09t01 = i09<1>; // error -type i09t02 = i09<1, 2>; // ok -type i09t03 = i09<1, 2, 3>; // ok -type i09t04 = i09<1, 2, 3, 4>; // error +type i09t00 = i09; +type i09t01 = i09<1>; +type i09t02 = i09<1, 2>; +type i09t03 = i09<1, 2, 3>; +type i09t04 = i09<1, 2, 3, 4>; interface i10 { x: T; -} // error +} interface i10 { } -// https://github.com/Microsoft/TypeScript/issues/16221 interface SelfReference { } diff --git a/testdata/baselines/reference/submodule/compiler/genericDefaultsErrors.js.diff b/testdata/baselines/reference/submodule/compiler/genericDefaultsErrors.js.diff deleted file mode 100644 index a12ffdcd49..0000000000 --- a/testdata/baselines/reference/submodule/compiler/genericDefaultsErrors.js.diff +++ /dev/null @@ -1,64 +0,0 @@ ---- old.genericDefaultsErrors.js -+++ new.genericDefaultsErrors.js -@@= skipped -55, +55 lines =@@ - - //// [genericDefaultsErrors.d.ts] - declare const x: any; --declare function f03(): void; --declare function f04(): void; --declare function f05(): void; --declare function f06(): void; -+declare function f03(): void; // error -+declare function f04(): void; // error -+declare function f05(): void; // error -+declare function f06(): void; // error - declare function f11(): void; - declare function f12(a?: U): void; - interface i00 { --} -+} // ok - interface i00 { --} -+} // error - interface i01 { --} -+} // ok - interface i01 { --} -+} // error - interface i04 { --} -+} // error - interface i05 { --} -+} // error - interface i06 { --} -+} // error - interface i07 { --} -+} // error - interface i08 { --} -+} // error - interface i09 { - } --type i09t00 = i09; --type i09t01 = i09<1>; --type i09t02 = i09<1, 2>; --type i09t03 = i09<1, 2, 3>; --type i09t04 = i09<1, 2, 3, 4>; -+type i09t00 = i09; // error -+type i09t01 = i09<1>; // error -+type i09t02 = i09<1, 2>; // ok -+type i09t03 = i09<1, 2, 3>; // ok -+type i09t04 = i09<1, 2, 3, 4>; // error - interface i10 { - x: T; --} -+} // error - interface i10 { - } -+// https://github.com/Microsoft/TypeScript/issues/16221 - interface SelfReference { - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctions0.js b/testdata/baselines/reference/submodule/compiler/genericFunctions0.js index d12325725a..76e041f33a 100644 --- a/testdata/baselines/reference/submodule/compiler/genericFunctions0.js +++ b/testdata/baselines/reference/submodule/compiler/genericFunctions0.js @@ -12,4 +12,4 @@ var x = foo(5); // 'x' should be number //// [genericFunctions0.d.ts] declare function foo(x: T): T; -declare var x: number; // 'x' should be number +declare var x: number; diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctions0.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctions0.js.diff deleted file mode 100644 index 61ebab4040..0000000000 --- a/testdata/baselines/reference/submodule/compiler/genericFunctions0.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.genericFunctions0.js -+++ new.genericFunctions0.js -@@= skipped -11, +11 lines =@@ - - //// [genericFunctions0.d.ts] - declare function foo(x: T): T; --declare var x: number; -+declare var x: number; // 'x' should be number \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctions1.js b/testdata/baselines/reference/submodule/compiler/genericFunctions1.js index 77fef891f3..971b0ced04 100644 --- a/testdata/baselines/reference/submodule/compiler/genericFunctions1.js +++ b/testdata/baselines/reference/submodule/compiler/genericFunctions1.js @@ -12,4 +12,4 @@ var x = foo(5); // 'x' should be number //// [genericFunctions1.d.ts] declare function foo(x: T): T; -declare var x: number; // 'x' should be number +declare var x: number; diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctions1.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctions1.js.diff deleted file mode 100644 index 5e0689b9f6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/genericFunctions1.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.genericFunctions1.js -+++ new.genericFunctions1.js -@@= skipped -11, +11 lines =@@ - - //// [genericFunctions1.d.ts] - declare function foo(x: T): T; --declare var x: number; -+declare var x: number; // 'x' should be number \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/generics0.js b/testdata/baselines/reference/submodule/compiler/generics0.js index e10f84a635..104deb9904 100644 --- a/testdata/baselines/reference/submodule/compiler/generics0.js +++ b/testdata/baselines/reference/submodule/compiler/generics0.js @@ -19,4 +19,4 @@ interface G { x: T; } declare var v2: G; -declare var z: string; // 'y' should be of type 'string' +declare var z: string; diff --git a/testdata/baselines/reference/submodule/compiler/generics0.js.diff b/testdata/baselines/reference/submodule/compiler/generics0.js.diff deleted file mode 100644 index 56d0c4af6d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/generics0.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.generics0.js -+++ new.generics0.js -@@= skipped -18, +18 lines =@@ - x: T; - } - declare var v2: G; --declare var z: string; -+declare var z: string; // 'y' should be of type 'string' \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/generics1NoError.js b/testdata/baselines/reference/submodule/compiler/generics1NoError.js index a3c9943bff..333ed2e694 100644 --- a/testdata/baselines/reference/submodule/compiler/generics1NoError.js +++ b/testdata/baselines/reference/submodule/compiler/generics1NoError.js @@ -32,8 +32,8 @@ interface G { x: T; y: U; } -declare var v1: G; // Ok +declare var v1: G; declare var v2: G<{ a: string; -}, C>; // Ok, equivalent to G -declare var v4: G, C>; // Ok +}, C>; +declare var v4: G, C>; diff --git a/testdata/baselines/reference/submodule/compiler/generics1NoError.js.diff b/testdata/baselines/reference/submodule/compiler/generics1NoError.js.diff deleted file mode 100644 index 9585fddc3a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/generics1NoError.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.generics1NoError.js -+++ new.generics1NoError.js -@@= skipped -31, +31 lines =@@ - x: T; - y: U; - } --declare var v1: G; -+declare var v1: G; // Ok - declare var v2: G<{ - a: string; --}, C>; --declare var v4: G, C>; -+}, C>; // Ok, equivalent to G -+declare var v4: G, C>; // Ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/generics2NoError.js b/testdata/baselines/reference/submodule/compiler/generics2NoError.js index bffbfd79cf..08ad9dc34d 100644 --- a/testdata/baselines/reference/submodule/compiler/generics2NoError.js +++ b/testdata/baselines/reference/submodule/compiler/generics2NoError.js @@ -48,8 +48,8 @@ declare var v1: { b: string; c: string; }; -}; // Ok +}; declare var v2: G<{ a: string; -}, C>; // Ok, equivalent to G -declare var v4: G, C>; // Ok +}, C>; +declare var v4: G, C>; diff --git a/testdata/baselines/reference/submodule/compiler/generics2NoError.js.diff b/testdata/baselines/reference/submodule/compiler/generics2NoError.js.diff deleted file mode 100644 index 75263d30ec..0000000000 --- a/testdata/baselines/reference/submodule/compiler/generics2NoError.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.generics2NoError.js -+++ new.generics2NoError.js -@@= skipped -47, +47 lines =@@ - b: string; - c: string; - }; --}; -+}; // Ok - declare var v2: G<{ - a: string; --}, C>; --declare var v4: G, C>; -+}, C>; // Ok, equivalent to G -+declare var v4: G, C>; // Ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/identityRelationNeverTypes.js b/testdata/baselines/reference/submodule/compiler/identityRelationNeverTypes.js index 9378619744..3a97a865d2 100644 --- a/testdata/baselines/reference/submodule/compiler/identityRelationNeverTypes.js +++ b/testdata/baselines/reference/submodule/compiler/identityRelationNeverTypes.js @@ -29,7 +29,6 @@ function f1(state) { //// [identityRelationNeverTypes.d.ts] -// Repro from #47996 type Equals = (() => T extends B ? 1 : 0) extends (() => T extends A ? 1 : 0) ? true : false; declare class State { _context: TContext; diff --git a/testdata/baselines/reference/submodule/compiler/identityRelationNeverTypes.js.diff b/testdata/baselines/reference/submodule/compiler/identityRelationNeverTypes.js.diff index 18ea225e01..a3fc586d45 100644 --- a/testdata/baselines/reference/submodule/compiler/identityRelationNeverTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/identityRelationNeverTypes.js.diff @@ -8,12 +8,4 @@ -// Repro from #47996 function f1(state) { if (state.matches('a') && state.matches('a.b')) { - state; // never -@@= skipped -10, +8 lines =@@ - - - //// [identityRelationNeverTypes.d.ts] -+// Repro from #47996 - type Equals = (() => T extends B ? 1 : 0) extends (() => T extends A ? 1 : 0) ? true : false; - declare class State { - _context: TContext; \ No newline at end of file + state; // never \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType2.js b/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType2.js index 6cfbc7f696..aeb646f1b3 100644 --- a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType2.js +++ b/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType2.js @@ -37,9 +37,6 @@ function fn3() { //// [implicitAnyDeclareFunctionWithoutFormalType2.d.ts] -// generates function fn1(): number; declare function fn1(): number; -// generates function fn2(): any; declare function fn2(): any; -// generates function fn3(); declare function fn3(): any; diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType2.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType2.js.diff deleted file mode 100644 index 3bc8fb0686..0000000000 --- a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType2.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.implicitAnyDeclareFunctionWithoutFormalType2.js -+++ new.implicitAnyDeclareFunctionWithoutFormalType2.js -@@= skipped -36, +36 lines =@@ - - - //// [implicitAnyDeclareFunctionWithoutFormalType2.d.ts] -+// generates function fn1(): number; - declare function fn1(): number; -+// generates function fn2(): any; - declare function fn2(): any; -+// generates function fn3(); - declare function fn3(): any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/importDecl.js b/testdata/baselines/reference/submodule/compiler/importDecl.js index 16ab260e95..498d3db2c3 100644 --- a/testdata/baselines/reference/submodule/compiler/importDecl.js +++ b/testdata/baselines/reference/submodule/compiler/importDecl.js @@ -201,7 +201,7 @@ export declare function foo(): d; import m4 = require("./importDecl_require"); export declare function foo2(): m4.d; //// [importDecl_1.d.ts] -import m4 = require("./importDecl_require"); // Emit used +import m4 = require("./importDecl_require"); export declare var x4: m4.d; export declare var d4: typeof m4.d; export declare var f4: m4.d; @@ -210,11 +210,9 @@ export declare namespace m1 { var d2: typeof m4.d; var f2: m4.d; } -//Emit global only usage import glo_m4 = require("./importDecl_require1"); export declare var useGlo_m4_d4: typeof glo_m4.d; export declare var useGlo_m4_f4: glo_m4.d; -//Emit even when used just in function type import fncOnly_m4 = require("./importDecl_require2"); export declare var useFncOnly_m4_f4: fncOnly_m4.d; export declare namespace usePrivate_m4_m1 { diff --git a/testdata/baselines/reference/submodule/compiler/importDecl.js.diff b/testdata/baselines/reference/submodule/compiler/importDecl.js.diff index 226abcf508..91fad09376 100644 --- a/testdata/baselines/reference/submodule/compiler/importDecl.js.diff +++ b/testdata/baselines/reference/submodule/compiler/importDecl.js.diff @@ -71,25 +71,4 @@ +const multiImport_m4 = require("./importDecl_require"); // Emit used exports.useMultiImport_m4_x4 = multiImport_m4.x; exports.useMultiImport_m4_d4 = multiImport_m4.d; - exports.useMultiImport_m4_f4 = multiImport_m4.foo(); -@@= skipped -36, +36 lines =@@ - import m4 = require("./importDecl_require"); - export declare function foo2(): m4.d; - //// [importDecl_1.d.ts] --import m4 = require("./importDecl_require"); -+import m4 = require("./importDecl_require"); // Emit used - export declare var x4: m4.d; - export declare var d4: typeof m4.d; - export declare var f4: m4.d; -@@= skipped -9, +9 lines =@@ - var d2: typeof m4.d; - var f2: m4.d; - } -+//Emit global only usage - import glo_m4 = require("./importDecl_require1"); - export declare var useGlo_m4_d4: typeof glo_m4.d; - export declare var useGlo_m4_f4: glo_m4.d; -+//Emit even when used just in function type - import fncOnly_m4 = require("./importDecl_require2"); - export declare var useFncOnly_m4_f4: fncOnly_m4.d; - export declare namespace usePrivate_m4_m1 { \ No newline at end of file + exports.useMultiImport_m4_f4 = multiImport_m4.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureAndMappedType.js b/testdata/baselines/reference/submodule/compiler/indexSignatureAndMappedType.js index 1a7d489633..aa6873ef82 100644 --- a/testdata/baselines/reference/submodule/compiler/indexSignatureAndMappedType.js +++ b/testdata/baselines/reference/submodule/compiler/indexSignatureAndMappedType.js @@ -53,8 +53,6 @@ function f3(x, y) { //// [indexSignatureAndMappedType.d.ts] -// A mapped type { [P in K]: X }, where K is a generic type, is related to -// { [key: string]: Y } if X is related to Y. declare function f1(x: { [key: string]: T; }, y: Record): void; @@ -64,7 +62,6 @@ declare function f2(x: { declare function f3(x: { [key: string]: T; }, y: Record): void; -// Repro from #14548 type Dictionary = { [key: string]: string; }; diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureAndMappedType.js.diff b/testdata/baselines/reference/submodule/compiler/indexSignatureAndMappedType.js.diff index 84c830e6fc..f7a4e38889 100644 --- a/testdata/baselines/reference/submodule/compiler/indexSignatureAndMappedType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/indexSignatureAndMappedType.js.diff @@ -7,21 +7,4 @@ -"use strict"; // A mapped type { [P in K]: X }, where K is a generic type, is related to // { [key: string]: Y } if X is related to Y. - function f1(x, y) { -@@= skipped -18, +17 lines =@@ - - - //// [indexSignatureAndMappedType.d.ts] -+// A mapped type { [P in K]: X }, where K is a generic type, is related to -+// { [key: string]: Y } if X is related to Y. - declare function f1(x: { - [key: string]: T; - }, y: Record): void; -@@= skipped -9, +11 lines =@@ - declare function f3(x: { - [key: string]: T; - }, y: Record): void; -+// Repro from #14548 - type Dictionary = { - [key: string]: string; - }; \ No newline at end of file + function f1(x, y) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes3.js b/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes3.js index 224c32b647..5a0ef0f73a 100644 --- a/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes3.js +++ b/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes3.js @@ -316,7 +316,6 @@ baz(makeFoo(Enum.A), makeFoo(Enum.A)); //// [inferFromGenericFunctionReturnTypes3.d.ts] -// Repro from #13594 export declare namespace DiagnosticSeverity { const Error = 1; const Warning = 2; @@ -330,7 +329,6 @@ export interface Diagnostic { source?: string; message: string; } -// Repro from #27074 interface OK { kind: "OK"; value: T; diff --git a/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes3.js.diff b/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes3.js.diff index 5a8f27370b..e9bd825c06 100644 --- a/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes3.js.diff @@ -10,20 +10,4 @@ +var DiagnosticSeverity; (function (DiagnosticSeverity) { DiagnosticSeverity.Error = 1; - DiagnosticSeverity.Warning = 2; -@@= skipped -80, +81 lines =@@ - - - //// [inferFromGenericFunctionReturnTypes3.d.ts] -+// Repro from #13594 - export declare namespace DiagnosticSeverity { - const Error = 1; - const Warning = 2; -@@= skipped -13, +14 lines =@@ - source?: string; - message: string; - } -+// Repro from #27074 - interface OK { - kind: "OK"; - value: T; \ No newline at end of file + DiagnosticSeverity.Warning = 2; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js b/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js index aceb8b5452..1f69c33d6a 100644 --- a/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js +++ b/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js @@ -510,24 +510,18 @@ function isEmptyString(x) { //// [inferTypePredicates.d.ts] -// https://github.com/microsoft/TypeScript/issues/16069 declare const numsOrNull: (number | null)[]; -declare const filteredNumsTruthy: number[]; // should error -declare const filteredNumsNonNullish: number[]; // should ok -declare const evenSquaresInline: number[]; // tests truthiness, not non-nullishness +declare const filteredNumsTruthy: number[]; +declare const filteredNumsNonNullish: number[]; +declare const evenSquaresInline: number[]; declare const isTruthy: (x: number | null) => boolean; declare const evenSquares: number[]; declare const evenSquaresNonNull: number[]; declare function isNonNull(x: number | null): x is number; -// factoring out a boolean works thanks to aliased discriminants declare function isNonNullVar(x: number | null): x is number; declare function isNonNullGeneric(x: T): x is T & ({} | undefined); -// Type guards can flow between functions declare const myGuard: (o: string | undefined) => o is string; declare const mySecondGuard: (o: string | undefined) => o is string; -// https://github.com/microsoft/TypeScript/issues/16069#issuecomment-1327449914 -// This doesn't work because the false condition prevents type guard inference. -// Breaking up the filters does work. type MyObj = { data?: string; }; @@ -537,7 +531,6 @@ type MyArray = { declare const myArray: MyArray; declare const result: any[][]; declare const result2: any[][]; -// https://github.com/microsoft/TypeScript/issues/16069#issuecomment-1183547889 type Foo = { foo: string; }; @@ -545,37 +538,25 @@ type Bar = Foo & { bar: string; }; declare const list: (Foo | Bar)[]; -declare const resultBars: Bar[]; // should ok +declare const resultBars: Bar[]; declare function isBarNonNull(x: Foo | Bar | null): x is Bar; declare const fooOrBar: Foo | Bar; -// https://github.com/microsoft/TypeScript/issues/38390#issuecomment-626019466 -// Ryan's example (currently legal): declare const a: string[]; -// Defer to explicit type guards, even when they're incorrect. declare function backwardsGuard(x: number | string): x is number; -// Partition tests. The "false" case matters. declare function isString(x: string | number): x is string; declare let strOrNum: string | number; declare function flakyIsString(x: string | number): boolean; declare function isDate(x: object): x is Date; declare function flakyIsDate(x: object): boolean; declare let maybeDate: object; -// This should not infer a type guard since the value on which we do the refinement -// is not related to the original parameter. declare function irrelevantIsNumber(x: string | number): boolean; declare function irrelevantIsNumberDestructuring(x: string | number): boolean; -// Cannot infer a type guard for either param because of the false case. declare function areBothNums(x: string | number, y: string | number): boolean; -// Could potentially infer a type guard here but it would require more bookkeeping. declare function doubleReturn(x: string | number): boolean; declare function guardsOneButNotOthers(a: string | number, b: string | number, c: string | number): b is string; -// Checks that there are no string escaping issues declare function dunderguard(__x: number | string): __x is string; -// could infer a type guard here but it doesn't seem that helpful. declare const booleanIdentity: (x: boolean) => boolean; -// we infer "x is number | true" which is accurate but of debatable utility. declare const numOrBoolean: (x: number | boolean) => x is number | true; -// inferred guards in methods interface NumberInferrer { isNumber(x: number | string): x is number; } @@ -584,7 +565,6 @@ declare class Inferrer implements NumberInferrer { } declare let numOrStr: number | string; declare const inf: Inferrer; -// Type predicates are not inferred on "this" declare class C1 { isC2(): boolean; } @@ -596,14 +576,11 @@ declare function doNotRefineDestructuredParam({ x, y }: { x: number | null; y: number; }): boolean; -// The type predicate must remain valid when the function is called with subtypes. declare function isShortString(x: unknown): boolean; declare let str: string; declare function isStringFromUnknown(x: unknown): x is string; -// infer a union type declare function isNumOrStr(x: unknown): x is string | number; declare let unk: unknown; -// A function can be a type predicate even if it throws. declare function assertAndPredicate(x: string | number | Date): x is string; declare let snd: string | number | Date; declare function isNumberWithThis(this: Date, x: number | string): x is number; @@ -611,7 +588,6 @@ declare function narrowFromAny(x: any): x is number; declare const noInferenceFromRest: (f_0: "a" | "b") => boolean; declare const noInferenceFromImpossibleRest: () => boolean; declare function inferWithRest(x: string | null, ...f: ["a", "b"]): x is string; -// https://github.com/microsoft/TypeScript/issues/57947 declare const foobar: { type: "foo"; foo: number; @@ -629,6 +605,5 @@ declare const foobarPred: (fb: { type: "foo"; foo: number; }; -// https://github.com/microsoft/TypeScript/issues/60778 declare const arrTest: Array; declare function isEmptyString(x: unknown): x is ""; diff --git a/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js.diff b/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js.diff index e1f8407d9d..211a178dc8 100644 --- a/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js.diff +++ b/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js.diff @@ -33,102 +33,7 @@ } if (c.isC2()) { let c2 = c; // should error -@@= skipped -71, +68 lines =@@ - - - //// [inferTypePredicates.d.ts] -+// https://github.com/microsoft/TypeScript/issues/16069 - declare const numsOrNull: (number | null)[]; --declare const filteredNumsTruthy: number[]; --declare const filteredNumsNonNullish: number[]; --declare const evenSquaresInline: number[]; -+declare const filteredNumsTruthy: number[]; // should error -+declare const filteredNumsNonNullish: number[]; // should ok -+declare const evenSquaresInline: number[]; // tests truthiness, not non-nullishness - declare const isTruthy: (x: number | null) => boolean; - declare const evenSquares: number[]; - declare const evenSquaresNonNull: number[]; - declare function isNonNull(x: number | null): x is number; -+// factoring out a boolean works thanks to aliased discriminants - declare function isNonNullVar(x: number | null): x is number; - declare function isNonNullGeneric(x: T): x is T & ({} | undefined); -+// Type guards can flow between functions - declare const myGuard: (o: string | undefined) => o is string; - declare const mySecondGuard: (o: string | undefined) => o is string; -+// https://github.com/microsoft/TypeScript/issues/16069#issuecomment-1327449914 -+// This doesn't work because the false condition prevents type guard inference. -+// Breaking up the filters does work. - type MyObj = { - data?: string; - }; -@@= skipped -21, +27 lines =@@ - declare const myArray: MyArray; - declare const result: any[][]; - declare const result2: any[][]; -+// https://github.com/microsoft/TypeScript/issues/16069#issuecomment-1183547889 - type Foo = { - foo: string; - }; -@@= skipped -7, +8 lines =@@ - bar: string; - }; - declare const list: (Foo | Bar)[]; --declare const resultBars: Bar[]; -+declare const resultBars: Bar[]; // should ok - declare function isBarNonNull(x: Foo | Bar | null): x is Bar; - declare const fooOrBar: Foo | Bar; -+// https://github.com/microsoft/TypeScript/issues/38390#issuecomment-626019466 -+// Ryan's example (currently legal): - declare const a: string[]; -+// Defer to explicit type guards, even when they're incorrect. - declare function backwardsGuard(x: number | string): x is number; -+// Partition tests. The "false" case matters. - declare function isString(x: string | number): x is string; - declare let strOrNum: string | number; - declare function flakyIsString(x: string | number): boolean; - declare function isDate(x: object): x is Date; - declare function flakyIsDate(x: object): boolean; - declare let maybeDate: object; -+// This should not infer a type guard since the value on which we do the refinement -+// is not related to the original parameter. - declare function irrelevantIsNumber(x: string | number): boolean; - declare function irrelevantIsNumberDestructuring(x: string | number): boolean; -+// Cannot infer a type guard for either param because of the false case. - declare function areBothNums(x: string | number, y: string | number): boolean; -+// Could potentially infer a type guard here but it would require more bookkeeping. - declare function doubleReturn(x: string | number): boolean; - declare function guardsOneButNotOthers(a: string | number, b: string | number, c: string | number): b is string; -+// Checks that there are no string escaping issues - declare function dunderguard(__x: number | string): __x is string; -+// could infer a type guard here but it doesn't seem that helpful. - declare const booleanIdentity: (x: boolean) => boolean; -+// we infer "x is number | true" which is accurate but of debatable utility. - declare const numOrBoolean: (x: number | boolean) => x is number | true; -+// inferred guards in methods - interface NumberInferrer { - isNumber(x: number | string): x is number; - } -@@= skipped -27, +39 lines =@@ - } - declare let numOrStr: number | string; - declare const inf: Inferrer; -+// Type predicates are not inferred on "this" - declare class C1 { - isC2(): boolean; - } -@@= skipped -11, +12 lines =@@ - x: number | null; - y: number; - }): boolean; -+// The type predicate must remain valid when the function is called with subtypes. - declare function isShortString(x: unknown): boolean; - declare let str: string; - declare function isStringFromUnknown(x: unknown): x is string; -+// infer a union type - declare function isNumOrStr(x: unknown): x is string | number; - declare let unk: unknown; -+// A function can be a type predicate even if it throws. - declare function assertAndPredicate(x: string | number | Date): x is string; +@@= skipped -146, +143 lines =@@ declare let snd: string | number | Date; declare function isNumberWithThis(this: Date, x: number | string): x is number; declare function narrowFromAny(x: any): x is number; @@ -137,11 +42,9 @@ +declare const noInferenceFromRest: (f_0: "a" | "b") => boolean; +declare const noInferenceFromImpossibleRest: () => boolean; declare function inferWithRest(x: string | null, ...f: ["a", "b"]): x is string; -+// https://github.com/microsoft/TypeScript/issues/57947 declare const foobar: { type: "foo"; - foo: number; -@@= skipped -19, +23 lines =@@ +@@= skipped -10, +10 lines =@@ type: "bar"; bar: string; }; @@ -155,7 +58,4 @@ +}) => fb is { type: "foo"; foo: number; - }; -+// https://github.com/microsoft/TypeScript/issues/60778 - declare const arrTest: Array; - declare function isEmptyString(x: unknown): x is ""; \ No newline at end of file + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js b/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js index 99824f7bfa..d1ffb0cc77 100644 --- a/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js +++ b/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js @@ -68,7 +68,7 @@ class Bar { //// [initializerWithThisPropertyAccess.d.ts] declare class A { a: number; - b: number; // Error + b: number; c: () => number; d: number; constructor(); @@ -80,7 +80,6 @@ declare class C { a: number; b: number; } -// Repro from #37979 declare class Foo { private bar; readonly barProp: boolean; diff --git a/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js.diff b/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js.diff index 3815821550..8148ce045f 100644 --- a/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js.diff +++ b/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js.diff @@ -48,19 +48,8 @@ } - //// [initializerWithThisPropertyAccess.d.ts] - declare class A { - a: number; -- b: number; -+ b: number; // Error - c: () => number; - d: number; - constructor(); -@@= skipped -49, +44 lines =@@ - a: number; - b: number; +@@= skipped -51, +46 lines =@@ } -+// Repro from #37979 declare class Foo { private bar; - readonly barProp = false; diff --git a/testdata/baselines/reference/submodule/compiler/inlineMappedTypeModifierDeclarationEmit.js b/testdata/baselines/reference/submodule/compiler/inlineMappedTypeModifierDeclarationEmit.js index 2fe83e2651..4e74e29b74 100644 --- a/testdata/baselines/reference/submodule/compiler/inlineMappedTypeModifierDeclarationEmit.js +++ b/testdata/baselines/reference/submodule/compiler/inlineMappedTypeModifierDeclarationEmit.js @@ -63,9 +63,7 @@ exports.processedInternally2 = wrappedTest2({}, "a"); //// [other.d.ts] -// how Omit from lib is defined type OmitReal = Pick>; -// what we see when we hover it type OmitUnveiled = { [P in Exclude]: T[P]; }; @@ -116,9 +114,7 @@ index.d.ts(1,144): error TS2304: Cannot find name 'T_1'. }; ==== other.d.ts (0 errors) ==== - // how Omit from lib is defined type OmitReal = Pick>; - // what we see when we hover it type OmitUnveiled = { [P in Exclude]: T[P]; }; diff --git a/testdata/baselines/reference/submodule/compiler/inlineMappedTypeModifierDeclarationEmit.js.diff b/testdata/baselines/reference/submodule/compiler/inlineMappedTypeModifierDeclarationEmit.js.diff index c2c0db9a6f..b681d7c7c2 100644 --- a/testdata/baselines/reference/submodule/compiler/inlineMappedTypeModifierDeclarationEmit.js.diff +++ b/testdata/baselines/reference/submodule/compiler/inlineMappedTypeModifierDeclarationEmit.js.diff @@ -9,17 +9,7 @@ function wrappedTest1(obj, k) { return (0, other_1.test1)(obj, k); } -@@= skipped -12, +12 lines =@@ - - - //// [other.d.ts] -+// how Omit from lib is defined - type OmitReal = Pick>; -+// what we see when we hover it - type OmitUnveiled = { - [P in Exclude]: T[P]; - }; -@@= skipped -8, +10 lines =@@ +@@= skipped -20, +20 lines =@@ export declare function test2(obj: T, k: K): OmitUnveiled; export {}; //// [index.d.ts] @@ -63,9 +53,7 @@ + }; + +==== other.d.ts (0 errors) ==== -+ // how Omit from lib is defined + type OmitReal = Pick>; -+ // what we see when we hover it + type OmitUnveiled = { + [P in Exclude]: T[P]; + }; diff --git a/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js b/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js index d92fcdc079..a282da3696 100644 --- a/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js +++ b/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js @@ -23,7 +23,6 @@ const x2 = f2({}, {}, {}, {}); // Z<{}, string[]> //// [instantiatedTypeAliasDisplay.d.ts] -// Repros from #12066 interface X { a: A; } @@ -33,5 +32,5 @@ interface Y { type Z = X | Y; declare function f1(): Z; declare function f2(a: A, b: B, c: C, d: D): Z; -declare const x1: Z; // Z -declare const x2: Z<{}, string[]>; // Z<{}, string[]> +declare const x1: Z; +declare const x2: Z<{}, string[]>; diff --git a/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js.diff b/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js.diff index 8d8e2f6c06..d53a7d7398 100644 --- a/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js.diff +++ b/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js.diff @@ -7,18 +7,3 @@ -// Repros from #12066 const x1 = f1(); // Z const x2 = f2({}, {}, {}, {}); // Z<{}, string[]> - - - //// [instantiatedTypeAliasDisplay.d.ts] -+// Repros from #12066 - interface X { - a: A; - } -@@= skipped -15, +15 lines =@@ - type Z = X | Y; - declare function f1(): Z; - declare function f2(a: A, b: B, c: C, d: D): Z; --declare const x1: Z; --declare const x2: Z<{}, string[]>; -+declare const x1: Z; // Z -+declare const x2: Z<{}, string[]>; // Z<{}, string[]> \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/intrinsics.js b/testdata/baselines/reference/submodule/compiler/intrinsics.js index fac9e7f3b7..8fb4f5774c 100644 --- a/testdata/baselines/reference/submodule/compiler/intrinsics.js +++ b/testdata/baselines/reference/submodule/compiler/intrinsics.js @@ -31,7 +31,7 @@ var foo; //// [intrinsics.d.ts] -declare var hasOwnProperty: hasOwnProperty; // Error +declare var hasOwnProperty: hasOwnProperty; declare namespace m1 { var __proto__: any; } diff --git a/testdata/baselines/reference/submodule/compiler/intrinsics.js.diff b/testdata/baselines/reference/submodule/compiler/intrinsics.js.diff deleted file mode 100644 index 2326196cfe..0000000000 --- a/testdata/baselines/reference/submodule/compiler/intrinsics.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.intrinsics.js -+++ new.intrinsics.js -@@= skipped -30, +30 lines =@@ - - - //// [intrinsics.d.ts] --declare var hasOwnProperty: hasOwnProperty; -+declare var hasOwnProperty: hasOwnProperty; // Error - declare namespace m1 { - var __proto__: any; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/isDeclarationVisibleNodeKinds.js b/testdata/baselines/reference/submodule/compiler/isDeclarationVisibleNodeKinds.js index 8208c3a1e5..6247281d70 100644 --- a/testdata/baselines/reference/submodule/compiler/isDeclarationVisibleNodeKinds.js +++ b/testdata/baselines/reference/submodule/compiler/isDeclarationVisibleNodeKinds.js @@ -141,41 +141,33 @@ var schema; //// [isDeclarationVisibleNodeKinds.d.ts] -// Function types declare namespace schema { function createValidator1(schema: any): (data: T) => T; } -// Constructor types declare namespace schema { function createValidator2(schema: any): new (data: T) => T; } -// union types declare namespace schema { function createValidator3(schema: any): number | { new (data: T): T; }; } -// Array types declare namespace schema { function createValidator4(schema: any): { new (data: T): T; }[]; } -// TypeLiterals declare namespace schema { function createValidator5(schema: any): { new (data: T): T; }; } -// Tuple types declare namespace schema { function createValidator6(schema: any): [new (data: T) => T, number]; } -// Paren Types declare namespace schema { function createValidator7(schema: any): (new (data: T) => T)[]; } -// Type reference declare namespace schema { function createValidator8(schema: any): Array<{ (data: T): T; diff --git a/testdata/baselines/reference/submodule/compiler/isDeclarationVisibleNodeKinds.js.diff b/testdata/baselines/reference/submodule/compiler/isDeclarationVisibleNodeKinds.js.diff deleted file mode 100644 index e3542ed412..0000000000 --- a/testdata/baselines/reference/submodule/compiler/isDeclarationVisibleNodeKinds.js.diff +++ /dev/null @@ -1,44 +0,0 @@ ---- old.isDeclarationVisibleNodeKinds.js -+++ new.isDeclarationVisibleNodeKinds.js -@@= skipped -140, +140 lines =@@ - - - //// [isDeclarationVisibleNodeKinds.d.ts] -+// Function types - declare namespace schema { - function createValidator1(schema: any): (data: T) => T; - } -+// Constructor types - declare namespace schema { - function createValidator2(schema: any): new (data: T) => T; - } -+// union types - declare namespace schema { - function createValidator3(schema: any): number | { - new (data: T): T; - }; - } -+// Array types - declare namespace schema { - function createValidator4(schema: any): { - new (data: T): T; - }[]; - } -+// TypeLiterals - declare namespace schema { - function createValidator5(schema: any): { - new (data: T): T; - }; - } -+// Tuple types - declare namespace schema { - function createValidator6(schema: any): [new (data: T) => T, number]; - } -+// Paren Types - declare namespace schema { - function createValidator7(schema: any): (new (data: T) => T)[]; - } -+// Type reference - declare namespace schema { - function createValidator8(schema: any): Array<{ - (data: T): T; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsAugmentation.js b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsAugmentation.js index 00a07df110..63c19f53ac 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsAugmentation.js +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsAugmentation.js @@ -32,7 +32,7 @@ export function child1(prototype) { //// [parent.d.ts] -import './child1'; // this import should still exist in some form in the output, since it augments this module +import './child1'; export declare class ParentThing implements ParentThing { } //// [child1.d.ts] diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsAugmentation.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsAugmentation.js.diff index 4003acdbbe..8e5ccc55fe 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsAugmentation.js.diff +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsAugmentation.js.diff @@ -7,7 +7,7 @@ + + +//// [parent.d.ts] -+import './child1'; // this import should still exist in some form in the output, since it augments this module ++import './child1'; +export declare class ParentThing implements ParentThing { +} +//// [child1.d.ts] diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js index e6bf1aa138..95f0b751ff 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js @@ -248,7 +248,6 @@ export declare const bigIntConstBad2: bigint; export declare const bigIntConstBad3 = 1n; export declare const stringConst = "s"; export declare const stringConstBad: string; -// These are just strings export declare const templateConstOk1 = "s"; export declare const templateConstNotOk2: string; export declare const templateConstNotOk3 = "s1 - S"; @@ -268,7 +267,6 @@ export declare let templateLetOk1: string; export declare let templateLetOk2: string; export declare let templateLetOk3: string; export declare let templateLetOk4: string; -// As const export declare let numberLetAsConst: 1; export declare let bigIntLetAsConst: 1n; export declare let stringLetAsConst: "s"; diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js.diff index 6d4f6454a3..6105d1f7c4 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js.diff +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsExpressions.js.diff @@ -17,7 +17,6 @@ +export declare const bigIntConstBad3 = 1n; +export declare const stringConst = "s"; +export declare const stringConstBad: string; -+// These are just strings +export declare const templateConstOk1 = "s"; +export declare const templateConstNotOk2: string; +export declare const templateConstNotOk3 = "s1 - S"; @@ -37,7 +36,6 @@ +export declare let templateLetOk2: string; +export declare let templateLetOk3: string; +export declare let templateLetOk4: string; -+// As const +export declare let numberLetAsConst: 1; +export declare let bigIntLetAsConst: 1n; +export declare let stringLetAsConst: "s"; diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsReturnTypes.js b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsReturnTypes.js index c33322c504..b51c38dc6d 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsReturnTypes.js +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsReturnTypes.js @@ -364,24 +364,20 @@ export class FnParamsExportedClass { //// [isolatedDeclarationErrorsReturnTypes.d.ts] -// Function Variables export declare const fnExpressionConstVariable: () => number; export declare const fnArrowConstVariable: () => string; export declare let fnExpressionLetVariable: () => number; export declare let fnArrowLetVariable: () => string; export declare var fnExpressionVarVariable: () => number; export declare var fnArrowVarVariable: () => string; -// No Errors export declare const fnExpressionConstVariableOk: () => number; export declare const fnArrowConstVariableOk: (cb?: () => void) => string; export declare let fnExpressionLetVariableOk: () => number; export declare let fnArrowLetVariableOk: (cb?: () => void) => string; export declare var fnExpressionVarVariableOk: () => number; export declare var fnArrowVarVariableOk: (cb?: () => void) => string; -// Function Fields export declare class ExportedClass { #private; - // Should Error fnExpression: () => number; fnArrow: () => string; protected fnExpressionProtected: () => number; @@ -390,7 +386,6 @@ export declare class ExportedClass { static fnStaticArrow: () => string; protected static fnStaticExpressionProtected: () => number; protected static fnStaticArrowProtected: () => string; - // Have annotation, so ok fnExpressionOk: () => number; fnArrowOK: () => string; protected fnExpressionProtectedOk: () => number; @@ -399,13 +394,11 @@ export declare class ExportedClass { static fnStaticArrowOk: () => string; protected static fnStaticExpressionProtectedOk: () => number; protected static fnStaticArrowProtectedOk: () => string; - // No Error not in declarations private fnExpressionPrivate; private fnArrowPrivate; private static fnStaticExpressionPrivate; private static fnStaticArrowPrivate; } -// Should error declare class IndirectlyExportedClass { #private; fnExpression: () => number; @@ -420,22 +413,18 @@ declare class IndirectlyExportedClass { private static fnStaticArrowPrivate; } export declare const instance: IndirectlyExportedClass; -// Function parameters -// In Function Variables - No annotations export declare const fnParamExpressionConstVariable: (cb?: () => void) => number; export declare const fnParamArrowConstVariable: (cb?: () => number) => string; export declare let fnParamExpressionLetVariable: (cb?: () => void) => number; export declare let fnParamArrowLetVariable: (cb?: () => number) => string; export declare var fnParamExpressionVarVariable: (cb?: () => void) => number; export declare var fnParamArrowVarVariable: (cb?: () => number) => string; -// In Function Variables - No annotations on parameter export declare const fnParamExpressionConstVariableOwnerHasReturnType: (cb?: () => void) => number; export declare const fnParamArrowConstVariableOwnerHasReturnType: (cb?: () => void) => string; export declare let fnParamExpressionLetVariableOwnerHasReturnType: (cb?: () => void) => number; export declare let fnParamArrowLetVariableOwnerHasReturnType: (cb?: () => void) => string; export declare var fnParamExpressionVarVariableOwnerHasReturnType: (cb?: () => void) => number; export declare var fnParamArrowVarVariableOwnerHasReturnType: (cb?: () => void) => string; -// No Errors export declare const fnParamExpressionConstVariableOk: (cb?: () => void) => number; export declare const fnParamArrowConstVariableOk: (cb?: () => void) => string; export declare let fnParamExpressionLetVariableOk: (cb?: () => void) => number; @@ -448,10 +437,8 @@ export declare let fnParamExpressionLetVariableInternal: (cb?: () => void) => nu export declare let fnParamArrowLetVariableInternal: (cb?: () => number) => string; export declare var fnParamExpressionVarVariableInternal: (cb?: () => void) => number; export declare var fnParamArrowVarVariableInternal: (cb?: () => number) => string; -// In Function Fields export declare class FnParamsExportedClass { #private; - // Should Error fnExpression: (cb?: () => void) => number; fnArrow: (cb?: () => void) => string; protected fnExpressionProtected: (cb?: () => void) => number; @@ -460,7 +447,6 @@ export declare class FnParamsExportedClass { static fnStaticArrow: (cb?: () => void) => string; protected static fnStaticExpressionProtected: (cb?: () => void) => number; protected static fnStaticArrowProtected: (cb?: () => void) => string; - // Have annotation on owner fnExpressionMethodHasReturn: (cb?: () => void) => number; fnArrowMethodHasReturn: (cb?: () => void) => string; protected fnExpressionProtectedMethodHasReturn: (cb?: () => void) => number; @@ -469,7 +455,6 @@ export declare class FnParamsExportedClass { static fnStaticArrowMethodHasReturn: (cb?: () => void) => string; protected static fnStaticExpressionProtectedMethodHasReturn: (cb?: () => void) => number; protected static fnStaticArrowProtectedMethodHasReturn: (cb?: () => void) => string; - // Have annotation only on parameter fnExpressionOnlyOnParam: (cb?: () => void) => number; fnArrowOnlyOnParam: (cb?: () => void) => string; protected fnExpressionProtectedOnlyOnParam: (cb?: () => void) => number; @@ -478,7 +463,6 @@ export declare class FnParamsExportedClass { static fnStaticArrowOnlyOnParam: (cb?: () => void) => string; protected static fnStaticExpressionProtectedOnlyOnParam: (cb?: () => void) => number; protected static fnStaticArrowProtectedOnlyOnParam: (cb?: () => void) => string; - // Have annotation, so ok fnExpressionOk: (cb?: () => void) => number; fnArrowOK: (cb?: () => void) => string; protected fnExpressionProtectedOk: (cb?: () => void) => number; @@ -487,7 +471,6 @@ export declare class FnParamsExportedClass { static fnStaticArrowOk: (cb?: () => void) => string; protected static fnStaticExpressionProtectedOk: (cb?: () => void) => number; protected static fnStaticArrowProtectedOk: (cb?: () => void) => string; - // No Error, not in declarations private fnExpressionPrivate; private fnArrowPrivate; private static fnStaticExpressionPrivate; diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsReturnTypes.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsReturnTypes.js.diff index 771a565f78..230a0d1c7a 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsReturnTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationErrorsReturnTypes.js.diff @@ -7,24 +7,20 @@ + + +//// [isolatedDeclarationErrorsReturnTypes.d.ts] -+// Function Variables +export declare const fnExpressionConstVariable: () => number; +export declare const fnArrowConstVariable: () => string; +export declare let fnExpressionLetVariable: () => number; +export declare let fnArrowLetVariable: () => string; +export declare var fnExpressionVarVariable: () => number; +export declare var fnArrowVarVariable: () => string; -+// No Errors +export declare const fnExpressionConstVariableOk: () => number; +export declare const fnArrowConstVariableOk: (cb?: () => void) => string; +export declare let fnExpressionLetVariableOk: () => number; +export declare let fnArrowLetVariableOk: (cb?: () => void) => string; +export declare var fnExpressionVarVariableOk: () => number; +export declare var fnArrowVarVariableOk: (cb?: () => void) => string; -+// Function Fields +export declare class ExportedClass { + #private; -+ // Should Error + fnExpression: () => number; + fnArrow: () => string; + protected fnExpressionProtected: () => number; @@ -33,7 +29,6 @@ + static fnStaticArrow: () => string; + protected static fnStaticExpressionProtected: () => number; + protected static fnStaticArrowProtected: () => string; -+ // Have annotation, so ok + fnExpressionOk: () => number; + fnArrowOK: () => string; + protected fnExpressionProtectedOk: () => number; @@ -42,13 +37,11 @@ + static fnStaticArrowOk: () => string; + protected static fnStaticExpressionProtectedOk: () => number; + protected static fnStaticArrowProtectedOk: () => string; -+ // No Error not in declarations + private fnExpressionPrivate; + private fnArrowPrivate; + private static fnStaticExpressionPrivate; + private static fnStaticArrowPrivate; +} -+// Should error +declare class IndirectlyExportedClass { + #private; + fnExpression: () => number; @@ -63,22 +56,18 @@ + private static fnStaticArrowPrivate; +} +export declare const instance: IndirectlyExportedClass; -+// Function parameters -+// In Function Variables - No annotations +export declare const fnParamExpressionConstVariable: (cb?: () => void) => number; +export declare const fnParamArrowConstVariable: (cb?: () => number) => string; +export declare let fnParamExpressionLetVariable: (cb?: () => void) => number; +export declare let fnParamArrowLetVariable: (cb?: () => number) => string; +export declare var fnParamExpressionVarVariable: (cb?: () => void) => number; +export declare var fnParamArrowVarVariable: (cb?: () => number) => string; -+// In Function Variables - No annotations on parameter +export declare const fnParamExpressionConstVariableOwnerHasReturnType: (cb?: () => void) => number; +export declare const fnParamArrowConstVariableOwnerHasReturnType: (cb?: () => void) => string; +export declare let fnParamExpressionLetVariableOwnerHasReturnType: (cb?: () => void) => number; +export declare let fnParamArrowLetVariableOwnerHasReturnType: (cb?: () => void) => string; +export declare var fnParamExpressionVarVariableOwnerHasReturnType: (cb?: () => void) => number; +export declare var fnParamArrowVarVariableOwnerHasReturnType: (cb?: () => void) => string; -+// No Errors +export declare const fnParamExpressionConstVariableOk: (cb?: () => void) => number; +export declare const fnParamArrowConstVariableOk: (cb?: () => void) => string; +export declare let fnParamExpressionLetVariableOk: (cb?: () => void) => number; @@ -91,10 +80,8 @@ +export declare let fnParamArrowLetVariableInternal: (cb?: () => number) => string; +export declare var fnParamExpressionVarVariableInternal: (cb?: () => void) => number; +export declare var fnParamArrowVarVariableInternal: (cb?: () => number) => string; -+// In Function Fields +export declare class FnParamsExportedClass { + #private; -+ // Should Error + fnExpression: (cb?: () => void) => number; + fnArrow: (cb?: () => void) => string; + protected fnExpressionProtected: (cb?: () => void) => number; @@ -103,7 +90,6 @@ + static fnStaticArrow: (cb?: () => void) => string; + protected static fnStaticExpressionProtected: (cb?: () => void) => number; + protected static fnStaticArrowProtected: (cb?: () => void) => string; -+ // Have annotation on owner + fnExpressionMethodHasReturn: (cb?: () => void) => number; + fnArrowMethodHasReturn: (cb?: () => void) => string; + protected fnExpressionProtectedMethodHasReturn: (cb?: () => void) => number; @@ -112,7 +98,6 @@ + static fnStaticArrowMethodHasReturn: (cb?: () => void) => string; + protected static fnStaticExpressionProtectedMethodHasReturn: (cb?: () => void) => number; + protected static fnStaticArrowProtectedMethodHasReturn: (cb?: () => void) => string; -+ // Have annotation only on parameter + fnExpressionOnlyOnParam: (cb?: () => void) => number; + fnArrowOnlyOnParam: (cb?: () => void) => string; + protected fnExpressionProtectedOnlyOnParam: (cb?: () => void) => number; @@ -121,7 +106,6 @@ + static fnStaticArrowOnlyOnParam: (cb?: () => void) => string; + protected static fnStaticExpressionProtectedOnlyOnParam: (cb?: () => void) => number; + protected static fnStaticArrowProtectedOnlyOnParam: (cb?: () => void) => string; -+ // Have annotation, so ok + fnExpressionOk: (cb?: () => void) => number; + fnArrowOK: (cb?: () => void) => string; + protected fnExpressionProtectedOk: (cb?: () => void) => number; @@ -130,7 +114,6 @@ + static fnStaticArrowOk: (cb?: () => void) => string; + protected static fnStaticExpressionProtectedOk: (cb?: () => void) => number; + protected static fnStaticArrowProtectedOk: (cb?: () => void) => string; -+ // No Error, not in declarations + private fnExpressionPrivate; + private fnArrowPrivate; + private static fnStaticExpressionPrivate; diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js index 604fda21a4..ead291b262 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js @@ -68,7 +68,6 @@ function test3(x) { } //// [isolatedDeclarationsAddUndefined2.d.ts] -// https://github.com/microsoft/TypeScript/issues/60123 export declare class Bar { private x?; constructor(x?: Array | undefined); diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js.diff index 872747af0c..b9c92a668b 100644 --- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js.diff @@ -36,12 +36,4 @@ + x; constructor(x) { this.x = x; - } -@@= skipped -36, +40 lines =@@ - - - //// [isolatedDeclarationsAddUndefined2.d.ts] -+// https://github.com/microsoft/TypeScript/issues/60123 - export declare class Bar { - private x?; - constructor(x?: Array | undefined); \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js b/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js index 92f5754ea2..059ff5f46e 100644 --- a/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js +++ b/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js @@ -41,6 +41,5 @@ ElementsArray.isArray(new ElementsArray()); //// [a.d.ts] declare class Thing { } -// GH#46468 declare class ElementsArray extends Array { } diff --git a/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js.diff b/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js.diff index 45f4846554..daef94d047 100644 --- a/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js.diff +++ b/testdata/baselines/reference/submodule/compiler/javascriptThisAssignmentInStaticBlock.js.diff @@ -39,6 +39,5 @@ - constructor(arrayLength?: number); - constructor(arrayLength: number); - constructor(...items: any[]); -+// GH#46468 +declare class ElementsArray extends Array { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js index 0d093651c3..14d34bae90 100644 --- a/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js +++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js @@ -30,5 +30,4 @@ declare class c { //// [c.d.ts] declare function bar(): void; //// [b.d.ts] -// b.d.ts should have c.d.ts as the reference path declare function foo(): void; diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js.diff deleted file mode 100644 index 8eaf3b7d12..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js -+++ new.jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js -@@= skipped -29, +29 lines =@@ - //// [c.d.ts] - declare function bar(): void; - //// [b.d.ts] -+// b.d.ts should have c.d.ts as the reference path - declare function foo(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js index 2324bf85d1..ff09ced490 100644 --- a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js @@ -91,7 +91,6 @@ class Example { //// [jsFileMethodOverloads2.d.ts] -// Also works if all @overload tags are combined in one comment. /** * @template T */ diff --git a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js.diff index 58f522b3ad..de6bba4b36 100644 --- a/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsFileMethodOverloads2.js.diff @@ -1,14 +1,6 @@ --- old.jsFileMethodOverloads2.js +++ new.jsFileMethodOverloads2.js -@@= skipped -90, +90 lines =@@ - - - //// [jsFileMethodOverloads2.d.ts] -+// Also works if all @overload tags are combined in one comment. - /** - * @template T - */ -@@= skipped -8, +9 lines =@@ +@@= skipped -98, +98 lines =@@ * @param {T} value */ constructor(value: T); diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeGenericIndexedAccess.js b/testdata/baselines/reference/submodule/compiler/mappedTypeGenericIndexedAccess.js index ff6eacf188..d3de3ec29e 100644 --- a/testdata/baselines/reference/submodule/compiler/mappedTypeGenericIndexedAccess.js +++ b/testdata/baselines/reference/submodule/compiler/mappedTypeGenericIndexedAccess.js @@ -71,7 +71,6 @@ const onSomeEvent = (p) => { //// [mappedTypeGenericIndexedAccess.d.ts] -// Repro from #49242 type Types = { first: { a1: true; @@ -90,7 +89,6 @@ declare class Test { constructor(); addEntry(name: T, entry: Types[T]): void; } -// Repro from #49338 type TypesMap = { [0]: { foo: 'bar'; diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeGenericIndexedAccess.js.diff b/testdata/baselines/reference/submodule/compiler/mappedTypeGenericIndexedAccess.js.diff index 24c2b5b455..f9adfbcda2 100644 --- a/testdata/baselines/reference/submodule/compiler/mappedTypeGenericIndexedAccess.js.diff +++ b/testdata/baselines/reference/submodule/compiler/mappedTypeGenericIndexedAccess.js.diff @@ -22,16 +22,4 @@ +}; - //// [mappedTypeGenericIndexedAccess.d.ts] -+// Repro from #49242 - type Types = { - first: { - a1: true; -@@= skipped -22, +26 lines =@@ - constructor(); - addEntry(name: T, entry: Types[T]): void; - } -+// Repro from #49338 - type TypesMap = { - [0]: { - foo: 'bar'; \ No newline at end of file + //// [mappedTypeGenericIndexedAccess.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeGenericInstantiationPreservesInlineForm.js b/testdata/baselines/reference/submodule/compiler/mappedTypeGenericInstantiationPreservesInlineForm.js index 5d030b9315..8c3efbcca6 100644 --- a/testdata/baselines/reference/submodule/compiler/mappedTypeGenericInstantiationPreservesInlineForm.js +++ b/testdata/baselines/reference/submodule/compiler/mappedTypeGenericInstantiationPreservesInlineForm.js @@ -15,7 +15,6 @@ export function test2>(schema: { //// [mappedTypeGenericInstantiationPreservesInlineForm.d.ts] -// repro from #53109 export declare const test1: >(schema: { [K in keyof Required]: T[K]; }) => void; export declare function test2>(schema: { [K in keyof Required]: T[K]; diff --git a/testdata/baselines/reference/submodule/compiler/mappedTypeGenericInstantiationPreservesInlineForm.js.diff b/testdata/baselines/reference/submodule/compiler/mappedTypeGenericInstantiationPreservesInlineForm.js.diff deleted file mode 100644 index 3ba7f941a6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/mappedTypeGenericInstantiationPreservesInlineForm.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.mappedTypeGenericInstantiationPreservesInlineForm.js -+++ new.mappedTypeGenericInstantiationPreservesInlineForm.js -@@= skipped -14, +14 lines =@@ - - - //// [mappedTypeGenericInstantiationPreservesInlineForm.d.ts] -+// repro from #53109 - export declare const test1: >(schema: { [K in keyof Required]: T[K]; }) => void; - export declare function test2>(schema: { - [K in keyof Required]: T[K]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/missingImportAfterModuleImport.js b/testdata/baselines/reference/submodule/compiler/missingImportAfterModuleImport.js index 53acba488f..f42ff97b46 100644 --- a/testdata/baselines/reference/submodule/compiler/missingImportAfterModuleImport.js +++ b/testdata/baselines/reference/submodule/compiler/missingImportAfterModuleImport.js @@ -46,7 +46,6 @@ declare module "SubModule" { /// import SubModule = require('SubModule'); declare class MainModule { - // public static SubModule: SubModule; SubModule: SubModule; constructor(); } diff --git a/testdata/baselines/reference/submodule/compiler/missingImportAfterModuleImport.js.diff b/testdata/baselines/reference/submodule/compiler/missingImportAfterModuleImport.js.diff index f4ada1817e..dfc2c48f80 100644 --- a/testdata/baselines/reference/submodule/compiler/missingImportAfterModuleImport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/missingImportAfterModuleImport.js.diff @@ -8,12 +8,4 @@ + SubModule; constructor() { } } - module.exports = MainModule; -@@= skipped -18, +20 lines =@@ - /// - import SubModule = require('SubModule'); - declare class MainModule { -+ // public static SubModule: SubModule; - SubModule: SubModule; - constructor(); - } \ No newline at end of file + module.exports = MainModule; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleAugmentationGlobal1.js b/testdata/baselines/reference/submodule/compiler/moduleAugmentationGlobal1.js index 32336d5912..17a12bc8ea 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleAugmentationGlobal1.js +++ b/testdata/baselines/reference/submodule/compiler/moduleAugmentationGlobal1.js @@ -38,7 +38,6 @@ export declare class A { } //// [f2.d.ts] import { A } from "./f1"; -// change the shape of Array declare global { interface Array { getA(): A; diff --git a/testdata/baselines/reference/submodule/compiler/moduleAugmentationGlobal1.js.diff b/testdata/baselines/reference/submodule/compiler/moduleAugmentationGlobal1.js.diff index 76a1064f43..0af2d6e4cc 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleAugmentationGlobal1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/moduleAugmentationGlobal1.js.diff @@ -7,12 +7,4 @@ + x; } exports.A = A; - //// [f2.js] -@@= skipped -15, +16 lines =@@ - } - //// [f2.d.ts] - import { A } from "./f1"; -+// change the shape of Array - declare global { - interface Array { - getA(): A; \ No newline at end of file + //// [f2.js] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleAugmentationImportsAndExports2.js b/testdata/baselines/reference/submodule/compiler/moduleAugmentationImportsAndExports2.js index 6b91da3bb9..3a76f7850d 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleAugmentationImportsAndExports2.js +++ b/testdata/baselines/reference/submodule/compiler/moduleAugmentationImportsAndExports2.js @@ -87,7 +87,6 @@ declare module "./f1" { export { B } from "./f2"; import I = N.Ifc; import C = N.Cls; - // should have explicit export interface A { foo(): B; bar(): I; diff --git a/testdata/baselines/reference/submodule/compiler/moduleAugmentationImportsAndExports2.js.diff b/testdata/baselines/reference/submodule/compiler/moduleAugmentationImportsAndExports2.js.diff index b5b56a5204..892a4c0705 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleAugmentationImportsAndExports2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/moduleAugmentationImportsAndExports2.js.diff @@ -14,12 +14,4 @@ +const f1_1 = require("./f1"); f1_1.A.prototype.foo = function () { return undefined; }; //// [f4.js] - "use strict"; -@@= skipped -36, +37 lines =@@ - export { B } from "./f2"; - import I = N.Ifc; - import C = N.Cls; -+ // should have explicit export - interface A { - foo(): B; - bar(): I; \ No newline at end of file + "use strict"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleOuterQualification.js b/testdata/baselines/reference/submodule/compiler/moduleOuterQualification.js index 01bd0b6f7d..5d8afb8461 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleOuterQualification.js +++ b/testdata/baselines/reference/submodule/compiler/moduleOuterQualification.js @@ -18,7 +18,6 @@ declare namespace outer { interface Beta { } namespace inner { - // .d.ts emit: should be 'extends outer.Beta' interface Beta extends outer.Beta { } } diff --git a/testdata/baselines/reference/submodule/compiler/moduleOuterQualification.js.diff b/testdata/baselines/reference/submodule/compiler/moduleOuterQualification.js.diff deleted file mode 100644 index 1ceb1f5633..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleOuterQualification.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.moduleOuterQualification.js -+++ new.moduleOuterQualification.js -@@= skipped -17, +17 lines =@@ - interface Beta { - } - namespace inner { -+ // .d.ts emit: should be 'extends outer.Beta' - interface Beta extends outer.Beta { - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.js b/testdata/baselines/reference/submodule/compiler/modulePreserve4.js index bd958b8391..1ec555552e 100644 --- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.js +++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.js @@ -229,4 +229,4 @@ export {}; export var x = require("./g"); export {}; //// [dummy.d.ts] -export {}; // Silly test harness +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.js.diff b/testdata/baselines/reference/submodule/compiler/modulePreserve4.js.diff index eba7308563..84267b6dd2 100644 --- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.js.diff @@ -64,5 +64,4 @@ +export var x = require("./g"); +export {}; //// [dummy.d.ts] --export {}; -+export {}; // Silly test harness \ No newline at end of file + export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.js b/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.js index 68220fbe98..e547b028c4 100644 --- a/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.js +++ b/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.js @@ -480,15 +480,12 @@ declare class YS extends Y { } declare function isXSorY(obj: unknown): obj is XS | Y; declare function fx5(obj: X | YS, c: typeof XS | typeof Y): void; -// Repro from #31156 declare function isEmptyStrOrUndefined(mixed: any): mixed is "" | undefined; declare function fx10(s: string | undefined): void; -// Repro from #37807 declare function f1(x: any): asserts x is number | undefined; declare let v1: number | string | undefined; declare function f2(x: any): asserts x is 6 | undefined; declare let v2: number | string | undefined; -// #39105 declare function isEmptyString(value: string): value is ''; declare function isMaybeEmptyString(value: string | null | undefined): value is '' | null | undefined; declare function isZero(value: number): value is 0; @@ -496,21 +493,16 @@ declare function isMaybeZero(value: number | null | undefined): value is 0 | nul declare function isEmptyArray(value: T[]): value is []; declare function isMaybeEmptyArray(value: T[] | null | undefined): value is [] | null | undefined; declare const TEST_CASES: (((value: string) => void) | ((value: number) => void) | ((value: string[]) => void))[]; -// Repro from #42101 type EmptyString = '' | null | undefined; declare function isEmpty(value: string | EmptyString): value is EmptyString; declare let test: string | null | undefined; -// Repro from #43825 declare function assert(value: any): asserts value is T; declare function test1(foo: number | string | boolean): void; -// Repro from #46909 declare function check1(x: unknown): x is (string | 0); declare function check2(x: unknown): x is ("hello" | 0); declare function test3(x: unknown): void; -// Repro from #49588 declare function assertRelationIsNullOrStringArray(v: (string | number)[] | null): asserts v is string[] | null; declare function f1x(obj: (string | number)[] | null): void; -// Repro from #55425 type MyDiscriminatedUnion = { type: 'A'; aProp: number; @@ -522,7 +514,6 @@ declare function isMyDiscriminatedUnion(item: unknown): item is MyDiscriminatedU declare const working: unknown; declare const broken: Record | undefined; declare const workingAgain: Record | undefined | unknown; -// Repro from #56144 type Union = { type: 'a'; variant: 1; diff --git a/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.js.diff b/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.js.diff index 14399f0c9b..ecf0e0d863 100644 --- a/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.js.diff +++ b/testdata/baselines/reference/submodule/compiler/narrowingUnionToUnion.js.diff @@ -7,50 +7,4 @@ -"use strict"; function fx1(x) { if (isFalsy(x)) { - x; // "" | 0 | undefined -@@= skipped -215, +214 lines =@@ - } - declare function isXSorY(obj: unknown): obj is XS | Y; - declare function fx5(obj: X | YS, c: typeof XS | typeof Y): void; -+// Repro from #31156 - declare function isEmptyStrOrUndefined(mixed: any): mixed is "" | undefined; - declare function fx10(s: string | undefined): void; -+// Repro from #37807 - declare function f1(x: any): asserts x is number | undefined; - declare let v1: number | string | undefined; - declare function f2(x: any): asserts x is 6 | undefined; - declare let v2: number | string | undefined; -+// #39105 - declare function isEmptyString(value: string): value is ''; - declare function isMaybeEmptyString(value: string | null | undefined): value is '' | null | undefined; - declare function isZero(value: number): value is 0; -@@= skipped -13, +16 lines =@@ - declare function isEmptyArray(value: T[]): value is []; - declare function isMaybeEmptyArray(value: T[] | null | undefined): value is [] | null | undefined; - declare const TEST_CASES: (((value: string) => void) | ((value: number) => void) | ((value: string[]) => void))[]; -+// Repro from #42101 - type EmptyString = '' | null | undefined; - declare function isEmpty(value: string | EmptyString): value is EmptyString; - declare let test: string | null | undefined; -+// Repro from #43825 - declare function assert(value: any): asserts value is T; - declare function test1(foo: number | string | boolean): void; -+// Repro from #46909 - declare function check1(x: unknown): x is (string | 0); - declare function check2(x: unknown): x is ("hello" | 0); - declare function test3(x: unknown): void; -+// Repro from #49588 - declare function assertRelationIsNullOrStringArray(v: (string | number)[] | null): asserts v is string[] | null; - declare function f1x(obj: (string | number)[] | null): void; -+// Repro from #55425 - type MyDiscriminatedUnion = { - type: 'A'; - aProp: number; -@@= skipped -21, +26 lines =@@ - declare const working: unknown; - declare const broken: Record | undefined; - declare const workingAgain: Record | undefined | unknown; -+// Repro from #56144 - type Union = { - type: 'a'; - variant: 1; \ No newline at end of file + x; // "" | 0 | undefined \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/noExcessiveStackDepthError.js b/testdata/baselines/reference/submodule/compiler/noExcessiveStackDepthError.js index 2bbfb48d76..650edc17d6 100644 --- a/testdata/baselines/reference/submodule/compiler/noExcessiveStackDepthError.js +++ b/testdata/baselines/reference/submodule/compiler/noExcessiveStackDepthError.js @@ -25,7 +25,6 @@ function foo() { //// [noExcessiveStackDepthError.d.ts] -// Repro from #46631 interface FindOperator { foo: T; } diff --git a/testdata/baselines/reference/submodule/compiler/noExcessiveStackDepthError.js.diff b/testdata/baselines/reference/submodule/compiler/noExcessiveStackDepthError.js.diff index e8291732f4..c6ce643aa2 100644 --- a/testdata/baselines/reference/submodule/compiler/noExcessiveStackDepthError.js.diff +++ b/testdata/baselines/reference/submodule/compiler/noExcessiveStackDepthError.js.diff @@ -8,12 +8,4 @@ -// Repro from #46631 function foo() { var x; - var x; // Excessive stack depth error not expected here -@@= skipped -9, +7 lines =@@ - - - //// [noExcessiveStackDepthError.d.ts] -+// Repro from #46631 - interface FindOperator { - foo: T; - } \ No newline at end of file + var x; // Excessive stack depth error not expected here \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/noImplicitThisBigThis.js b/testdata/baselines/reference/submodule/compiler/noImplicitThisBigThis.js index 87c8f8d550..bb2ecbc22e 100644 --- a/testdata/baselines/reference/submodule/compiler/noImplicitThisBigThis.js +++ b/testdata/baselines/reference/submodule/compiler/noImplicitThisBigThis.js @@ -99,7 +99,6 @@ function createObjNoCrash() { //// [noImplicitThisBigThis.d.ts] -// https://github.com/microsoft/TypeScript/issues/29902 declare function createObj(): { func1(): /*elided*/ any; func2(): /*elided*/ any; diff --git a/testdata/baselines/reference/submodule/compiler/noImplicitThisBigThis.js.diff b/testdata/baselines/reference/submodule/compiler/noImplicitThisBigThis.js.diff deleted file mode 100644 index 9cf20a1643..0000000000 --- a/testdata/baselines/reference/submodule/compiler/noImplicitThisBigThis.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.noImplicitThisBigThis.js -+++ new.noImplicitThisBigThis.js -@@= skipped -98, +98 lines =@@ - - - //// [noImplicitThisBigThis.d.ts] -+// https://github.com/microsoft/TypeScript/issues/29902 - declare function createObj(): { - func1(): /*elided*/ any; - func2(): /*elided*/ any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/numericEnumMappedType.js b/testdata/baselines/reference/submodule/compiler/numericEnumMappedType.js index 47d195a1de..c0c2561c97 100644 --- a/testdata/baselines/reference/submodule/compiler/numericEnumMappedType.js +++ b/testdata/baselines/reference/submodule/compiler/numericEnumMappedType.js @@ -74,7 +74,6 @@ const x = e; //// [numericEnumMappedType.d.ts] -// Repro from #31771 declare enum E1 { ONE = 0, TWO = 1, @@ -95,7 +94,6 @@ declare const b1: Bins1; declare const b2: Bins2; declare const e1: E1; declare const e2: E2; -// Multiple numeric enum types accrue to the same numeric index signature in a mapped type declare function val(): number; declare enum N1 { A, @@ -108,9 +106,6 @@ declare enum N2 { type T1 = { [K in N1 | N2]: K; }; -// Enum types with string valued members are always literal enum types and therefore -// ONE and TWO below are not computed members but rather just numerically valued members -// with auto-incremented values. declare enum E { ONE, TWO, diff --git a/testdata/baselines/reference/submodule/compiler/numericEnumMappedType.js.diff b/testdata/baselines/reference/submodule/compiler/numericEnumMappedType.js.diff index d3570f1d57..1adfa55850 100644 --- a/testdata/baselines/reference/submodule/compiler/numericEnumMappedType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/numericEnumMappedType.js.diff @@ -29,29 +29,4 @@ + if (typeof N2.D !== "string") N2[N2.D] = "D"; })(N2 || (N2 = {})); const e = E.ONE; - const x = e; - - - //// [numericEnumMappedType.d.ts] -+// Repro from #31771 - declare enum E1 { - ONE = 0, - TWO = 1, -@@= skipped -33, +38 lines =@@ - declare const b2: Bins2; - declare const e1: E1; - declare const e2: E2; -+// Multiple numeric enum types accrue to the same numeric index signature in a mapped type - declare function val(): number; - declare enum N1 { - A, -@@= skipped -12, +13 lines =@@ - type T1 = { - [K in N1 | N2]: K; - }; -+// Enum types with string valued members are always literal enum types and therefore -+// ONE and TWO below are not computed members but rather just numerically valued members -+// with auto-incremented values. - declare enum E { - ONE, - TWO, \ No newline at end of file + const x = e; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/out-flag.js b/testdata/baselines/reference/submodule/compiler/out-flag.js index 08215ec45f..5bc5e22fe5 100644 --- a/testdata/baselines/reference/submodule/compiler/out-flag.js +++ b/testdata/baselines/reference/submodule/compiler/out-flag.js @@ -34,10 +34,7 @@ class MyClass { //# sourceMappingURL=out-flag.js.map //// [out-flag.d.ts] -//// @outFile: bin\ -// my class comments declare class MyClass { - // my function comments Count(): number; SetCount(value: number): void; } diff --git a/testdata/baselines/reference/submodule/compiler/out-flag.js.diff b/testdata/baselines/reference/submodule/compiler/out-flag.js.diff deleted file mode 100644 index f797e2b72c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/out-flag.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.out-flag.js -+++ new.out-flag.js -@@= skipped -33, +33 lines =@@ - //# sourceMappingURL=out-flag.js.map - - //// [out-flag.d.ts] -+//// @outFile: bin\ -+// my class comments - declare class MyClass { -+ // my function comments - Count(): number; - SetCount(value: number): void; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/parameterDestructuringObjectLiteral.js b/testdata/baselines/reference/submodule/compiler/parameterDestructuringObjectLiteral.js index 24730e2b55..88fd9288ed 100644 --- a/testdata/baselines/reference/submodule/compiler/parameterDestructuringObjectLiteral.js +++ b/testdata/baselines/reference/submodule/compiler/parameterDestructuringObjectLiteral.js @@ -19,7 +19,6 @@ fn2({ headers: { foo: 1 } }); //// [parameterDestructuringObjectLiteral.d.ts] -// Repro from #22644 declare const fn1: (options: { headers?: {}; }) => void; diff --git a/testdata/baselines/reference/submodule/compiler/parameterDestructuringObjectLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/parameterDestructuringObjectLiteral.js.diff deleted file mode 100644 index 215a6467bf..0000000000 --- a/testdata/baselines/reference/submodule/compiler/parameterDestructuringObjectLiteral.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.parameterDestructuringObjectLiteral.js -+++ new.parameterDestructuringObjectLiteral.js -@@= skipped -18, +18 lines =@@ - - - //// [parameterDestructuringObjectLiteral.d.ts] -+// Repro from #22644 - declare const fn1: (options: { - headers?: {}; - }) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.js b/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.js index 3d993bad21..dde8372257 100644 --- a/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.js +++ b/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.js @@ -15,7 +15,6 @@ const result = getInterfaceFromString({ type: 'two' }); //// [primitiveUnionDetection.d.ts] -// Repro from #46624 type Kind = "one" | "two" | "three"; declare function getInterfaceFromString(options?: { type?: T; diff --git a/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.js.diff b/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.js.diff index 0527e2e5d4..aeca5c77dd 100644 --- a/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.js.diff +++ b/testdata/baselines/reference/submodule/compiler/primitiveUnionDetection.js.diff @@ -8,9 +8,3 @@ -// Repro from #46624 const result = getInterfaceFromString({ type: 'two' }); - - //// [primitiveUnionDetection.d.ts] -+// Repro from #46624 - type Kind = "one" | "two" | "three"; - declare function getInterfaceFromString(options?: { - type?: T; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyCannotNameVarTypeDeclFile.js b/testdata/baselines/reference/submodule/compiler/privacyCannotNameVarTypeDeclFile.js index e59102d6d3..775b879b06 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyCannotNameVarTypeDeclFile.js +++ b/testdata/baselines/reference/submodule/compiler/privacyCannotNameVarTypeDeclFile.js @@ -226,25 +226,25 @@ export declare function createExportedWidget3(): Widgets1.Widget3; export declare function createExportedWidget4(): Widgets1.SpecializedGlobalWidget.Widget4; //// [privacyCannotNameVarTypeDeclFile_consumer.d.ts] export declare class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error + static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; private static myPrivateStaticProperty; - myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error + myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; private myPrivateProperty; - static myPublicStaticProperty1: import("GlobalWidgets").Widget3; // Error + static myPublicStaticProperty1: import("GlobalWidgets").Widget3; private static myPrivateStaticProperty1; - myPublicProperty1: import("GlobalWidgets").Widget3; // Error + myPublicProperty1: import("GlobalWidgets").Widget3; private myPrivateProperty1; } -export declare var publicVarWithPrivatePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error -export declare var publicVarWithPrivatePropertyTypes1: import("GlobalWidgets").Widget3; // Error +export declare var publicVarWithPrivatePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; +export declare var publicVarWithPrivatePropertyTypes1: import("GlobalWidgets").Widget3; export declare class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error - myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error - static myPublicStaticProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error - myPublicProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error + static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; + myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; + static myPublicStaticProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; + myPublicProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; } -export declare var publicVarWithPrivateModulePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error -export declare var publicVarWithPrivateModulePropertyTypes1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error +export declare var publicVarWithPrivateModulePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; +export declare var publicVarWithPrivateModulePropertyTypes1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; //// [DtsFileErrors] @@ -260,35 +260,35 @@ privacyCannotNameVarTypeDeclFile_consumer.d.ts(20,69): error TS2307: Cannot find ==== privacyCannotNameVarTypeDeclFile_consumer.d.ts (6 errors) ==== export declare class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error + static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; private static myPrivateStaticProperty; - myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error + myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; private myPrivateProperty; - static myPublicStaticProperty1: import("GlobalWidgets").Widget3; // Error + static myPublicStaticProperty1: import("GlobalWidgets").Widget3; ~~~~~~~~~~~~~~~ !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. private static myPrivateStaticProperty1; - myPublicProperty1: import("GlobalWidgets").Widget3; // Error + myPublicProperty1: import("GlobalWidgets").Widget3; ~~~~~~~~~~~~~~~ !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. private myPrivateProperty1; } - export declare var publicVarWithPrivatePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error - export declare var publicVarWithPrivatePropertyTypes1: import("GlobalWidgets").Widget3; // Error + export declare var publicVarWithPrivatePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; + export declare var publicVarWithPrivatePropertyTypes1: import("GlobalWidgets").Widget3; ~~~~~~~~~~~~~~~ !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. export declare class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error - myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error - static myPublicStaticProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error + static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; + myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; + static myPublicStaticProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; ~~~~~~~~~~~~~~~ !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. - myPublicProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error + myPublicProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; ~~~~~~~~~~~~~~~ !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. } - export declare var publicVarWithPrivateModulePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error - export declare var publicVarWithPrivateModulePropertyTypes1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error + export declare var publicVarWithPrivateModulePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; + export declare var publicVarWithPrivateModulePropertyTypes1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; ~~~~~~~~~~~~~~~ !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. diff --git a/testdata/baselines/reference/submodule/compiler/privacyCannotNameVarTypeDeclFile.js.diff b/testdata/baselines/reference/submodule/compiler/privacyCannotNameVarTypeDeclFile.js.diff index f7d0b1abd4..933def5e4d 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyCannotNameVarTypeDeclFile.js.diff +++ b/testdata/baselines/reference/submodule/compiler/privacyCannotNameVarTypeDeclFile.js.diff @@ -133,90 +133,3 @@ +} var privateVarWithPrivateModulePropertyTypes = exporter.createExportedWidget2(); var privateVarWithPrivateModulePropertyTypes1 = exporter.createExportedWidget4(); - -@@= skipped -98, +78 lines =@@ - export declare function createExportedWidget4(): Widgets1.SpecializedGlobalWidget.Widget4; - //// [privacyCannotNameVarTypeDeclFile_consumer.d.ts] - export declare class publicClassWithWithPrivatePropertyTypes { -- static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; -+ static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error - private static myPrivateStaticProperty; -- myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; -+ myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error - private myPrivateProperty; -- static myPublicStaticProperty1: import("GlobalWidgets").Widget3; -+ static myPublicStaticProperty1: import("GlobalWidgets").Widget3; // Error - private static myPrivateStaticProperty1; -- myPublicProperty1: import("GlobalWidgets").Widget3; -+ myPublicProperty1: import("GlobalWidgets").Widget3; // Error - private myPrivateProperty1; - } --export declare var publicVarWithPrivatePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; --export declare var publicVarWithPrivatePropertyTypes1: import("GlobalWidgets").Widget3; -+export declare var publicVarWithPrivatePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error -+export declare var publicVarWithPrivatePropertyTypes1: import("GlobalWidgets").Widget3; // Error - export declare class publicClassWithPrivateModulePropertyTypes { -- static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; -- myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; -- static myPublicStaticProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; -- myPublicProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; -+ static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error -+ myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error -+ static myPublicStaticProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error -+ myPublicProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error - } --export declare var publicVarWithPrivateModulePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; --export declare var publicVarWithPrivateModulePropertyTypes1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; -+export declare var publicVarWithPrivateModulePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error -+export declare var publicVarWithPrivateModulePropertyTypes1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error - - - //// [DtsFileErrors] -@@= skipped -34, +34 lines =@@ - - ==== privacyCannotNameVarTypeDeclFile_consumer.d.ts (6 errors) ==== - export declare class publicClassWithWithPrivatePropertyTypes { -- static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; -+ static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error - private static myPrivateStaticProperty; -- myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; -+ myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error - private myPrivateProperty; -- static myPublicStaticProperty1: import("GlobalWidgets").Widget3; -+ static myPublicStaticProperty1: import("GlobalWidgets").Widget3; // Error - ~~~~~~~~~~~~~~~ - !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. - private static myPrivateStaticProperty1; -- myPublicProperty1: import("GlobalWidgets").Widget3; -+ myPublicProperty1: import("GlobalWidgets").Widget3; // Error - ~~~~~~~~~~~~~~~ - !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. - private myPrivateProperty1; - } -- export declare var publicVarWithPrivatePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; -- export declare var publicVarWithPrivatePropertyTypes1: import("GlobalWidgets").Widget3; -+ export declare var publicVarWithPrivatePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").Widget1; // Error -+ export declare var publicVarWithPrivatePropertyTypes1: import("GlobalWidgets").Widget3; // Error - ~~~~~~~~~~~~~~~ - !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. - export declare class publicClassWithPrivateModulePropertyTypes { -- static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; -- myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; -- static myPublicStaticProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; -+ static myPublicStaticProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error -+ myPublicProperty: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error -+ static myPublicStaticProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error - ~~~~~~~~~~~~~~~ - !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. -- myPublicProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; -+ myPublicProperty1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error - ~~~~~~~~~~~~~~~ - !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. - } -- export declare var publicVarWithPrivateModulePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; -- export declare var publicVarWithPrivateModulePropertyTypes1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; -+ export declare var publicVarWithPrivateModulePropertyTypes: import("./privacyCannotNameVarTypeDeclFile_Widgets").SpecializedWidget.Widget2; // Error -+ export declare var publicVarWithPrivateModulePropertyTypes1: import("GlobalWidgets").SpecializedGlobalWidget.Widget4; // Error - ~~~~~~~~~~~~~~~ - !!! error TS2307: Cannot find module 'GlobalWidgets' or its corresponding type declarations. - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyCheckAnonymousFunctionParameter.js b/testdata/baselines/reference/submodule/compiler/privacyCheckAnonymousFunctionParameter.js index ba564a3a74..9dbc216df1 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyCheckAnonymousFunctionParameter.js +++ b/testdata/baselines/reference/submodule/compiler/privacyCheckAnonymousFunctionParameter.js @@ -38,4 +38,4 @@ var Query; //// [privacyCheckAnonymousFunctionParameter.d.ts] -export declare var x: number; // Makes this an external module +export declare var x: number; diff --git a/testdata/baselines/reference/submodule/compiler/privacyCheckAnonymousFunctionParameter.js.diff b/testdata/baselines/reference/submodule/compiler/privacyCheckAnonymousFunctionParameter.js.diff deleted file mode 100644 index fe3d97cacf..0000000000 --- a/testdata/baselines/reference/submodule/compiler/privacyCheckAnonymousFunctionParameter.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.privacyCheckAnonymousFunctionParameter.js -+++ new.privacyCheckAnonymousFunctionParameter.js -@@= skipped -37, +37 lines =@@ - - - //// [privacyCheckAnonymousFunctionParameter.d.ts] --export declare var x: number; -+export declare var x: number; // Makes this an external module \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyCheckTypeOfInvisibleModuleNoError.js b/testdata/baselines/reference/submodule/compiler/privacyCheckTypeOfInvisibleModuleNoError.js index 5060afdd54..a6a1cfbcff 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyCheckTypeOfInvisibleModuleNoError.js +++ b/testdata/baselines/reference/submodule/compiler/privacyCheckTypeOfInvisibleModuleNoError.js @@ -24,6 +24,6 @@ declare namespace Outer { namespace Inner { var m: number; } - export var f: typeof Inner; // Since we dont unwind inner any more, it is error here + export var f: typeof Inner; export {}; } diff --git a/testdata/baselines/reference/submodule/compiler/privacyCheckTypeOfInvisibleModuleNoError.js.diff b/testdata/baselines/reference/submodule/compiler/privacyCheckTypeOfInvisibleModuleNoError.js.diff deleted file mode 100644 index 03536b7702..0000000000 --- a/testdata/baselines/reference/submodule/compiler/privacyCheckTypeOfInvisibleModuleNoError.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.privacyCheckTypeOfInvisibleModuleNoError.js -+++ new.privacyCheckTypeOfInvisibleModuleNoError.js -@@= skipped -23, +23 lines =@@ - namespace Inner { - var m: number; - } -- export var f: typeof Inner; -+ export var f: typeof Inner; // Since we dont unwind inner any more, it is error here - export {}; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyFunctionParameterDeclFile.js b/testdata/baselines/reference/submodule/compiler/privacyFunctionParameterDeclFile.js index 6e205f8e23..7f626822c2 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyFunctionParameterDeclFile.js +++ b/testdata/baselines/reference/submodule/compiler/privacyFunctionParameterDeclFile.js @@ -1285,9 +1285,9 @@ declare class privateClass { export declare class publicClass { } export interface publicInterfaceWithPrivateParmeterTypes { - new (param: privateClass): publicClass; // Error - (param: privateClass): publicClass; // Error - myMethod(param: privateClass): void; // Error + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; } export interface publicInterfaceWithPublicParmeterTypes { new (param: publicClass): publicClass; @@ -1314,12 +1314,12 @@ export declare class publicClassWithWithPublicParmeterTypes { } export declare function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; export declare function publicFunctionWithPublicParmeterTypes(param: publicClass): void; -export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error +export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; export interface publicInterfaceWithPrivateModuleParameterTypes { - new (param: privateModule.publicClass): publicClass; // Error - (param: privateModule.publicClass): publicClass; // Error - myMethod(param: privateModule.publicClass): void; // Error + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; } export declare class publicClassWithPrivateModuleParameterTypes { private param1; @@ -1329,16 +1329,16 @@ export declare class publicClassWithPrivateModuleParameterTypes { constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); } export declare function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; -export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error +export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; export declare namespace publicModule { class privateClass { } export class publicClass { } export interface publicInterfaceWithPrivateParmeterTypes { - new (param: privateClass): publicClass; // Error - (param: privateClass): publicClass; // Error - myMethod(param: privateClass): void; // Error + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; } export interface publicInterfaceWithPublicParmeterTypes { new (param: publicClass): publicClass; @@ -1365,12 +1365,12 @@ export declare namespace publicModule { } export function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; export function publicFunctionWithPublicParmeterTypes(param: publicClass): void; - export function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + export function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; export function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; export interface publicInterfaceWithPrivateModuleParameterTypes { - new (param: privateModule.publicClass): publicClass; // Error - (param: privateModule.publicClass): publicClass; // Error - myMethod(param: privateModule.publicClass): void; // Error + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; } export class publicClassWithPrivateModuleParameterTypes { private param1; @@ -1380,7 +1380,7 @@ export declare namespace publicModule { constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); } export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - export function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + export function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; export {}; } declare namespace privateModule { @@ -1515,9 +1515,9 @@ declare namespace publicModuleInGlobal { export {}; } export interface publicInterfaceWithPrivateParmeterTypes { - new (param: privateClass): publicClass; // Error - (param: privateClass): publicClass; // Error - myMethod(param: privateClass): void; // Error + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; } export interface publicInterfaceWithPublicParmeterTypes { new (param: publicClass): publicClass; @@ -1544,12 +1544,12 @@ declare namespace publicModuleInGlobal { } export function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; export function publicFunctionWithPublicParmeterTypes(param: publicClass): void; - export function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + export function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; export function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; export interface publicInterfaceWithPrivateModuleParameterTypes { - new (param: privateModule.publicClass): publicClass; // Error - (param: privateModule.publicClass): publicClass; // Error - myMethod(param: privateModule.publicClass): void; // Error + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; } export class publicClassWithPrivateModuleParameterTypes { private param1; @@ -1559,6 +1559,6 @@ declare namespace publicModuleInGlobal { constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); } export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - export function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + export function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; export {}; } diff --git a/testdata/baselines/reference/submodule/compiler/privacyFunctionParameterDeclFile.js.diff b/testdata/baselines/reference/submodule/compiler/privacyFunctionParameterDeclFile.js.diff index af25f8bc61..fb27cb46be 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyFunctionParameterDeclFile.js.diff +++ b/testdata/baselines/reference/submodule/compiler/privacyFunctionParameterDeclFile.js.diff @@ -278,119 +278,4 @@ + param2; static myPublicStaticMethod(param) { } - myPublicMethod(param) { -@@= skipped -20, +22 lines =@@ - export declare class publicClass { - } - export interface publicInterfaceWithPrivateParmeterTypes { -- new (param: privateClass): publicClass; -- (param: privateClass): publicClass; -- myMethod(param: privateClass): void; -+ new (param: privateClass): publicClass; // Error -+ (param: privateClass): publicClass; // Error -+ myMethod(param: privateClass): void; // Error - } - export interface publicInterfaceWithPublicParmeterTypes { - new (param: publicClass): publicClass; -@@= skipped -29, +29 lines =@@ - } - export declare function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; - export declare function publicFunctionWithPublicParmeterTypes(param: publicClass): void; --export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; -+export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error - export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; - export interface publicInterfaceWithPrivateModuleParameterTypes { -- new (param: privateModule.publicClass): publicClass; -- (param: privateModule.publicClass): publicClass; -- myMethod(param: privateModule.publicClass): void; -+ new (param: privateModule.publicClass): publicClass; // Error -+ (param: privateModule.publicClass): publicClass; // Error -+ myMethod(param: privateModule.publicClass): void; // Error - } - export declare class publicClassWithPrivateModuleParameterTypes { - private param1; -@@= skipped -15, +15 lines =@@ - constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); - } - export declare function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; --export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; -+export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error - export declare namespace publicModule { - class privateClass { - } - export class publicClass { - } - export interface publicInterfaceWithPrivateParmeterTypes { -- new (param: privateClass): publicClass; -- (param: privateClass): publicClass; -- myMethod(param: privateClass): void; -+ new (param: privateClass): publicClass; // Error -+ (param: privateClass): publicClass; // Error -+ myMethod(param: privateClass): void; // Error - } - export interface publicInterfaceWithPublicParmeterTypes { - new (param: publicClass): publicClass; -@@= skipped -36, +36 lines =@@ - } - export function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; - export function publicFunctionWithPublicParmeterTypes(param: publicClass): void; -- export function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; -+ export function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error - export function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; - export interface publicInterfaceWithPrivateModuleParameterTypes { -- new (param: privateModule.publicClass): publicClass; -- (param: privateModule.publicClass): publicClass; -- myMethod(param: privateModule.publicClass): void; -+ new (param: privateModule.publicClass): publicClass; // Error -+ (param: privateModule.publicClass): publicClass; // Error -+ myMethod(param: privateModule.publicClass): void; // Error - } - export class publicClassWithPrivateModuleParameterTypes { - private param1; -@@= skipped -15, +15 lines =@@ - constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); - } - export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; -- export function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; -+ export function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error - export {}; - } - declare namespace privateModule { -@@= skipped -135, +135 lines =@@ - export {}; - } - export interface publicInterfaceWithPrivateParmeterTypes { -- new (param: privateClass): publicClass; -- (param: privateClass): publicClass; -- myMethod(param: privateClass): void; -+ new (param: privateClass): publicClass; // Error -+ (param: privateClass): publicClass; // Error -+ myMethod(param: privateClass): void; // Error - } - export interface publicInterfaceWithPublicParmeterTypes { - new (param: publicClass): publicClass; -@@= skipped -29, +29 lines =@@ - } - export function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; - export function publicFunctionWithPublicParmeterTypes(param: publicClass): void; -- export function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; -+ export function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error - export function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; - export interface publicInterfaceWithPrivateModuleParameterTypes { -- new (param: privateModule.publicClass): publicClass; -- (param: privateModule.publicClass): publicClass; -- myMethod(param: privateModule.publicClass): void; -+ new (param: privateModule.publicClass): publicClass; // Error -+ (param: privateModule.publicClass): publicClass; // Error -+ myMethod(param: privateModule.publicClass): void; // Error - } - export class publicClassWithPrivateModuleParameterTypes { - private param1; -@@= skipped -15, +15 lines =@@ - constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); - } - export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; -- export function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; -+ export function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error - export {}; - } \ No newline at end of file + myPublicMethod(param) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyFunctionReturnTypeDeclFile.js b/testdata/baselines/reference/submodule/compiler/privacyFunctionReturnTypeDeclFile.js index ee5dad8b2e..d388cf15e6 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyFunctionReturnTypeDeclFile.js +++ b/testdata/baselines/reference/submodule/compiler/privacyFunctionReturnTypeDeclFile.js @@ -2161,10 +2161,10 @@ declare class privateClass { export declare class publicClass { } export interface publicInterfaceWithPrivateParmeterTypes { - new (): privateClass; // Error - (): privateClass; // Error - [x: number]: privateClass; // Error - myMethod(): privateClass; // Error + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; } export interface publicInterfaceWithPublicParmeterTypes { new (): publicClass; @@ -2196,13 +2196,13 @@ export declare function publicFunctionWithPrivateParmeterTypes(): privateClass; export declare function publicFunctionWithPublicParmeterTypes(): publicClass; export declare function publicFunctionWithPrivateParmeterTypes1(): privateClass; export declare function publicFunctionWithPublicParmeterTypes1(): publicClass; -export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error +export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; export interface publicInterfaceWithPrivateModuleParameterTypes { - new (): privateModule.publicClass; // Error - (): privateModule.publicClass; // Error - [x: number]: privateModule.publicClass; // Error - myMethod(): privateModule.publicClass; // Error + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; } export declare class publicClassWithPrivateModuleParameterTypes { static myPublicStaticMethod(): privateModule.publicClass; @@ -2212,17 +2212,17 @@ export declare class publicClassWithPrivateModuleParameterTypes { } export declare function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; export declare function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; -export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error +export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; export declare namespace publicModule { class privateClass { } export class publicClass { } export interface publicInterfaceWithPrivateParmeterTypes { - new (): privateClass; // Error - (): privateClass; // Error - [x: number]: privateClass; // Error - myMethod(): privateClass; // Error + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; } export interface publicInterfaceWithPublicParmeterTypes { new (): publicClass; @@ -2254,13 +2254,13 @@ export declare namespace publicModule { export function publicFunctionWithPublicParmeterTypes(): publicClass; export function publicFunctionWithPrivateParmeterTypes1(): privateClass; export function publicFunctionWithPublicParmeterTypes1(): publicClass; - export function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + export function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; export function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; export interface publicInterfaceWithPrivateModuleParameterTypes { - new (): privateModule.publicClass; // Error - (): privateModule.publicClass; // Error - [x: number]: privateModule.publicClass; // Error - myMethod(): privateModule.publicClass; // Error + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; } export class publicClassWithPrivateModuleParameterTypes { static myPublicStaticMethod(): privateModule.publicClass; @@ -2270,7 +2270,7 @@ export declare namespace publicModule { } export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; export function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; - export function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + export function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; export {}; } declare namespace privateModule { @@ -2422,10 +2422,10 @@ declare namespace publicModuleInGlobal { export {}; } export interface publicInterfaceWithPrivateParmeterTypes { - new (): privateClass; // Error - (): privateClass; // Error - [x: number]: privateClass; // Error - myMethod(): privateClass; // Error + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; } export interface publicInterfaceWithPublicParmeterTypes { new (): publicClass; @@ -2457,13 +2457,13 @@ declare namespace publicModuleInGlobal { export function publicFunctionWithPublicParmeterTypes(): publicClass; export function publicFunctionWithPrivateParmeterTypes1(): privateClass; export function publicFunctionWithPublicParmeterTypes1(): publicClass; - export function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + export function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; export function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; export interface publicInterfaceWithPrivateModuleParameterTypes { - new (): privateModule.publicClass; // Error - (): privateModule.publicClass; // Error - [x: number]: privateModule.publicClass; // Error - myMethod(): privateModule.publicClass; // Error + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; } export class publicClassWithPrivateModuleParameterTypes { static myPublicStaticMethod(): privateModule.publicClass; @@ -2473,6 +2473,6 @@ declare namespace publicModuleInGlobal { } export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; export function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; - export function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + export function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; export {}; } diff --git a/testdata/baselines/reference/submodule/compiler/privacyFunctionReturnTypeDeclFile.js.diff b/testdata/baselines/reference/submodule/compiler/privacyFunctionReturnTypeDeclFile.js.diff deleted file mode 100644 index e31093da89..0000000000 --- a/testdata/baselines/reference/submodule/compiler/privacyFunctionReturnTypeDeclFile.js.diff +++ /dev/null @@ -1,129 +0,0 @@ ---- old.privacyFunctionReturnTypeDeclFile.js -+++ new.privacyFunctionReturnTypeDeclFile.js -@@= skipped -2160, +2160 lines =@@ - export declare class publicClass { - } - export interface publicInterfaceWithPrivateParmeterTypes { -- new (): privateClass; -- (): privateClass; -- [x: number]: privateClass; -- myMethod(): privateClass; -+ new (): privateClass; // Error -+ (): privateClass; // Error -+ [x: number]: privateClass; // Error -+ myMethod(): privateClass; // Error - } - export interface publicInterfaceWithPublicParmeterTypes { - new (): publicClass; -@@= skipped -35, +35 lines =@@ - export declare function publicFunctionWithPublicParmeterTypes(): publicClass; - export declare function publicFunctionWithPrivateParmeterTypes1(): privateClass; - export declare function publicFunctionWithPublicParmeterTypes1(): publicClass; --export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; -+export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error - export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; - export interface publicInterfaceWithPrivateModuleParameterTypes { -- new (): privateModule.publicClass; -- (): privateModule.publicClass; -- [x: number]: privateModule.publicClass; -- myMethod(): privateModule.publicClass; -+ new (): privateModule.publicClass; // Error -+ (): privateModule.publicClass; // Error -+ [x: number]: privateModule.publicClass; // Error -+ myMethod(): privateModule.publicClass; // Error - } - export declare class publicClassWithPrivateModuleParameterTypes { - static myPublicStaticMethod(): privateModule.publicClass; -@@= skipped -16, +16 lines =@@ - } - export declare function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - export declare function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; --export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; -+export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error - export declare namespace publicModule { - class privateClass { - } - export class publicClass { - } - export interface publicInterfaceWithPrivateParmeterTypes { -- new (): privateClass; -- (): privateClass; -- [x: number]: privateClass; -- myMethod(): privateClass; -+ new (): privateClass; // Error -+ (): privateClass; // Error -+ [x: number]: privateClass; // Error -+ myMethod(): privateClass; // Error - } - export interface publicInterfaceWithPublicParmeterTypes { - new (): publicClass; -@@= skipped -42, +42 lines =@@ - export function publicFunctionWithPublicParmeterTypes(): publicClass; - export function publicFunctionWithPrivateParmeterTypes1(): privateClass; - export function publicFunctionWithPublicParmeterTypes1(): publicClass; -- export function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; -+ export function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error - export function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; - export interface publicInterfaceWithPrivateModuleParameterTypes { -- new (): privateModule.publicClass; -- (): privateModule.publicClass; -- [x: number]: privateModule.publicClass; -- myMethod(): privateModule.publicClass; -+ new (): privateModule.publicClass; // Error -+ (): privateModule.publicClass; // Error -+ [x: number]: privateModule.publicClass; // Error -+ myMethod(): privateModule.publicClass; // Error - } - export class publicClassWithPrivateModuleParameterTypes { - static myPublicStaticMethod(): privateModule.publicClass; -@@= skipped -16, +16 lines =@@ - } - export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - export function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; -- export function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; -+ export function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error - export {}; - } - declare namespace privateModule { -@@= skipped -152, +152 lines =@@ - export {}; - } - export interface publicInterfaceWithPrivateParmeterTypes { -- new (): privateClass; -- (): privateClass; -- [x: number]: privateClass; -- myMethod(): privateClass; -+ new (): privateClass; // Error -+ (): privateClass; // Error -+ [x: number]: privateClass; // Error -+ myMethod(): privateClass; // Error - } - export interface publicInterfaceWithPublicParmeterTypes { - new (): publicClass; -@@= skipped -35, +35 lines =@@ - export function publicFunctionWithPublicParmeterTypes(): publicClass; - export function publicFunctionWithPrivateParmeterTypes1(): privateClass; - export function publicFunctionWithPublicParmeterTypes1(): publicClass; -- export function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; -+ export function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error - export function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; - export interface publicInterfaceWithPrivateModuleParameterTypes { -- new (): privateModule.publicClass; -- (): privateModule.publicClass; -- [x: number]: privateModule.publicClass; -- myMethod(): privateModule.publicClass; -+ new (): privateModule.publicClass; // Error -+ (): privateModule.publicClass; // Error -+ [x: number]: privateModule.publicClass; // Error -+ myMethod(): privateModule.publicClass; // Error - } - export class publicClassWithPrivateModuleParameterTypes { - static myPublicStaticMethod(): privateModule.publicClass; -@@= skipped -16, +16 lines =@@ - } - export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - export function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; -- export function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; -+ export function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error - export {}; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyGloImport.js b/testdata/baselines/reference/submodule/compiler/privacyGloImport.js index d75ae56c76..e60c837605 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyGloImport.js +++ b/testdata/baselines/reference/submodule/compiler/privacyGloImport.js @@ -254,20 +254,6 @@ declare namespace m1 { var v1: typeof c1; var v2: c1; } - //export declare module "m1_M3_public" { - // export function f1(); - // export class c1 { - // } - // export var v1: { new (): c1; }; - // export var v2: c1; - //} - //declare module "m1_M4_private" { - // export function f1(); - // export class c1 { - // } - // export var v1: { new (): c1; }; - // export var v2: c1; - //} import m1_im1_private = m1_M1_public; export var m1_im1_private_v1_public: typeof m1_im1_private.c1; export var m1_im1_private_v2_public: m1_im1_private.c1; @@ -278,24 +264,6 @@ declare namespace m1 { export var m1_im2_private_v2_public: m1_im2_private.c1; export var m1_im2_private_v3_public: typeof m1_im2_private.f1; export var m1_im2_private_v4_public: m1_im2_private.c1; - //import m1_im3_private = require("m1_M3_public"); - //export var m1_im3_private_v1_public = m1_im3_private.c1; - //export var m1_im3_private_v2_public = new m1_im3_private.c1(); - //export var m1_im3_private_v3_public = m1_im3_private.f1; - //export var m1_im3_private_v4_public = m1_im3_private.f1(); - //var m1_im3_private_v1_private = m1_im3_private.c1; - //var m1_im3_private_v2_private = new m1_im3_private.c1(); - //var m1_im3_private_v3_private = m1_im3_private.f1; - //var m1_im3_private_v4_private = m1_im3_private.f1(); - //import m1_im4_private = require("m1_M4_private"); - //export var m1_im4_private_v1_public = m1_im4_private.c1; - //export var m1_im4_private_v2_public = new m1_im4_private.c1(); - //export var m1_im4_private_v3_public = m1_im4_private.f1; - //export var m1_im4_private_v4_public = m1_im4_private.f1(); - //var m1_im4_private_v1_private = m1_im4_private.c1; - //var m1_im4_private_v2_private = new m1_im4_private.c1(); - //var m1_im4_private_v3_private = m1_im4_private.f1; - //var m1_im4_private_v4_private = m1_im4_private.f1(); export import m1_im1_public = m1_M1_public; export import m1_im2_public = m1_M2_private; export {}; diff --git a/testdata/baselines/reference/submodule/compiler/privacyGloImport.js.diff b/testdata/baselines/reference/submodule/compiler/privacyGloImport.js.diff index 29a284c721..1525bf7710 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyGloImport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/privacyGloImport.js.diff @@ -24,50 +24,4 @@ - //var m1_im4_private_v4_private = m1_im4_private.f1(); m1.m1_im1_public = m1_M1_public; m1.m1_im2_public = m1_M2_private; - //export import m1_im3_public = require("m1_M3_public"); -@@= skipped -61, +43 lines =@@ - var v1: typeof c1; - var v2: c1; - } -+ //export declare module "m1_M3_public" { -+ // export function f1(); -+ // export class c1 { -+ // } -+ // export var v1: { new (): c1; }; -+ // export var v2: c1; -+ //} -+ //declare module "m1_M4_private" { -+ // export function f1(); -+ // export class c1 { -+ // } -+ // export var v1: { new (): c1; }; -+ // export var v2: c1; -+ //} - import m1_im1_private = m1_M1_public; - export var m1_im1_private_v1_public: typeof m1_im1_private.c1; - export var m1_im1_private_v2_public: m1_im1_private.c1; -@@= skipped -10, +24 lines =@@ - export var m1_im2_private_v2_public: m1_im2_private.c1; - export var m1_im2_private_v3_public: typeof m1_im2_private.f1; - export var m1_im2_private_v4_public: m1_im2_private.c1; -+ //import m1_im3_private = require("m1_M3_public"); -+ //export var m1_im3_private_v1_public = m1_im3_private.c1; -+ //export var m1_im3_private_v2_public = new m1_im3_private.c1(); -+ //export var m1_im3_private_v3_public = m1_im3_private.f1; -+ //export var m1_im3_private_v4_public = m1_im3_private.f1(); -+ //var m1_im3_private_v1_private = m1_im3_private.c1; -+ //var m1_im3_private_v2_private = new m1_im3_private.c1(); -+ //var m1_im3_private_v3_private = m1_im3_private.f1; -+ //var m1_im3_private_v4_private = m1_im3_private.f1(); -+ //import m1_im4_private = require("m1_M4_private"); -+ //export var m1_im4_private_v1_public = m1_im4_private.c1; -+ //export var m1_im4_private_v2_public = new m1_im4_private.c1(); -+ //export var m1_im4_private_v3_public = m1_im4_private.f1; -+ //export var m1_im4_private_v4_public = m1_im4_private.f1(); -+ //var m1_im4_private_v1_private = m1_im4_private.c1; -+ //var m1_im4_private_v2_private = new m1_im4_private.c1(); -+ //var m1_im4_private_v3_private = m1_im4_private.f1; -+ //var m1_im4_private_v4_private = m1_im4_private.f1(); - export import m1_im1_public = m1_M1_public; - export import m1_im2_public = m1_M2_private; - export {}; \ No newline at end of file + //export import m1_im3_public = require("m1_M3_public"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyImport.js b/testdata/baselines/reference/submodule/compiler/privacyImport.js index 4177c0232f..4bd0dc15d6 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyImport.js +++ b/testdata/baselines/reference/submodule/compiler/privacyImport.js @@ -638,20 +638,6 @@ export declare namespace m1 { var v1: typeof c1; var v2: c1; } - //export declare module "m1_M3_public" { - // export function f1(); - // export class c1 { - // } - // export var v1: { new (): c1; }; - // export var v2: c1; - //} - //declare module "m1_M4_private" { - // export function f1(); - // export class c1 { - // } - // export var v1: { new (): c1; }; - // export var v2: c1; - //} import m1_im1_private = m1_M1_public; export var m1_im1_private_v1_public: typeof m1_im1_private.c1; export var m1_im1_private_v2_public: m1_im1_private.c1; @@ -662,24 +648,6 @@ export declare namespace m1 { export var m1_im2_private_v2_public: m1_im2_private.c1; export var m1_im2_private_v3_public: typeof m1_im2_private.f1; export var m1_im2_private_v4_public: m1_im2_private.c1; - //import m1_im3_private = require("m1_M3_public"); - //export var m1_im3_private_v1_public = m1_im3_private.c1; - //export var m1_im3_private_v2_public = new m1_im3_private.c1(); - //export var m1_im3_private_v3_public = m1_im3_private.f1; - //export var m1_im3_private_v4_public = m1_im3_private.f1(); - //var m1_im3_private_v1_private = m1_im3_private.c1; - //var m1_im3_private_v2_private = new m1_im3_private.c1(); - //var m1_im3_private_v3_private = m1_im3_private.f1; - //var m1_im3_private_v4_private = m1_im3_private.f1(); - //import m1_im4_private = require("m1_M4_private"); - //export var m1_im4_private_v1_public = m1_im4_private.c1; - //export var m1_im4_private_v2_public = new m1_im4_private.c1(); - //export var m1_im4_private_v3_public = m1_im4_private.f1; - //export var m1_im4_private_v4_public = m1_im4_private.f1(); - //var m1_im4_private_v1_private = m1_im4_private.c1; - //var m1_im4_private_v2_private = new m1_im4_private.c1(); - //var m1_im4_private_v3_private = m1_im4_private.f1; - //var m1_im4_private_v4_private = m1_im4_private.f1(); export import m1_im1_public = m1_M1_public; export import m1_im2_public = m1_M2_private; export {}; @@ -691,13 +659,6 @@ export declare namespace glo_M1_public { var v1: typeof c1; var v2: c1; } -//export declare module "glo_M2_public" { -// export function f1(); -// export class c1 { -// } -// export var v1: { new (): c1; }; -// export var v2: c1; -//} export declare namespace glo_M3_private { class c1 { } @@ -705,42 +666,16 @@ export declare namespace glo_M3_private { var v1: typeof c1; var v2: c1; } -//export declare module "glo_M4_private" { -// export function f1(); -// export class c1 { -// } -// export var v1: { new (): c1; }; -// export var v2: c1; -//} import glo_im1_private = glo_M1_public; export declare var glo_im1_private_v1_public: typeof glo_im1_private.c1; export declare var glo_im1_private_v2_public: glo_im1_private.c1; export declare var glo_im1_private_v3_public: typeof glo_im1_private.f1; export declare var glo_im1_private_v4_public: glo_im1_private.c1; -//import glo_im2_private = require("glo_M2_public"); -//export var glo_im2_private_v1_public = glo_im2_private.c1; -//export var glo_im2_private_v2_public = new glo_im2_private.c1(); -//export var glo_im2_private_v3_public = glo_im2_private.f1; -//export var glo_im2_private_v4_public = glo_im2_private.f1(); -//var glo_im2_private_v1_private = glo_im2_private.c1; -//var glo_im2_private_v2_private = new glo_im2_private.c1(); -//var glo_im2_private_v3_private = glo_im2_private.f1; -//var glo_im2_private_v4_private = glo_im2_private.f1(); import glo_im3_private = glo_M3_private; export declare var glo_im3_private_v1_public: typeof glo_im3_private.c1; export declare var glo_im3_private_v2_public: glo_im3_private.c1; export declare var glo_im3_private_v3_public: typeof glo_im3_private.f1; export declare var glo_im3_private_v4_public: glo_im3_private.c1; -//import glo_im4_private = require("glo_M4_private"); -//export var glo_im4_private_v1_public = glo_im4_private.c1; -//export var glo_im4_private_v2_public = new glo_im4_private.c1(); -//export var glo_im4_private_v3_public = glo_im4_private.f1; -//export var glo_im4_private_v4_public = glo_im4_private.f1(); -//var glo_im4_private_v1_private = glo_im4_private.c1; -//var glo_im4_private_v2_private = new glo_im4_private.c1(); -//var glo_im4_private_v3_private = glo_im4_private.f1; -//var glo_im4_private_v4_private = glo_im4_private.f1(); -// Parse error to export module export import glo_im1_public = glo_M1_public; export import glo_im2_public = glo_M3_private; export declare namespace m3 { diff --git a/testdata/baselines/reference/submodule/compiler/privacyImport.js.diff b/testdata/baselines/reference/submodule/compiler/privacyImport.js.diff index 833d1747c0..e324fbd386 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyImport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/privacyImport.js.diff @@ -110,107 +110,4 @@ -exports.glo_im2_public = glo_M3_private; //export import glo_im3_public = require("glo_M2_public"); //export import glo_im4_public = require("glo_M4_private"); - //export declare module "use_glo_M1_public" { -@@= skipped -121, +109 lines =@@ - var v1: typeof c1; - var v2: c1; - } -+ //export declare module "m1_M3_public" { -+ // export function f1(); -+ // export class c1 { -+ // } -+ // export var v1: { new (): c1; }; -+ // export var v2: c1; -+ //} -+ //declare module "m1_M4_private" { -+ // export function f1(); -+ // export class c1 { -+ // } -+ // export var v1: { new (): c1; }; -+ // export var v2: c1; -+ //} - import m1_im1_private = m1_M1_public; - export var m1_im1_private_v1_public: typeof m1_im1_private.c1; - export var m1_im1_private_v2_public: m1_im1_private.c1; -@@= skipped -10, +24 lines =@@ - export var m1_im2_private_v2_public: m1_im2_private.c1; - export var m1_im2_private_v3_public: typeof m1_im2_private.f1; - export var m1_im2_private_v4_public: m1_im2_private.c1; -+ //import m1_im3_private = require("m1_M3_public"); -+ //export var m1_im3_private_v1_public = m1_im3_private.c1; -+ //export var m1_im3_private_v2_public = new m1_im3_private.c1(); -+ //export var m1_im3_private_v3_public = m1_im3_private.f1; -+ //export var m1_im3_private_v4_public = m1_im3_private.f1(); -+ //var m1_im3_private_v1_private = m1_im3_private.c1; -+ //var m1_im3_private_v2_private = new m1_im3_private.c1(); -+ //var m1_im3_private_v3_private = m1_im3_private.f1; -+ //var m1_im3_private_v4_private = m1_im3_private.f1(); -+ //import m1_im4_private = require("m1_M4_private"); -+ //export var m1_im4_private_v1_public = m1_im4_private.c1; -+ //export var m1_im4_private_v2_public = new m1_im4_private.c1(); -+ //export var m1_im4_private_v3_public = m1_im4_private.f1; -+ //export var m1_im4_private_v4_public = m1_im4_private.f1(); -+ //var m1_im4_private_v1_private = m1_im4_private.c1; -+ //var m1_im4_private_v2_private = new m1_im4_private.c1(); -+ //var m1_im4_private_v3_private = m1_im4_private.f1; -+ //var m1_im4_private_v4_private = m1_im4_private.f1(); - export import m1_im1_public = m1_M1_public; - export import m1_im2_public = m1_M2_private; - export {}; -@@= skipped -11, +29 lines =@@ - var v1: typeof c1; - var v2: c1; - } -+//export declare module "glo_M2_public" { -+// export function f1(); -+// export class c1 { -+// } -+// export var v1: { new (): c1; }; -+// export var v2: c1; -+//} - export declare namespace glo_M3_private { - class c1 { - } -@@= skipped -7, +14 lines =@@ - var v1: typeof c1; - var v2: c1; - } -+//export declare module "glo_M4_private" { -+// export function f1(); -+// export class c1 { -+// } -+// export var v1: { new (): c1; }; -+// export var v2: c1; -+//} - import glo_im1_private = glo_M1_public; - export declare var glo_im1_private_v1_public: typeof glo_im1_private.c1; - export declare var glo_im1_private_v2_public: glo_im1_private.c1; - export declare var glo_im1_private_v3_public: typeof glo_im1_private.f1; - export declare var glo_im1_private_v4_public: glo_im1_private.c1; -+//import glo_im2_private = require("glo_M2_public"); -+//export var glo_im2_private_v1_public = glo_im2_private.c1; -+//export var glo_im2_private_v2_public = new glo_im2_private.c1(); -+//export var glo_im2_private_v3_public = glo_im2_private.f1; -+//export var glo_im2_private_v4_public = glo_im2_private.f1(); -+//var glo_im2_private_v1_private = glo_im2_private.c1; -+//var glo_im2_private_v2_private = new glo_im2_private.c1(); -+//var glo_im2_private_v3_private = glo_im2_private.f1; -+//var glo_im2_private_v4_private = glo_im2_private.f1(); - import glo_im3_private = glo_M3_private; - export declare var glo_im3_private_v1_public: typeof glo_im3_private.c1; - export declare var glo_im3_private_v2_public: glo_im3_private.c1; - export declare var glo_im3_private_v3_public: typeof glo_im3_private.f1; - export declare var glo_im3_private_v4_public: glo_im3_private.c1; -+//import glo_im4_private = require("glo_M4_private"); -+//export var glo_im4_private_v1_public = glo_im4_private.c1; -+//export var glo_im4_private_v2_public = new glo_im4_private.c1(); -+//export var glo_im4_private_v3_public = glo_im4_private.f1; -+//export var glo_im4_private_v4_public = glo_im4_private.f1(); -+//var glo_im4_private_v1_private = glo_im4_private.c1; -+//var glo_im4_private_v2_private = new glo_im4_private.c1(); -+//var glo_im4_private_v3_private = glo_im4_private.f1; -+//var glo_im4_private_v4_private = glo_im4_private.f1(); -+// Parse error to export module - export import glo_im1_public = glo_M1_public; - export import glo_im2_public = glo_M3_private; - export declare namespace m3 { \ No newline at end of file + //export declare module "use_glo_M1_public" { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyLocalInternalReferenceImportWithExport.js b/testdata/baselines/reference/submodule/compiler/privacyLocalInternalReferenceImportWithExport.js index abcd623ff1..d40643ee65 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyLocalInternalReferenceImportWithExport.js +++ b/testdata/baselines/reference/submodule/compiler/privacyLocalInternalReferenceImportWithExport.js @@ -293,7 +293,6 @@ var import_private; //// [privacyLocalInternalReferenceImportWithExport.d.ts] -// private elements declare namespace m_private { class c_private { } @@ -314,7 +313,6 @@ declare namespace m_private { } } } -// Public elements export declare namespace m_public { class c_public { } @@ -336,7 +334,6 @@ export declare namespace m_public { } } export declare namespace import_public { - // Privacy errors - importing private elements export import im_public_c_private = m_private.c_private; export import im_public_e_private = m_private.e_private; export import im_public_f_private = m_private.f_private; @@ -351,7 +348,6 @@ export declare namespace import_public { var publicUse_im_public_i_private: im_public_i_private; var publicUse_im_public_mi_private: im_public_mi_private.c; var publicUse_im_public_mu_private: im_public_mu_private.i; - // No Privacy errors - importing public elements export import im_public_c_public = m_public.c_public; export import im_public_e_public = m_public.e_public; export import im_public_f_public = m_public.f_public; diff --git a/testdata/baselines/reference/submodule/compiler/privacyLocalInternalReferenceImportWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/privacyLocalInternalReferenceImportWithExport.js.diff index df1115a060..9af851c633 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyLocalInternalReferenceImportWithExport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/privacyLocalInternalReferenceImportWithExport.js.diff @@ -59,36 +59,4 @@ + import_private.im_private_mu_public = m_public.mu_public; // Usage of no privacy error imports var privateUse_im_private_c_public = new import_private.im_private_c_public(); - import_private.publicUse_im_private_c_public = new import_private.im_private_c_public(); -@@= skipped -23, +24 lines =@@ - - - //// [privacyLocalInternalReferenceImportWithExport.d.ts] -+// private elements - declare namespace m_private { - class c_private { - } -@@= skipped -20, +21 lines =@@ - } - } - } -+// Public elements - export declare namespace m_public { - class c_public { - } -@@= skipped -21, +22 lines =@@ - } - } - export declare namespace import_public { -+ // Privacy errors - importing private elements - export import im_public_c_private = m_private.c_private; - export import im_public_e_private = m_private.e_private; - export import im_public_f_private = m_private.f_private; -@@= skipped -14, +15 lines =@@ - var publicUse_im_public_i_private: im_public_i_private; - var publicUse_im_public_mi_private: im_public_mi_private.c; - var publicUse_im_public_mu_private: im_public_mu_private.i; -+ // No Privacy errors - importing public elements - export import im_public_c_public = m_public.c_public; - export import im_public_e_public = m_public.e_public; - export import im_public_f_public = m_public.f_public; \ No newline at end of file + import_private.publicUse_im_private_c_public = new import_private.im_private_c_public(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.js b/testdata/baselines/reference/submodule/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.js index 7ff63de44a..99bfff025c 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.js +++ b/testdata/baselines/reference/submodule/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.js @@ -90,8 +90,6 @@ exports.publicUse_im_public_mi_public = new exports.im_public_mi_public.c_privat //// [privacyTopLevelAmbientExternalModuleImportWithExport_require2.d.ts] -// private elements -// Export - Error ambient modules allowed only in global declare module 'm' { class c_private { baz: string; @@ -104,7 +102,6 @@ declare module 'm2' { } } //// [privacyTopLevelAmbientExternalModuleImportWithExport_require.d.ts] -// Public elements export declare class c_public { foo: string; } @@ -113,7 +110,6 @@ export declare class c_public { bar: string; } //// [privacyTopLevelAmbientExternalModuleImportWithExport_core.d.ts] -// Privacy errors - importing private elements export import im_public_mi_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require"); export import im_public_mu_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require1"); export import im_public_mi_public = require("m"); diff --git a/testdata/baselines/reference/submodule/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.js.diff index b3363eab8b..63d66f4d18 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.js.diff @@ -15,29 +15,4 @@ + bar; } exports.c_public = c_public; - //// [privacyTopLevelAmbientExternalModuleImportWithExport_core.js] -@@= skipped -25, +26 lines =@@ - - - //// [privacyTopLevelAmbientExternalModuleImportWithExport_require2.d.ts] -+// private elements -+// Export - Error ambient modules allowed only in global - declare module 'm' { - class c_private { - baz: string; -@@= skipped -12, +14 lines =@@ - } - } - //// [privacyTopLevelAmbientExternalModuleImportWithExport_require.d.ts] -+// Public elements - export declare class c_public { - foo: string; - } -@@= skipped -8, +9 lines =@@ - bar: string; - } - //// [privacyTopLevelAmbientExternalModuleImportWithExport_core.d.ts] -+// Privacy errors - importing private elements - export import im_public_mi_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require"); - export import im_public_mu_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require1"); - export import im_public_mi_public = require("m"); \ No newline at end of file + //// [privacyTopLevelAmbientExternalModuleImportWithExport_core.js] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyTypeParameterOfFunctionDeclFile.js b/testdata/baselines/reference/submodule/compiler/privacyTypeParameterOfFunctionDeclFile.js index 4da1f699d9..f0bf81e333 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyTypeParameterOfFunctionDeclFile.js +++ b/testdata/baselines/reference/submodule/compiler/privacyTypeParameterOfFunctionDeclFile.js @@ -743,9 +743,9 @@ declare class privateClass { export declare class publicClass { } export interface publicInterfaceWithPrivateTypeParameters { - new (): privateClass; // Error - (): privateClass; // Error - myMethod(): privateClass; // Error + new (): privateClass; + (): privateClass; + myMethod(): privateClass; } export interface publicInterfaceWithPublicTypeParameters { new (): publicClass; @@ -779,9 +779,9 @@ export declare class publicClassWithWithPublicTypeParametersWithoutExtends { } export declare function publicFunctionWithPublicTypeParametersWithoutExtends(): void; export interface publicInterfaceWithPrivatModuleTypeParameters { - new (): privateModule.publicClass; // Error - (): privateModule.publicClass; // Error - myMethod(): privateModule.publicClass; // Error + new (): privateModule.publicClass; + (): privateModule.publicClass; + myMethod(): privateModule.publicClass; } export declare class publicClassWithWithPrivateModuleTypeParameters { static myPublicStaticMethod(): void; @@ -794,9 +794,9 @@ export declare namespace publicModule { export class publicClass { } export interface publicInterfaceWithPrivateTypeParameters { - new (): privateClass; // Error - (): privateClass; // Error - myMethod(): privateClass; // Error + new (): privateClass; + (): privateClass; + myMethod(): privateClass; } export interface publicInterfaceWithPublicTypeParameters { new (): publicClass; @@ -830,9 +830,9 @@ export declare namespace publicModule { } export function publicFunctionWithPublicTypeParametersWithoutExtends(): void; export interface publicInterfaceWithPrivatModuleTypeParameters { - new (): privateModule.publicClass; // Error - (): privateModule.publicClass; // Error - myMethod(): privateModule.publicClass; // Error + new (): privateModule.publicClass; + (): privateModule.publicClass; + myMethod(): privateModule.publicClass; } export class publicClassWithWithPrivateModuleTypeParameters { static myPublicStaticMethod(): void; diff --git a/testdata/baselines/reference/submodule/compiler/privacyTypeParameterOfFunctionDeclFile.js.diff b/testdata/baselines/reference/submodule/compiler/privacyTypeParameterOfFunctionDeclFile.js.diff deleted file mode 100644 index 45be8f4c89..0000000000 --- a/testdata/baselines/reference/submodule/compiler/privacyTypeParameterOfFunctionDeclFile.js.diff +++ /dev/null @@ -1,54 +0,0 @@ ---- old.privacyTypeParameterOfFunctionDeclFile.js -+++ new.privacyTypeParameterOfFunctionDeclFile.js -@@= skipped -742, +742 lines =@@ - export declare class publicClass { - } - export interface publicInterfaceWithPrivateTypeParameters { -- new (): privateClass; -- (): privateClass; -- myMethod(): privateClass; -+ new (): privateClass; // Error -+ (): privateClass; // Error -+ myMethod(): privateClass; // Error - } - export interface publicInterfaceWithPublicTypeParameters { - new (): publicClass; -@@= skipped -36, +36 lines =@@ - } - export declare function publicFunctionWithPublicTypeParametersWithoutExtends(): void; - export interface publicInterfaceWithPrivatModuleTypeParameters { -- new (): privateModule.publicClass; -- (): privateModule.publicClass; -- myMethod(): privateModule.publicClass; -+ new (): privateModule.publicClass; // Error -+ (): privateModule.publicClass; // Error -+ myMethod(): privateModule.publicClass; // Error - } - export declare class publicClassWithWithPrivateModuleTypeParameters { - static myPublicStaticMethod(): void; -@@= skipped -15, +15 lines =@@ - export class publicClass { - } - export interface publicInterfaceWithPrivateTypeParameters { -- new (): privateClass; -- (): privateClass; -- myMethod(): privateClass; -+ new (): privateClass; // Error -+ (): privateClass; // Error -+ myMethod(): privateClass; // Error - } - export interface publicInterfaceWithPublicTypeParameters { - new (): publicClass; -@@= skipped -36, +36 lines =@@ - } - export function publicFunctionWithPublicTypeParametersWithoutExtends(): void; - export interface publicInterfaceWithPrivatModuleTypeParameters { -- new (): privateModule.publicClass; -- (): privateModule.publicClass; -- myMethod(): privateModule.publicClass; -+ new (): privateModule.publicClass; // Error -+ (): privateModule.publicClass; // Error -+ myMethod(): privateModule.publicClass; // Error - } - export class publicClassWithWithPrivateModuleTypeParameters { - static myPublicStaticMethod(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/privacyVarDeclFile.js b/testdata/baselines/reference/submodule/compiler/privacyVarDeclFile.js index 85b5c6419f..8cc209bf00 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyVarDeclFile.js +++ b/testdata/baselines/reference/submodule/compiler/privacyVarDeclFile.js @@ -673,15 +673,15 @@ declare class privateClass { export declare class publicClass { } export interface publicInterfaceWithPrivatePropertyTypes { - myProperty: privateClass; // Error + myProperty: privateClass; } export interface publicInterfaceWithPublicPropertyTypes { myProperty: publicClass; } export declare class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: privateClass; // Error + static myPublicStaticProperty: privateClass; private static myPrivateStaticProperty; - myPublicProperty: privateClass; // Error + myPublicProperty: privateClass; private myPrivateProperty; } export declare class publicClassWithWithPublicPropertyTypes { @@ -690,34 +690,34 @@ export declare class publicClassWithWithPublicPropertyTypes { myPublicProperty: publicClass; private myPrivateProperty; } -export declare var publicVarWithPrivatePropertyTypes: privateClass; // Error +export declare var publicVarWithPrivatePropertyTypes: privateClass; export declare var publicVarWithPublicPropertyTypes: publicClass; -export declare var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error +export declare var publicAmbientVarWithPrivatePropertyTypes: privateClass; export declare var publicAmbientVarWithPublicPropertyTypes: publicClass; export interface publicInterfaceWithPrivateModulePropertyTypes { - myProperty: privateModule.publicClass; // Error + myProperty: privateModule.publicClass; } export declare class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: privateModule.publicClass; // Error - myPublicProperty: privateModule.publicClass; // Error + static myPublicStaticProperty: privateModule.publicClass; + myPublicProperty: privateModule.publicClass; } -export declare var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error -export declare var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error +export declare var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; +export declare var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; export declare namespace publicModule { class privateClass { } export class publicClass { } export interface publicInterfaceWithPrivatePropertyTypes { - myProperty: privateClass; // Error + myProperty: privateClass; } export interface publicInterfaceWithPublicPropertyTypes { myProperty: publicClass; } export class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: privateClass; // Error + static myPublicStaticProperty: privateClass; private static myPrivateStaticProperty; - myPublicProperty: privateClass; // Error + myPublicProperty: privateClass; private myPrivateProperty; } export class publicClassWithWithPublicPropertyTypes { @@ -726,19 +726,19 @@ export declare namespace publicModule { myPublicProperty: publicClass; private myPrivateProperty; } - export var publicVarWithPrivatePropertyTypes: privateClass; // Error + export var publicVarWithPrivatePropertyTypes: privateClass; export var publicVarWithPublicPropertyTypes: publicClass; - export var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error + export var publicAmbientVarWithPrivatePropertyTypes: privateClass; export var publicAmbientVarWithPublicPropertyTypes: publicClass; export interface publicInterfaceWithPrivateModulePropertyTypes { - myProperty: privateModule.publicClass; // Error + myProperty: privateModule.publicClass; } export class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: privateModule.publicClass; // Error - myPublicProperty: privateModule.publicClass; // Error + static myPublicStaticProperty: privateModule.publicClass; + myPublicProperty: privateModule.publicClass; } - export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error - export var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error + export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; + export var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; export {}; } declare namespace privateModule { @@ -838,15 +838,15 @@ declare namespace publicModuleInGlobal { export {}; } export interface publicInterfaceWithPrivatePropertyTypes { - myProperty: privateClass; // Error + myProperty: privateClass; } export interface publicInterfaceWithPublicPropertyTypes { myProperty: publicClass; } export class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: privateClass; // Error + static myPublicStaticProperty: privateClass; private static myPrivateStaticProperty; - myPublicProperty: privateClass; // Error + myPublicProperty: privateClass; private myPrivateProperty; } export class publicClassWithWithPublicPropertyTypes { @@ -855,18 +855,18 @@ declare namespace publicModuleInGlobal { myPublicProperty: publicClass; private myPrivateProperty; } - export var publicVarWithPrivatePropertyTypes: privateClass; // Error + export var publicVarWithPrivatePropertyTypes: privateClass; export var publicVarWithPublicPropertyTypes: publicClass; - export var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error + export var publicAmbientVarWithPrivatePropertyTypes: privateClass; export var publicAmbientVarWithPublicPropertyTypes: publicClass; export interface publicInterfaceWithPrivateModulePropertyTypes { - myProperty: privateModule.publicClass; // Error + myProperty: privateModule.publicClass; } export class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: privateModule.publicClass; // Error - myPublicProperty: privateModule.publicClass; // Error + static myPublicStaticProperty: privateModule.publicClass; + myPublicProperty: privateModule.publicClass; } - export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error - export var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error + export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; + export var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; export {}; } diff --git a/testdata/baselines/reference/submodule/compiler/privacyVarDeclFile.js.diff b/testdata/baselines/reference/submodule/compiler/privacyVarDeclFile.js.diff index 8f223e1a1a..289b3e77e7 100644 --- a/testdata/baselines/reference/submodule/compiler/privacyVarDeclFile.js.diff +++ b/testdata/baselines/reference/submodule/compiler/privacyVarDeclFile.js.diff @@ -217,140 +217,4 @@ + myPublicProperty; } var privateVarWithPrivateModulePropertyTypes; - })(publicModuleInGlobal || (publicModuleInGlobal = {})); -@@= skipped -45, +85 lines =@@ - export declare class publicClass { - } - export interface publicInterfaceWithPrivatePropertyTypes { -- myProperty: privateClass; -+ myProperty: privateClass; // Error - } - export interface publicInterfaceWithPublicPropertyTypes { - myProperty: publicClass; - } - export declare class publicClassWithWithPrivatePropertyTypes { -- static myPublicStaticProperty: privateClass; -+ static myPublicStaticProperty: privateClass; // Error - private static myPrivateStaticProperty; -- myPublicProperty: privateClass; -+ myPublicProperty: privateClass; // Error - private myPrivateProperty; - } - export declare class publicClassWithWithPublicPropertyTypes { -@@= skipped -17, +17 lines =@@ - myPublicProperty: publicClass; - private myPrivateProperty; - } --export declare var publicVarWithPrivatePropertyTypes: privateClass; -+export declare var publicVarWithPrivatePropertyTypes: privateClass; // Error - export declare var publicVarWithPublicPropertyTypes: publicClass; --export declare var publicAmbientVarWithPrivatePropertyTypes: privateClass; -+export declare var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error - export declare var publicAmbientVarWithPublicPropertyTypes: publicClass; - export interface publicInterfaceWithPrivateModulePropertyTypes { -- myProperty: privateModule.publicClass; -+ myProperty: privateModule.publicClass; // Error - } - export declare class publicClassWithPrivateModulePropertyTypes { -- static myPublicStaticProperty: privateModule.publicClass; -- myPublicProperty: privateModule.publicClass; -+ static myPublicStaticProperty: privateModule.publicClass; // Error -+ myPublicProperty: privateModule.publicClass; // Error - } --export declare var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; --export declare var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; -+export declare var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error -+export declare var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error - export declare namespace publicModule { - class privateClass { - } - export class publicClass { - } - export interface publicInterfaceWithPrivatePropertyTypes { -- myProperty: privateClass; -+ myProperty: privateClass; // Error - } - export interface publicInterfaceWithPublicPropertyTypes { - myProperty: publicClass; - } - export class publicClassWithWithPrivatePropertyTypes { -- static myPublicStaticProperty: privateClass; -+ static myPublicStaticProperty: privateClass; // Error - private static myPrivateStaticProperty; -- myPublicProperty: privateClass; -+ myPublicProperty: privateClass; // Error - private myPrivateProperty; - } - export class publicClassWithWithPublicPropertyTypes { -@@= skipped -36, +36 lines =@@ - myPublicProperty: publicClass; - private myPrivateProperty; - } -- export var publicVarWithPrivatePropertyTypes: privateClass; -+ export var publicVarWithPrivatePropertyTypes: privateClass; // Error - export var publicVarWithPublicPropertyTypes: publicClass; -- export var publicAmbientVarWithPrivatePropertyTypes: privateClass; -+ export var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error - export var publicAmbientVarWithPublicPropertyTypes: publicClass; - export interface publicInterfaceWithPrivateModulePropertyTypes { -- myProperty: privateModule.publicClass; -+ myProperty: privateModule.publicClass; // Error - } - export class publicClassWithPrivateModulePropertyTypes { -- static myPublicStaticProperty: privateModule.publicClass; -- myPublicProperty: privateModule.publicClass; -+ static myPublicStaticProperty: privateModule.publicClass; // Error -+ myPublicProperty: privateModule.publicClass; // Error - } -- export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; -- export var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; -+ export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error -+ export var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error - export {}; - } - declare namespace privateModule { -@@= skipped -112, +112 lines =@@ - export {}; - } - export interface publicInterfaceWithPrivatePropertyTypes { -- myProperty: privateClass; -+ myProperty: privateClass; // Error - } - export interface publicInterfaceWithPublicPropertyTypes { - myProperty: publicClass; - } - export class publicClassWithWithPrivatePropertyTypes { -- static myPublicStaticProperty: privateClass; -+ static myPublicStaticProperty: privateClass; // Error - private static myPrivateStaticProperty; -- myPublicProperty: privateClass; -+ myPublicProperty: privateClass; // Error - private myPrivateProperty; - } - export class publicClassWithWithPublicPropertyTypes { -@@= skipped -17, +17 lines =@@ - myPublicProperty: publicClass; - private myPrivateProperty; - } -- export var publicVarWithPrivatePropertyTypes: privateClass; -+ export var publicVarWithPrivatePropertyTypes: privateClass; // Error - export var publicVarWithPublicPropertyTypes: publicClass; -- export var publicAmbientVarWithPrivatePropertyTypes: privateClass; -+ export var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error - export var publicAmbientVarWithPublicPropertyTypes: publicClass; - export interface publicInterfaceWithPrivateModulePropertyTypes { -- myProperty: privateModule.publicClass; -+ myProperty: privateModule.publicClass; // Error - } - export class publicClassWithPrivateModulePropertyTypes { -- static myPublicStaticProperty: privateModule.publicClass; -- myPublicProperty: privateModule.publicClass; -+ static myPublicStaticProperty: privateModule.publicClass; // Error -+ myPublicProperty: privateModule.publicClass; // Error - } -- export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; -- export var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; -+ export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error -+ export var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error - export {}; - } \ No newline at end of file + })(publicModuleInGlobal || (publicModuleInGlobal = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/recursiveClassBaseType.js b/testdata/baselines/reference/submodule/compiler/recursiveClassBaseType.js index 4b808d75c7..7543db73ac 100644 --- a/testdata/baselines/reference/submodule/compiler/recursiveClassBaseType.js +++ b/testdata/baselines/reference/submodule/compiler/recursiveClassBaseType.js @@ -38,7 +38,6 @@ class Derived1 extends class extends Base1 { //// [recursiveClassBaseType.d.ts] -// Repro from #44281 declare const p: (fn: () => T) => T; declare const Base: (val: T) => { new (): T; @@ -48,7 +47,6 @@ declare const C_base: new () => { }; declare class C extends C_base { } -// Repro from #44359 declare abstract class Base1 { abstract root(): Derived1; } diff --git a/testdata/baselines/reference/submodule/compiler/recursiveClassBaseType.js.diff b/testdata/baselines/reference/submodule/compiler/recursiveClassBaseType.js.diff index 679204ef47..bc446c4de3 100644 --- a/testdata/baselines/reference/submodule/compiler/recursiveClassBaseType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/recursiveClassBaseType.js.diff @@ -8,20 +8,4 @@ -// Repro from #44281 class C extends Base({ x: p(() => []) }) { } - // Repro from #44359 -@@= skipped -16, +14 lines =@@ - - - //// [recursiveClassBaseType.d.ts] -+// Repro from #44281 - declare const p: (fn: () => T) => T; - declare const Base: (val: T) => { - new (): T; -@@= skipped -9, +10 lines =@@ - }; - declare class C extends C_base { - } -+// Repro from #44359 - declare abstract class Base1 { - abstract root(): Derived1; - } \ No newline at end of file + // Repro from #44359 \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/recursiveConditionalTypes.js b/testdata/baselines/reference/submodule/compiler/recursiveConditionalTypes.js index af0a193f00..2a469765c8 100644 --- a/testdata/baselines/reference/submodule/compiler/recursiveConditionalTypes.js +++ b/testdata/baselines/reference/submodule/compiler/recursiveConditionalTypes.js @@ -208,7 +208,6 @@ function foo2(value) { //// [recursiveConditionalTypes.d.ts] -// Awaiting promises type __Awaited = T extends null | undefined ? T : T extends PromiseLike ? __Awaited : T; type MyPromise = { then(f: ((value: T) => U | PromiseLike) | null | undefined): MyPromise; @@ -216,17 +215,15 @@ type MyPromise = { type InfinitePromise = Promise>; type P0 = __Awaited | null> | undefined>>; type P1 = __Awaited; -type P2 = __Awaited>; // Error +type P2 = __Awaited>; declare function f11(tx: T, ta: __Awaited, ux: U, ua: __Awaited): void; -// Flattening arrays type Flatten = T extends unknown[] ? _Flatten[] : readonly _Flatten[]; type _Flatten = T extends readonly (infer U)[] ? _Flatten : T; type InfiniteArray = InfiniteArray[]; type B0 = Flatten; type B1 = Flatten; type B2 = Flatten>; -type B3 = B2[0]; // Error -// Repeating tuples +type B3 = B2[0]; type TupleOf = N extends N ? number extends N ? T[] : _TupleOf : never; type _TupleOf = R['length'] extends N ? R : _TupleOf; type TT0 = TupleOf; @@ -234,10 +231,9 @@ type TT1 = TupleOf; type TT2 = TupleOf; type TT3 = TupleOf; type TT4 = TupleOf; -type TT5 = TupleOf; // Depth error +type TT5 = TupleOf; declare function f22(tn: TupleOf, tm: TupleOf): void; declare function f23(t: TupleOf): T; -// Inference to recursive type interface Box { value: T; } @@ -260,7 +256,6 @@ declare let b4: { }; }; }; -// Inference from nested instantiations of same generic types type Box1 = { value: T; }; @@ -269,17 +264,14 @@ type Box2 = { }; declare function foo(x: Box1>): T; declare let z: Box2>; -// Intersect tuple element types type Intersect = U extends [infer H, ...infer T] ? Intersect : R; type QQ = Intersect<[string[], number[], 7]>; -// Infer between structurally identical recursive conditional types type Unpack1 = T extends (infer U)[] ? Unpack1 : T; type Unpack2 = T extends (infer U)[] ? Unpack2 : T; declare function f20(x: Unpack1, y: Unpack2): void; type Grow1 = T['length'] extends N ? T : Grow1<[number, ...T], N>; type Grow2 = T['length'] extends N ? T : Grow2<[string, ...T], N>; declare function f21(x: Grow1<[], T>, y: Grow2<[], T>): void; -// Repros from #41756 type ParseSuccess = { rest: R; }; @@ -288,14 +280,12 @@ type TP1 = ParseManyWhitespace<" foo">; type ParseManyWhitespace2 = S extends ` ${infer R0}` ? Helper> : ParseSuccess; type Helper = T extends ParseSuccess ? ParseSuccess : null; type TP2 = ParseManyWhitespace2<" foo">; -// Repro from #46183 type NTuple = Tup['length'] extends N ? Tup : NTuple; type Add = [ ...NTuple, ...NTuple ]['length']; declare let five: Add<2, 3>; -// Repro from #46316 type _PrependNextNum> = A['length'] extends infer T ? [T, ...A] extends [...infer X] ? X : never : never; type _Enumerate, N extends number> = N extends A['length'] ? A : _Enumerate<_PrependNextNum, N> & number; type Enumerate = number extends N ? number : _Enumerate<[], N> extends (infer E)[] ? E : never; diff --git a/testdata/baselines/reference/submodule/compiler/recursiveConditionalTypes.js.diff b/testdata/baselines/reference/submodule/compiler/recursiveConditionalTypes.js.diff index c668f1a315..b1aa684066 100644 --- a/testdata/baselines/reference/submodule/compiler/recursiveConditionalTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/recursiveConditionalTypes.js.diff @@ -8,85 +8,4 @@ -// Awaiting promises function f11(tx, ta, ux, ua) { ta = ua; - ua = ta; // Error -@@= skipped -36, +34 lines =@@ - - - //// [recursiveConditionalTypes.d.ts] -+// Awaiting promises - type __Awaited = T extends null | undefined ? T : T extends PromiseLike ? __Awaited : T; - type MyPromise = { - then(f: ((value: T) => U | PromiseLike) | null | undefined): MyPromise; -@@= skipped -7, +8 lines =@@ - type InfinitePromise = Promise>; - type P0 = __Awaited | null> | undefined>>; - type P1 = __Awaited; --type P2 = __Awaited>; -+type P2 = __Awaited>; // Error - declare function f11(tx: T, ta: __Awaited, ux: U, ua: __Awaited): void; -+// Flattening arrays - type Flatten = T extends unknown[] ? _Flatten[] : readonly _Flatten[]; - type _Flatten = T extends readonly (infer U)[] ? _Flatten : T; - type InfiniteArray = InfiniteArray[]; - type B0 = Flatten; - type B1 = Flatten; - type B2 = Flatten>; --type B3 = B2[0]; -+type B3 = B2[0]; // Error -+// Repeating tuples - type TupleOf = N extends N ? number extends N ? T[] : _TupleOf : never; - type _TupleOf = R['length'] extends N ? R : _TupleOf; - type TT0 = TupleOf; -@@= skipped -16, +18 lines =@@ - type TT2 = TupleOf; - type TT3 = TupleOf; - type TT4 = TupleOf; --type TT5 = TupleOf; -+type TT5 = TupleOf; // Depth error - declare function f22(tn: TupleOf, tm: TupleOf): void; - declare function f23(t: TupleOf): T; -+// Inference to recursive type - interface Box { - value: T; - } -@@= skipped -25, +26 lines =@@ - }; - }; - }; -+// Inference from nested instantiations of same generic types - type Box1 = { - value: T; - }; -@@= skipped -8, +9 lines =@@ - }; - declare function foo(x: Box1>): T; - declare let z: Box2>; -+// Intersect tuple element types - type Intersect = U extends [infer H, ...infer T] ? Intersect : R; - type QQ = Intersect<[string[], number[], 7]>; -+// Infer between structurally identical recursive conditional types - type Unpack1 = T extends (infer U)[] ? Unpack1 : T; - type Unpack2 = T extends (infer U)[] ? Unpack2 : T; - declare function f20(x: Unpack1, y: Unpack2): void; - type Grow1 = T['length'] extends N ? T : Grow1<[number, ...T], N>; - type Grow2 = T['length'] extends N ? T : Grow2<[string, ...T], N>; - declare function f21(x: Grow1<[], T>, y: Grow2<[], T>): void; -+// Repros from #41756 - type ParseSuccess = { - rest: R; - }; -@@= skipped -16, +19 lines =@@ - type ParseManyWhitespace2 = S extends ` ${infer R0}` ? Helper> : ParseSuccess; - type Helper = T extends ParseSuccess ? ParseSuccess : null; - type TP2 = ParseManyWhitespace2<" foo">; -+// Repro from #46183 - type NTuple = Tup['length'] extends N ? Tup : NTuple; - type Add = [ - ...NTuple, - ...NTuple - ]['length']; - declare let five: Add<2, 3>; -+// Repro from #46316 - type _PrependNextNum> = A['length'] extends infer T ? [T, ...A] extends [...infer X] ? X : never : never; - type _Enumerate, N extends number> = N extends A['length'] ? A : _Enumerate<_PrependNextNum, N> & number; - type Enumerate = number extends N ? number : _Enumerate<[], N> extends (infer E)[] ? E : never; \ No newline at end of file + ua = ta; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/renamingDestructuredPropertyInFunctionType.js b/testdata/baselines/reference/submodule/compiler/renamingDestructuredPropertyInFunctionType.js index 04d11d6657..c5fd0453d8 100644 --- a/testdata/baselines/reference/submodule/compiler/renamingDestructuredPropertyInFunctionType.js +++ b/testdata/baselines/reference/submodule/compiler/renamingDestructuredPropertyInFunctionType.js @@ -94,83 +94,79 @@ function f12({ a: string = "" }) { return "a"; } //// [renamingDestructuredPropertyInFunctionType.d.ts] -// GH#37454, GH#41044 type O = { a?: string; b: number; c: number; }; -type F1 = (arg: number) => any; // OK -type F2 = ({ a: string }: O) => any; // Error -type F3 = ({ a: string, b, c }: O) => any; // Error -type F4 = ({ a: string }: O) => any; // Error -type F5 = ({ a: string, b, c }: O) => any; // Error +type F1 = (arg: number) => any; +type F2 = ({ a: string }: O) => any; +type F3 = ({ a: string, b, c }: O) => any; +type F4 = ({ a: string }: O) => any; +type F5 = ({ a: string, b, c }: O) => any; type F6 = ({ a: string }: { a: any; -}) => typeof string; // OK +}) => typeof string; type F7 = ({ a: string, b: number }: { a: any; b: any; -}) => typeof number; // Error +}) => typeof number; type F8 = ({ a, b: number }: { a: any; b: any; -}) => typeof number; // OK -type F9 = ([a, b, c]: [any, any, any]) => void; // OK -type G1 = new (arg: number) => any; // OK -type G2 = new ({ a: string }: O) => any; // Error -type G3 = new ({ a: string, b, c }: O) => any; // Error -type G4 = new ({ a: string }: O) => any; // Error -type G5 = new ({ a: string, b, c }: O) => any; // Error +}) => typeof number; +type F9 = ([a, b, c]: [any, any, any]) => void; +type G1 = new (arg: number) => any; +type G2 = new ({ a: string }: O) => any; +type G3 = new ({ a: string, b, c }: O) => any; +type G4 = new ({ a: string }: O) => any; +type G5 = new ({ a: string, b, c }: O) => any; type G6 = new ({ a: string }: { a: any; -}) => typeof string; // OK +}) => typeof string; type G7 = new ({ a: string, b: number }: { a: any; b: any; -}) => typeof number; // Error +}) => typeof number; type G8 = new ({ a, b: number }: { a: any; b: any; -}) => typeof number; // OK -type G9 = new ([a, b, c]: [any, any, any]) => void; // OK -// Below are Error but renaming is retained in declaration emit, -// since elinding it would leave invalid syntax. +}) => typeof number; +type G9 = new ([a, b, c]: [any, any, any]) => void; type F10 = ({ "a": string }: { a: any; -}) => void; // Error +}) => void; type F11 = ({ 2: string }: { 2: any; -}) => void; // Error -type F12 = ({ ["a"]: string }: O) => void; // Error +}) => void; +type F12 = ({ ["a"]: string }: O) => void; type F13 = ({ [2]: string }: { 2: any; -}) => void; // Error +}) => void; type G10 = new ({ "a": string }: { a: any; -}) => void; // Error +}) => void; type G11 = new ({ 2: string }: { 2: any; -}) => void; // Error -type G12 = new ({ ["a"]: string }: O) => void; // Error +}) => void; +type G12 = new ({ ["a"]: string }: O) => void; type G13 = new ({ [2]: string }: { 2: any; -}) => void; // Error +}) => void; interface I { - method1(arg: number): any; // OK + method1(arg: number): any; method2({ a: string }: { a: any; - }): any; // Error - (arg: number): any; // OK + }): any; + (arg: number): any; ({ a: string }: { a: any; - }): any; // Error - new (arg: number): any; // OK + }): any; + new (arg: number): any; new ({ a: string }: { a: any; - }): any; // Error + }): any; } -// Below are OK but renaming should be removed from declaration emit declare function f1({ a: string }: O): void; declare const f2: ({ a: string }: O) => void; declare const f3: ({ a: string, b, c }: O) => void; @@ -192,5 +188,4 @@ declare function f10({ ["a"]: string }: O): void; declare const f11: ({ [2]: string }: { 2: any; }) => void; -// In below case `string` should be kept because it is used declare function f12({ a: string }: O): typeof string; diff --git a/testdata/baselines/reference/submodule/compiler/renamingDestructuredPropertyInFunctionType.js.diff b/testdata/baselines/reference/submodule/compiler/renamingDestructuredPropertyInFunctionType.js.diff index 4559f84daf..b04e4ff52c 100644 --- a/testdata/baselines/reference/submodule/compiler/renamingDestructuredPropertyInFunctionType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/renamingDestructuredPropertyInFunctionType.js.diff @@ -8,119 +8,7 @@ // Below are OK but renaming should be removed from declaration emit function f1({ a: string }) { } const f2 = function ({ a: string }) { }; -@@= skipped -26, +25 lines =@@ - - - //// [renamingDestructuredPropertyInFunctionType.d.ts] -+// GH#37454, GH#41044 - type O = { - a?: string; - b: number; - c: number; - }; --type F1 = (arg: number) => any; --type F2 = ({ a: string }: O) => any; --type F3 = ({ a: string, b, c }: O) => any; --type F4 = ({ a: string }: O) => any; --type F5 = ({ a: string, b, c }: O) => any; -+type F1 = (arg: number) => any; // OK -+type F2 = ({ a: string }: O) => any; // Error -+type F3 = ({ a: string, b, c }: O) => any; // Error -+type F4 = ({ a: string }: O) => any; // Error -+type F5 = ({ a: string, b, c }: O) => any; // Error - type F6 = ({ a: string }: { - a: any; --}) => typeof string; -+}) => typeof string; // OK - type F7 = ({ a: string, b: number }: { - a: any; - b: any; --}) => typeof number; -+}) => typeof number; // Error - type F8 = ({ a, b: number }: { - a: any; - b: any; --}) => typeof number; --type F9 = ([a, b, c]: [any, any, any]) => void; --type G1 = new (arg: number) => any; --type G2 = new ({ a: string }: O) => any; --type G3 = new ({ a: string, b, c }: O) => any; --type G4 = new ({ a: string }: O) => any; --type G5 = new ({ a: string, b, c }: O) => any; -+}) => typeof number; // OK -+type F9 = ([a, b, c]: [any, any, any]) => void; // OK -+type G1 = new (arg: number) => any; // OK -+type G2 = new ({ a: string }: O) => any; // Error -+type G3 = new ({ a: string, b, c }: O) => any; // Error -+type G4 = new ({ a: string }: O) => any; // Error -+type G5 = new ({ a: string, b, c }: O) => any; // Error - type G6 = new ({ a: string }: { - a: any; --}) => typeof string; -+}) => typeof string; // OK - type G7 = new ({ a: string, b: number }: { - a: any; - b: any; --}) => typeof number; -+}) => typeof number; // Error - type G8 = new ({ a, b: number }: { - a: any; - b: any; --}) => typeof number; --type G9 = new ([a, b, c]: [any, any, any]) => void; -+}) => typeof number; // OK -+type G9 = new ([a, b, c]: [any, any, any]) => void; // OK -+// Below are Error but renaming is retained in declaration emit, -+// since elinding it would leave invalid syntax. - type F10 = ({ "a": string }: { - a: any; --}) => void; -+}) => void; // Error - type F11 = ({ 2: string }: { - 2: any; --}) => void; --type F12 = ({ ["a"]: string }: O) => void; -+}) => void; // Error -+type F12 = ({ ["a"]: string }: O) => void; // Error - type F13 = ({ [2]: string }: { - 2: any; --}) => void; -+}) => void; // Error - type G10 = new ({ "a": string }: { - a: any; --}) => void; -+}) => void; // Error - type G11 = new ({ 2: string }: { - 2: any; --}) => void; --type G12 = new ({ ["a"]: string }: O) => void; -+}) => void; // Error -+type G12 = new ({ ["a"]: string }: O) => void; // Error - type G13 = new ({ [2]: string }: { - 2: any; --}) => void; -+}) => void; // Error - interface I { -- method1(arg: number): any; -+ method1(arg: number): any; // OK - method2({ a: string }: { - a: any; -- }): any; -- (arg: number): any; -+ }): any; // Error -+ (arg: number): any; // OK - ({ a: string }: { - a: any; -- }): any; -- new (arg: number): any; -+ }): any; // Error -+ new (arg: number): any; // OK - new ({ a: string }: { - a: any; -- }): any; -+ }): any; // Error - } -+// Below are OK but renaming should be removed from declaration emit +@@= skipped -102, +101 lines =@@ declare function f1({ a: string }: O): void; declare const f2: ({ a: string }: O) => void; declare const f3: ({ a: string, b, c }: O) => void; @@ -136,10 +24,4 @@ + method({ a: string }: O): string; }; declare function f6({ a: string }: O): void; - declare const f7: ({ a: string, b, c }: O) => void; -@@= skipped -94, +98 lines =@@ - declare const f11: ({ [2]: string }: { - 2: any; - }) => void; -+// In below case `string` should be kept because it is used - declare function f12({ a: string }: O): typeof string; \ No newline at end of file + declare const f7: ({ a: string, b, c }: O) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/reverseMappedTypeDeepDeclarationEmit.js b/testdata/baselines/reference/submodule/compiler/reverseMappedTypeDeepDeclarationEmit.js index 3cf9ad9cf0..e98d5e62d8 100644 --- a/testdata/baselines/reference/submodule/compiler/reverseMappedTypeDeepDeclarationEmit.js +++ b/testdata/baselines/reference/submodule/compiler/reverseMappedTypeDeepDeclarationEmit.js @@ -59,9 +59,7 @@ export type NativeTypeValidator = (n: any) => T | undefined; export type ObjectValidator = { [K in keyof O]: Validator; }; -//native validators export declare const SimpleStringValidator: NativeTypeValidator; -///object validator function export declare const ObjValidator: (validatorObj: ObjectValidator) => (o: any) => V; export declare const test: { Test: { diff --git a/testdata/baselines/reference/submodule/compiler/reverseMappedTypeDeepDeclarationEmit.js.diff b/testdata/baselines/reference/submodule/compiler/reverseMappedTypeDeepDeclarationEmit.js.diff deleted file mode 100644 index 2da3a3a2dd..0000000000 --- a/testdata/baselines/reference/submodule/compiler/reverseMappedTypeDeepDeclarationEmit.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.reverseMappedTypeDeepDeclarationEmit.js -+++ new.reverseMappedTypeDeepDeclarationEmit.js -@@= skipped -58, +58 lines =@@ - export type ObjectValidator = { - [K in keyof O]: Validator; - }; -+//native validators - export declare const SimpleStringValidator: NativeTypeValidator; -+///object validator function - export declare const ObjValidator: (validatorObj: ObjectValidator) => (o: any) => V; - export declare const test: { - Test: { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/silentNeverPropagation.js b/testdata/baselines/reference/submodule/compiler/silentNeverPropagation.js index a630239a22..e7f5287854 100644 --- a/testdata/baselines/reference/submodule/compiler/silentNeverPropagation.js +++ b/testdata/baselines/reference/submodule/compiler/silentNeverPropagation.js @@ -36,7 +36,6 @@ breaks.foo(); //// [silentNeverPropagation.d.ts] -// Repro from #45041 type ModuleWithState = { state: TState; }; diff --git a/testdata/baselines/reference/submodule/compiler/silentNeverPropagation.js.diff b/testdata/baselines/reference/submodule/compiler/silentNeverPropagation.js.diff index f590dd5d8f..24c4d9e259 100644 --- a/testdata/baselines/reference/submodule/compiler/silentNeverPropagation.js.diff +++ b/testdata/baselines/reference/submodule/compiler/silentNeverPropagation.js.diff @@ -8,12 +8,4 @@ -// Repro from #45041 const breaks = convert(createModule({ a: 12 }, { foo() { return true; } })); breaks.state.a; - breaks.state.z; -@@= skipped -9, +7 lines =@@ - - - //// [silentNeverPropagation.d.ts] -+// Repro from #45041 - type ModuleWithState = { - state: TState; - }; \ No newline at end of file + breaks.state.z; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/spreadExpressionContextualType.js b/testdata/baselines/reference/submodule/compiler/spreadExpressionContextualType.js index eccdd2b694..fe87157055 100644 --- a/testdata/baselines/reference/submodule/compiler/spreadExpressionContextualType.js +++ b/testdata/baselines/reference/submodule/compiler/spreadExpressionContextualType.js @@ -43,7 +43,6 @@ function test2(item) { //// [spreadExpressionContextualType.d.ts] -// Repro from #43966 interface Orange { name: string; } diff --git a/testdata/baselines/reference/submodule/compiler/spreadExpressionContextualType.js.diff b/testdata/baselines/reference/submodule/compiler/spreadExpressionContextualType.js.diff index 297a601b0f..7e538b55b2 100644 --- a/testdata/baselines/reference/submodule/compiler/spreadExpressionContextualType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/spreadExpressionContextualType.js.diff @@ -8,12 +8,4 @@ -// Repro from #43966 var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { -@@= skipped -23, +21 lines =@@ - - - //// [spreadExpressionContextualType.d.ts] -+// Repro from #43966 - interface Orange { - name: string; - } \ No newline at end of file + for (var s, i = 1, n = arguments.length; i < n; i++) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/strictFunctionTypes1.js b/testdata/baselines/reference/submodule/compiler/strictFunctionTypes1.js index 64543f1c21..1008faaf04 100644 --- a/testdata/baselines/reference/submodule/compiler/strictFunctionTypes1.js +++ b/testdata/baselines/reference/submodule/compiler/strictFunctionTypes1.js @@ -79,17 +79,15 @@ declare function f4(f1: Func, f2: Func): Func; declare function fo(x: Object): void; declare function fs(x: string): void; declare function fx(f: (x: "def") => void): void; -declare const x1: (x: string) => void; // (x: string) => void -declare const x2 = "abc"; // "abc" -declare const x3: string; // "abc" | "def" -declare const x4: Func; // Func +declare const x1: (x: string) => void; +declare const x2 = "abc"; +declare const x3: string; +declare const x4: Func; declare const never: never; -declare const x10: string; // string -declare const x11: "def"; // "def" -// Repro from #21112 +declare const x10: string; +declare const x11: "def"; declare function foo(a: ReadonlyArray): T; -declare let x: never; // never -// Modified repros from #26127 +declare let x: never; interface A { a: string; } diff --git a/testdata/baselines/reference/submodule/compiler/strictFunctionTypes1.js.diff b/testdata/baselines/reference/submodule/compiler/strictFunctionTypes1.js.diff index ac3792189f..82ed6c12a7 100644 --- a/testdata/baselines/reference/submodule/compiler/strictFunctionTypes1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/strictFunctionTypes1.js.diff @@ -7,29 +7,4 @@ -"use strict"; const x1 = f1(fo, fs); // (x: string) => void const x2 = f2("abc", fo, fs); // "abc" - const x3 = f3("abc", fo, fx); // "abc" | "def" -@@= skipped -27, +26 lines =@@ - declare function fo(x: Object): void; - declare function fs(x: string): void; - declare function fx(f: (x: "def") => void): void; --declare const x1: (x: string) => void; --declare const x2 = "abc"; --declare const x3: string; --declare const x4: Func; -+declare const x1: (x: string) => void; // (x: string) => void -+declare const x2 = "abc"; // "abc" -+declare const x3: string; // "abc" | "def" -+declare const x4: Func; // Func - declare const never: never; --declare const x10: string; --declare const x11: "def"; -+declare const x10: string; // string -+declare const x11: "def"; // "def" -+// Repro from #21112 - declare function foo(a: ReadonlyArray): T; --declare let x: never; -+declare let x: never; // never -+// Modified repros from #26127 - interface A { - a: string; - } \ No newline at end of file + const x3 = f3("abc", fo, fx); // "abc" | "def" \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/strictOptionalProperties1.js b/testdata/baselines/reference/submodule/compiler/strictOptionalProperties1.js index 7a29cbdbc8..2c6759d9ca 100644 --- a/testdata/baselines/reference/submodule/compiler/strictOptionalProperties1.js +++ b/testdata/baselines/reference/submodule/compiler/strictOptionalProperties1.js @@ -393,7 +393,6 @@ declare function f4(t: [string?]): void; declare function f4a(t1: [number, string?], t2: [number, string?, string?]): void; declare function f5(t: [number, string?, boolean?]): void; declare function f6(): void; -// Example from #13195 type Props = { foo: string; bar: string; @@ -405,25 +404,21 @@ type InputProps = { declare const defaultProps: Pick; declare const inputProps: InputProps; declare const completeProps: Props; -// Example from #13195 declare const t1: [number, string?, boolean?]; declare const t2: [number, string?, boolean?]; declare const t3: [number, string?, boolean?]; declare const t4: [number, string?, boolean?]; -// Example from #13195 declare const x: { foo?: number; }; declare const y: { foo: number; }; -// Index signatures and strict optional properties interface Test { [key: string]: string; - foo?: string; // Should be ok - bar?: string | undefined; // Error + foo?: string; + bar?: string | undefined; } -// Strict optional properties and inference declare let ox1: { p: string; }; @@ -445,7 +440,6 @@ declare function f11(x: { }): T; declare function f12(x: [T?]): T; declare function f13(x: Partial): T; -// Repro from #44388 type Undefinable = T | undefined; declare function expectNotUndefined(value: Undefinable): T; interface Bar { @@ -464,7 +458,6 @@ interface U2 { declare const e: string | boolean | undefined; declare const u1: U1; declare let u2: U2; -// Repro from #44437 declare var a: { [x: string]: number | string; }; @@ -484,7 +477,6 @@ declare var e: { a: number; b?: string | undefined; }; -// Repro from #46004 interface PropsFromReact { onClick?: () => void; } @@ -495,9 +487,8 @@ type TheTypeFromMaterialUI = PropsFromReact & PropsFromMaterialUI; interface NavBottomListItem extends TheTypeFromMaterialUI { value: string; } -// Repro from #46004 -type UA = undefined; // Explicit undefined type +type UA = undefined; type UB = { x?: never; -}['x']; // undefined from missing property -type UC = UA & UB; // undefined +}['x']; +type UC = UA & UB; diff --git a/testdata/baselines/reference/submodule/compiler/strictOptionalProperties1.js.diff b/testdata/baselines/reference/submodule/compiler/strictOptionalProperties1.js.diff index 7680edf4b3..40fef49494 100644 --- a/testdata/baselines/reference/submodule/compiler/strictOptionalProperties1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/strictOptionalProperties1.js.diff @@ -7,77 +7,4 @@ -"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { -@@= skipped -156, +155 lines =@@ - declare function f4a(t1: [number, string?], t2: [number, string?, string?]): void; - declare function f5(t: [number, string?, boolean?]): void; - declare function f6(): void; -+// Example from #13195 - type Props = { - foo: string; - bar: string; -@@= skipped -11, +12 lines =@@ - declare const defaultProps: Pick; - declare const inputProps: InputProps; - declare const completeProps: Props; -+// Example from #13195 - declare const t1: [number, string?, boolean?]; - declare const t2: [number, string?, boolean?]; - declare const t3: [number, string?, boolean?]; - declare const t4: [number, string?, boolean?]; -+// Example from #13195 - declare const x: { - foo?: number; - }; - declare const y: { - foo: number; - }; -+// Index signatures and strict optional properties - interface Test { - [key: string]: string; -- foo?: string; -- bar?: string | undefined; -+ foo?: string; // Should be ok -+ bar?: string | undefined; // Error - } -+// Strict optional properties and inference - declare let ox1: { - p: string; - }; -@@= skipped -36, +40 lines =@@ - }): T; - declare function f12(x: [T?]): T; - declare function f13(x: Partial): T; -+// Repro from #44388 - type Undefinable = T | undefined; - declare function expectNotUndefined(value: Undefinable): T; - interface Bar { -@@= skipped -18, +19 lines =@@ - declare const e: string | boolean | undefined; - declare const u1: U1; - declare let u2: U2; -+// Repro from #44437 - declare var a: { - [x: string]: number | string; - }; -@@= skipped -19, +20 lines =@@ - a: number; - b?: string | undefined; - }; -+// Repro from #46004 - interface PropsFromReact { - onClick?: () => void; - } -@@= skipped -10, +11 lines =@@ - interface NavBottomListItem extends TheTypeFromMaterialUI { - value: string; - } --type UA = undefined; -+// Repro from #46004 -+type UA = undefined; // Explicit undefined type - type UB = { - x?: never; --}['x']; --type UC = UA & UB; -+}['x']; // undefined from missing property -+type UC = UA & UB; // undefined \ No newline at end of file + for (var s, i = 1, n = arguments.length; i < n; i++) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/strictOptionalProperties2.js b/testdata/baselines/reference/submodule/compiler/strictOptionalProperties2.js index 65e055d719..ce5b102681 100644 --- a/testdata/baselines/reference/submodule/compiler/strictOptionalProperties2.js +++ b/testdata/baselines/reference/submodule/compiler/strictOptionalProperties2.js @@ -11,10 +11,9 @@ type T2 = [(string | undefined)?] extends [string?] ? true : false; // false //// [strictOptionalProperties2.d.ts] -// Repro from #44567 type T1 = { 0?: string | undefined; } extends { 0?: string; -} ? true : false; // false -type T2 = [(string | undefined)?] extends [string?] ? true : false; // false +} ? true : false; +type T2 = [(string | undefined)?] extends [string?] ? true : false; diff --git a/testdata/baselines/reference/submodule/compiler/strictOptionalProperties2.js.diff b/testdata/baselines/reference/submodule/compiler/strictOptionalProperties2.js.diff index 88e8ab405c..9a3f80a1e6 100644 --- a/testdata/baselines/reference/submodule/compiler/strictOptionalProperties2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/strictOptionalProperties2.js.diff @@ -8,13 +8,4 @@ -// Repro from #44567 - //// [strictOptionalProperties2.d.ts] -+// Repro from #44567 - type T1 = { - 0?: string | undefined; - } extends { - 0?: string; --} ? true : false; --type T2 = [(string | undefined)?] extends [string?] ? true : false; -+} ? true : false; // false -+type T2 = [(string | undefined)?] extends [string?] ? true : false; // false \ No newline at end of file + //// [strictOptionalProperties2.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/stripInternal1.js b/testdata/baselines/reference/submodule/compiler/stripInternal1.js index c486cd07c9..abb4bde890 100644 --- a/testdata/baselines/reference/submodule/compiler/stripInternal1.js +++ b/testdata/baselines/reference/submodule/compiler/stripInternal1.js @@ -18,6 +18,5 @@ class C { //// [stripInternal1.d.ts] declare class C { foo(): void; - // @internal bar(): void; } diff --git a/testdata/baselines/reference/submodule/compiler/stripInternal1.js.diff b/testdata/baselines/reference/submodule/compiler/stripInternal1.js.diff index 17edb9f44a..0acbf7ff8b 100644 --- a/testdata/baselines/reference/submodule/compiler/stripInternal1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/stripInternal1.js.diff @@ -4,6 +4,5 @@ //// [stripInternal1.d.ts] declare class C { foo(): void; -+ // @internal + bar(): void; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.js b/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.js index b11cdfe0de..e55e954fd0 100644 --- a/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.js +++ b/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.js @@ -85,4 +85,4 @@ export type ControllerClass = Constructor; //// [usage.d.ts] import { ControllerClass } from './application'; import { BindingKey } from '@loopback/context'; -export declare const CONTROLLER_CLASS: BindingKey; // line in question +export declare const CONTROLLER_CLASS: BindingKey; diff --git a/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.js.diff b/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.js.diff index bc2dd76890..10b98fb918 100644 --- a/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.js.diff +++ b/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.js.diff @@ -16,10 +16,3 @@ +const context_1 = require("@loopback/context"); exports.CONTROLLER_CLASS = context_1.BindingKey.create(null); // line in question - -@@= skipped -21, +21 lines =@@ - //// [usage.d.ts] - import { ControllerClass } from './application'; - import { BindingKey } from '@loopback/context'; --export declare const CONTROLLER_CLASS: BindingKey; -+export declare const CONTROLLER_CLASS: BindingKey; // line in question \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js b/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js index bd7f735153..93227dca57 100644 --- a/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js +++ b/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js @@ -41,4 +41,4 @@ export type ControllerClass = Constructor; //// [usage.d.ts] import { ControllerClass } from './application'; import { BindingKey } from '@loopback/context'; -export declare const CONTROLLER_CLASS: BindingKey; // line in question +export declare const CONTROLLER_CLASS: BindingKey; diff --git a/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js.diff b/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js.diff index 7d6ce69370..befc3ac0f1 100644 --- a/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js.diff +++ b/testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.js.diff @@ -8,10 +8,3 @@ +const context_1 = require("@loopback/context"); exports.CONTROLLER_CLASS = context_1.BindingKey.create(null); // line in question - -@@= skipped -10, +10 lines =@@ - //// [usage.d.ts] - import { ControllerClass } from './application'; - import { BindingKey } from '@loopback/context'; --export declare const CONTROLLER_CLASS: BindingKey; -+export declare const CONTROLLER_CLASS: BindingKey; // line in question \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/typeInterfaceDeclarationsInBlockStatements1.js b/testdata/baselines/reference/submodule/compiler/typeInterfaceDeclarationsInBlockStatements1.js index c55ebe6932..44b139e644 100644 --- a/testdata/baselines/reference/submodule/compiler/typeInterfaceDeclarationsInBlockStatements1.js +++ b/testdata/baselines/reference/submodule/compiler/typeInterfaceDeclarationsInBlockStatements1.js @@ -58,7 +58,6 @@ function f4() { //// [typeInterfaceDeclarationsInBlockStatements1.d.ts] -// https://github.com/microsoft/TypeScript/issues/60175 declare function f1(): void; declare function f2(): void; declare function f3(): void; diff --git a/testdata/baselines/reference/submodule/compiler/typeInterfaceDeclarationsInBlockStatements1.js.diff b/testdata/baselines/reference/submodule/compiler/typeInterfaceDeclarationsInBlockStatements1.js.diff index b44492900e..6e00dc9aef 100644 --- a/testdata/baselines/reference/submodule/compiler/typeInterfaceDeclarationsInBlockStatements1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/typeInterfaceDeclarationsInBlockStatements1.js.diff @@ -7,12 +7,4 @@ -"use strict"; // https://github.com/microsoft/TypeScript/issues/60175 function f1() { - if (true) -@@= skipped -25, +24 lines =@@ - - - //// [typeInterfaceDeclarationsInBlockStatements1.d.ts] -+// https://github.com/microsoft/TypeScript/issues/60175 - declare function f1(): void; - declare function f2(): void; - declare function f3(): void; \ No newline at end of file + if (true) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/typeofUndefined.js b/testdata/baselines/reference/submodule/compiler/typeofUndefined.js index 481dd062a3..9e610a8f99 100644 --- a/testdata/baselines/reference/submodule/compiler/typeofUndefined.js +++ b/testdata/baselines/reference/submodule/compiler/typeofUndefined.js @@ -11,4 +11,4 @@ var x; // shouldn't be an error since type is the same as the first declaration //// [typeofUndefined.d.ts] declare var x: typeof undefined; -declare var x: any; // shouldn't be an error since type is the same as the first declaration +declare var x: any; diff --git a/testdata/baselines/reference/submodule/compiler/typeofUndefined.js.diff b/testdata/baselines/reference/submodule/compiler/typeofUndefined.js.diff deleted file mode 100644 index 93423b9aae..0000000000 --- a/testdata/baselines/reference/submodule/compiler/typeofUndefined.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.typeofUndefined.js -+++ new.typeofUndefined.js -@@= skipped -10, +10 lines =@@ - - //// [typeofUndefined.d.ts] - declare var x: typeof undefined; --declare var x: any; -+declare var x: any; // shouldn't be an error since type is the same as the first declaration \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/unionTypeWithLeadingOperator.js b/testdata/baselines/reference/submodule/compiler/unionTypeWithLeadingOperator.js index 997d996b23..f1c1cbe316 100644 --- a/testdata/baselines/reference/submodule/compiler/unionTypeWithLeadingOperator.js +++ b/testdata/baselines/reference/submodule/compiler/unionTypeWithLeadingOperator.js @@ -19,6 +19,4 @@ Object.defineProperty(exports, "__esModule", { value: true }); //// [unionTypeWithLeadingOperator.d.ts] -export type D = -/*leading0*/ -/*leading1*/ 1 /*trailing1*/ | /*leading2*/ 2 /*trailing2*/; +export type D = 1 | 2; diff --git a/testdata/baselines/reference/submodule/compiler/unionTypeWithLeadingOperator.js.diff b/testdata/baselines/reference/submodule/compiler/unionTypeWithLeadingOperator.js.diff index d7b53f98c9..7e29f003b8 100644 --- a/testdata/baselines/reference/submodule/compiler/unionTypeWithLeadingOperator.js.diff +++ b/testdata/baselines/reference/submodule/compiler/unionTypeWithLeadingOperator.js.diff @@ -5,6 +5,4 @@ //// [unionTypeWithLeadingOperator.d.ts] -export type D = /*leading1*/ 1 | /*leading2*/ 2; -+export type D = -+/*leading0*/ -+/*leading1*/ 1 /*trailing1*/ | /*leading2*/ 2 /*trailing2*/; \ No newline at end of file ++export type D = 1 | 2; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/varianceAnnotationValidation.js b/testdata/baselines/reference/submodule/compiler/varianceAnnotationValidation.js index 98656a3891..3d5dfe3c63 100644 --- a/testdata/baselines/reference/submodule/compiler/varianceAnnotationValidation.js +++ b/testdata/baselines/reference/submodule/compiler/varianceAnnotationValidation.js @@ -43,8 +43,6 @@ cd = ca; // Error //// [varianceAnnotationValidation.d.ts] -// Repro from #49607 -// Variance annotation error expected interface Controller { createAnimal: () => T; run: (animal: T) => void; diff --git a/testdata/baselines/reference/submodule/compiler/varianceAnnotationValidation.js.diff b/testdata/baselines/reference/submodule/compiler/varianceAnnotationValidation.js.diff index c5c8ee2d28..0277acfb2a 100644 --- a/testdata/baselines/reference/submodule/compiler/varianceAnnotationValidation.js.diff +++ b/testdata/baselines/reference/submodule/compiler/varianceAnnotationValidation.js.diff @@ -8,13 +8,4 @@ -// Repro from #49607 ; class Dog { - run() { } -@@= skipped -14, +12 lines =@@ - - - //// [varianceAnnotationValidation.d.ts] -+// Repro from #49607 -+// Variance annotation error expected - interface Controller { - createAnimal: () => T; - run: (animal: T) => void; \ No newline at end of file + run() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/verbatim-declarations-parameters.js b/testdata/baselines/reference/submodule/compiler/verbatim-declarations-parameters.js index d52d67d585..1a50cac9eb 100644 --- a/testdata/baselines/reference/submodule/compiler/verbatim-declarations-parameters.js +++ b/testdata/baselines/reference/submodule/compiler/verbatim-declarations-parameters.js @@ -63,19 +63,11 @@ export declare class Foo { resolveType?: { [x: string]: any; } | undefined; - constructor( - // Type node is accurate, preserve - reuseTypeNode?: Map | undefined, reuseTypeNode2?: Exclude, - // Resolve type node, requires adding | undefined - resolveType?: { + constructor(reuseTypeNode?: Map | undefined, reuseTypeNode2?: Exclude, resolveType?: { [x: string]: any; } | undefined); } -export declare function foo1( -// Type node is accurate, preserve -reuseTypeNode: Map | undefined, reuseTypeNode2: Exclude, -// Resolve type node, requires adding | undefined -resolveType: { +export declare function foo1(reuseTypeNode: Map | undefined, reuseTypeNode2: Exclude, resolveType: { [x: string]: any; } | undefined, requiredParam: number): void; export {}; diff --git a/testdata/baselines/reference/submodule/compiler/verbatim-declarations-parameters.js.diff b/testdata/baselines/reference/submodule/compiler/verbatim-declarations-parameters.js.diff index ad3e65ee24..fbc6d623a5 100644 --- a/testdata/baselines/reference/submodule/compiler/verbatim-declarations-parameters.js.diff +++ b/testdata/baselines/reference/submodule/compiler/verbatim-declarations-parameters.js.diff @@ -19,20 +19,12 @@ + resolveType?: { + [x: string]: any; + } | undefined; -+ constructor( -+ // Type node is accurate, preserve -+ reuseTypeNode?: Map | undefined, reuseTypeNode2?: Exclude, -+ // Resolve type node, requires adding | undefined -+ resolveType?: { ++ constructor(reuseTypeNode?: Map | undefined, reuseTypeNode2?: Exclude, resolveType?: { + [x: string]: any; + } | undefined); } -export declare function foo1(reuseTypeNode: Map | undefined, reuseTypeNode2: Exclude, resolveType: Map | undefined, requiredParam: number): void; -+export declare function foo1( -+// Type node is accurate, preserve -+reuseTypeNode: Map | undefined, reuseTypeNode2: Exclude, -+// Resolve type node, requires adding | undefined -+resolveType: { ++export declare function foo1(reuseTypeNode: Map | undefined, reuseTypeNode2: Exclude, resolveType: { + [x: string]: any; +} | undefined, requiredParam: number): void; export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/widenedTypes.js b/testdata/baselines/reference/submodule/compiler/widenedTypes.js index 25f118b1af..657030ffdf 100644 --- a/testdata/baselines/reference/submodule/compiler/widenedTypes.js +++ b/testdata/baselines/reference/submodule/compiler/widenedTypes.js @@ -52,8 +52,7 @@ declare var u: number[]; declare var ob: { x: typeof undefined; }; -// Highlights the difference between array literals and object literals -declare var arr: string[]; // not assignable because null is not widened. BCT is {} +declare var arr: string[]; declare var obj: { [x: string]: string; -}; // assignable because null is widened, and therefore BCT is any +}; diff --git a/testdata/baselines/reference/submodule/compiler/widenedTypes.js.diff b/testdata/baselines/reference/submodule/compiler/widenedTypes.js.diff deleted file mode 100644 index 2d69a1c7ab..0000000000 --- a/testdata/baselines/reference/submodule/compiler/widenedTypes.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.widenedTypes.js -+++ new.widenedTypes.js -@@= skipped -51, +51 lines =@@ - declare var ob: { - x: typeof undefined; - }; --declare var arr: string[]; -+// Highlights the difference between array literals and object literals -+declare var arr: string[]; // not assignable because null is not widened. BCT is {} - declare var obj: { - [x: string]: string; --}; -+}; // assignable because null is widened, and therefore BCT is any \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/ambientAccessors.js b/testdata/baselines/reference/submodule/conformance/ambientAccessors.js index 27d3fc6509..f9835d3460 100644 --- a/testdata/baselines/reference/submodule/conformance/ambientAccessors.js +++ b/testdata/baselines/reference/submodule/conformance/ambientAccessors.js @@ -20,7 +20,6 @@ declare class C { //// [ambientAccessors.d.ts] -// ok to use accessors in ambient class in ES3 declare class C { static get a(): string; static set a(value: string); diff --git a/testdata/baselines/reference/submodule/conformance/ambientAccessors.js.diff b/testdata/baselines/reference/submodule/conformance/ambientAccessors.js.diff deleted file mode 100644 index 514661efad..0000000000 --- a/testdata/baselines/reference/submodule/conformance/ambientAccessors.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.ambientAccessors.js -+++ new.ambientAccessors.js -@@= skipped -19, +19 lines =@@ - - - //// [ambientAccessors.d.ts] -+// ok to use accessors in ambient class in ES3 - declare class C { - static get a(): string; - static set a(value: string); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/arbitraryModuleNamespaceIdentifiers_exportEmpty.js b/testdata/baselines/reference/submodule/conformance/arbitraryModuleNamespaceIdentifiers_exportEmpty.js index 55ed088410..a04910b793 100644 --- a/testdata/baselines/reference/submodule/conformance/arbitraryModuleNamespaceIdentifiers_exportEmpty.js +++ b/testdata/baselines/reference/submodule/conformance/arbitraryModuleNamespaceIdentifiers_exportEmpty.js @@ -19,7 +19,5 @@ const bar = foo; //// [arbitraryModuleNamespaceIdentifiers_exportEmpty.d.ts] -// This should result in a type error. In particular, the empty string is a now -// a valid module export name, and should be treated as such here. declare const empty = "empty"; export { empty as "" }; diff --git a/testdata/baselines/reference/submodule/conformance/arbitraryModuleNamespaceIdentifiers_exportEmpty.js.diff b/testdata/baselines/reference/submodule/conformance/arbitraryModuleNamespaceIdentifiers_exportEmpty.js.diff deleted file mode 100644 index 3da1bfcb4f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/arbitraryModuleNamespaceIdentifiers_exportEmpty.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.arbitraryModuleNamespaceIdentifiers_exportEmpty.js -+++ new.arbitraryModuleNamespaceIdentifiers_exportEmpty.js -@@= skipped -18, +18 lines =@@ - - - //// [arbitraryModuleNamespaceIdentifiers_exportEmpty.d.ts] -+// This should result in a type error. In particular, the empty string is a now -+// a valid module export name, and should be treated as such here. - declare const empty = "empty"; - export { empty as "" }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/assertionTypePredicates1.js b/testdata/baselines/reference/submodule/conformance/assertionTypePredicates1.js index a5222039ba..af9444700d 100644 --- a/testdata/baselines/reference/submodule/conformance/assertionTypePredicates1.js +++ b/testdata/baselines/reference/submodule/conformance/assertionTypePredicates1.js @@ -486,7 +486,6 @@ declare class Derived extends Test { baz(x: number): void; } declare function f11(items: Test[]): void; -// Invalid constructs declare let Q1: new (x: unknown) => x is string; declare let Q2: new (x: boolean) => asserts x; declare let Q3: new (x: unknown) => asserts x is string; @@ -497,7 +496,6 @@ declare class Wat { set p2(x: asserts this is string); } declare function f20(x: unknown): void; -// Repro from #35940 interface Thing { good: boolean; isGood(): asserts this is GoodThing; diff --git a/testdata/baselines/reference/submodule/conformance/assertionTypePredicates1.js.diff b/testdata/baselines/reference/submodule/conformance/assertionTypePredicates1.js.diff index b73c6d69a5..1e6390dc46 100644 --- a/testdata/baselines/reference/submodule/conformance/assertionTypePredicates1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/assertionTypePredicates1.js.diff @@ -40,20 +40,4 @@ + assert = (value) => { }; other(x) { this.assert(x); // ok - x; -@@= skipped -73, +69 lines =@@ - baz(x: number): void; - } - declare function f11(items: Test[]): void; -+// Invalid constructs - declare let Q1: new (x: unknown) => x is string; - declare let Q2: new (x: boolean) => asserts x; - declare let Q3: new (x: unknown) => asserts x is string; -@@= skipped -10, +11 lines =@@ - set p2(x: asserts this is string); - } - declare function f20(x: unknown): void; -+// Repro from #35940 - interface Thing { - good: boolean; - isGood(): asserts this is GoodThing; \ No newline at end of file + x; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js index 699e13f260..8a0b1128f3 100644 --- a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js +++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js @@ -21,7 +21,6 @@ exports.y = 2; //// [assignmentToVoidZero1.d.ts] -// #38552 export var y = exports.x = void 0; export var x = 1; export var y = 2; diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff index 6b0f45d4bc..18d553cbdf 100644 --- a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff @@ -19,7 +19,6 @@ //// [assignmentToVoidZero1.d.ts] -export const x: 1; -export const y: 2; -+// #38552 +export var y = exports.x = void 0; +export var x = 1; +export var y = 2; diff --git a/testdata/baselines/reference/submodule/conformance/circularIndexedAccessErrors.js b/testdata/baselines/reference/submodule/conformance/circularIndexedAccessErrors.js index 1691a02f46..98026efb5d 100644 --- a/testdata/baselines/reference/submodule/conformance/circularIndexedAccessErrors.js +++ b/testdata/baselines/reference/submodule/conformance/circularIndexedAccessErrors.js @@ -57,10 +57,10 @@ function foo() { //// [circularIndexedAccessErrors.d.ts] type T1 = { - x: T1["x"]; // Error + x: T1["x"]; }; type T2 = { - x: T2[K]; // Error + x: T2[K]; y: number; }; declare let x2: T2<"x">; @@ -69,17 +69,16 @@ interface T3> { x: T["x"]; } interface T4> { - x: T4["x"]; // Error + x: T4["x"]; } declare class C1 { - x: C1["x"]; // Error + x: C1["x"]; } declare class C2 { x: this["y"]; y: this["z"]; z: this["x"]; } -// Repro from #12627 interface Foo { hello: boolean; } diff --git a/testdata/baselines/reference/submodule/conformance/circularIndexedAccessErrors.js.diff b/testdata/baselines/reference/submodule/conformance/circularIndexedAccessErrors.js.diff index 86b656a5f5..52b7d78433 100644 --- a/testdata/baselines/reference/submodule/conformance/circularIndexedAccessErrors.js.diff +++ b/testdata/baselines/reference/submodule/conformance/circularIndexedAccessErrors.js.diff @@ -12,37 +12,4 @@ + z; } function foo() { - } -@@= skipped -9, +13 lines =@@ - - //// [circularIndexedAccessErrors.d.ts] - type T1 = { -- x: T1["x"]; -+ x: T1["x"]; // Error - }; - type T2 = { -- x: T2[K]; -+ x: T2[K]; // Error - y: number; - }; - declare let x2: T2<"x">; -@@= skipped -12, +12 lines =@@ - x: T["x"]; - } - interface T4> { -- x: T4["x"]; -+ x: T4["x"]; // Error - } - declare class C1 { -- x: C1["x"]; -+ x: C1["x"]; // Error - } - declare class C2 { - x: this["y"]; - y: this["z"]; - z: this["x"]; - } -+// Repro from #12627 - interface Foo { - hello: boolean; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility.js b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility.js index 2429ca6324..dd5905dd43 100644 --- a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility.js +++ b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility.js @@ -98,7 +98,7 @@ declare class E { protected constructor(x: number); } declare var c: C; -declare var d: any; // error -declare var e: any; // error +declare var d: any; +declare var e: any; declare namespace Generic { } diff --git a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility.js.diff b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility.js.diff index 19dadcb416..cf734bf894 100644 --- a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility.js.diff +++ b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility.js.diff @@ -39,14 +39,4 @@ + x; constructor(x) { this.x = x; - } -@@= skipped -34, +37 lines =@@ - protected constructor(x: number); - } - declare var c: C; --declare var d: any; --declare var e: any; -+declare var d: any; // error -+declare var e: any; // error - declare namespace Generic { - } \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility2.js b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility2.js index c62d6505a5..92a848fe1d 100644 --- a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility2.js +++ b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility2.js @@ -136,19 +136,19 @@ declare class DerivedB extends BaseB { x: number; constructor(x: number); createInstance(): void; - createBaseInstance(): void; // ok - static staticBaseInstance(): void; // ok + createBaseInstance(): void; + static staticBaseInstance(): void; } declare class DerivedC extends BaseC { x: number; constructor(x: number); createInstance(): void; - createBaseInstance(): void; // error - static staticBaseInstance(): void; // error + createBaseInstance(): void; + static staticBaseInstance(): void; } declare var ba: BaseA; -declare var bb: any; // error -declare var bc: any; // error +declare var bb: any; +declare var bc: any; declare var da: DerivedA; declare var db: DerivedB; declare var dc: DerivedC; diff --git a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility2.js.diff b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility2.js.diff index f78174e79c..9ea50165ab 100644 --- a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility2.js.diff @@ -45,30 +45,4 @@ + x; constructor(x) { super(x); - this.x = x; -@@= skipped -44, +45 lines =@@ - x: number; - constructor(x: number); - createInstance(): void; -- createBaseInstance(): void; -- static staticBaseInstance(): void; -+ createBaseInstance(): void; // ok -+ static staticBaseInstance(): void; // ok - } - declare class DerivedC extends BaseC { - x: number; - constructor(x: number); - createInstance(): void; -- createBaseInstance(): void; -- static staticBaseInstance(): void; -+ createBaseInstance(): void; // error -+ static staticBaseInstance(): void; // error - } - declare var ba: BaseA; --declare var bb: any; --declare var bc: any; -+declare var bb: any; // error -+declare var bc: any; // error - declare var da: DerivedA; - declare var db: DerivedB; - declare var dc: DerivedC; \ No newline at end of file + this.x = x; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility3.js b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility3.js index 7914eb4b79..26ef3bd89f 100644 --- a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility3.js +++ b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility3.js @@ -94,9 +94,6 @@ declare class Qux { x: number; private constructor(); } -// b is public declare let a: typeof Foo; -// b is protected declare let b: typeof Baz; -// c is private declare let c: typeof Qux; diff --git a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility3.js.diff b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility3.js.diff index 71eec33635..904a16c0d7 100644 --- a/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/classConstructorAccessibility3.js.diff @@ -25,14 +25,4 @@ + x; constructor(x) { this.x = x; - } -@@= skipped -53, +57 lines =@@ - x: number; - private constructor(); - } -+// b is public - declare let a: typeof Foo; -+// b is protected - declare let b: typeof Baz; -+// c is private - declare let c: typeof Qux; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.js b/testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.js index d16903524d..a008887421 100644 --- a/testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.js +++ b/testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.js @@ -55,12 +55,12 @@ class D { //// [classConstructorOverloadsAccessibility.d.ts] declare class A { - constructor(a: boolean); // error - protected constructor(a: number); // error + constructor(a: boolean); + protected constructor(a: number); private constructor(); } declare class B { - protected constructor(a: number); // error + protected constructor(a: number); constructor(a: string); } declare class C { diff --git a/testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.js.diff b/testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.js.diff deleted file mode 100644 index 10ac7688e3..0000000000 --- a/testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.classConstructorOverloadsAccessibility.js -+++ new.classConstructorOverloadsAccessibility.js -@@= skipped -54, +54 lines =@@ - - //// [classConstructorOverloadsAccessibility.d.ts] - declare class A { -- constructor(a: boolean); -- protected constructor(a: number); -+ constructor(a: boolean); // error -+ protected constructor(a: number); // error - private constructor(); - } - declare class B { -- protected constructor(a: number); -+ protected constructor(a: number); // error - constructor(a: string); - } - declare class C { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/conditionalTypes1.js b/testdata/baselines/reference/submodule/conformance/conditionalTypes1.js index 8c375e72db..0101e0fc20 100644 --- a/testdata/baselines/reference/submodule/conformance/conditionalTypes1.js +++ b/testdata/baselines/reference/submodule/conformance/conditionalTypes1.js @@ -461,12 +461,12 @@ assign(a, { o: 2, c: { 0: { a: 2, c: '213123' } } }); //// [conditionalTypes1.d.ts] -type T00 = Exclude<"a" | "b" | "c" | "d", "a" | "c" | "f">; // "b" | "d" -type T01 = Extract<"a" | "b" | "c" | "d", "a" | "c" | "f">; // "a" | "c" -type T02 = Exclude void), Function>; // string | number -type T03 = Extract void), Function>; // () => void -type T04 = NonNullable; // string | number -type T05 = NonNullable<(() => string) | string[] | null | undefined>; // (() => string) | string[] +type T00 = Exclude<"a" | "b" | "c" | "d", "a" | "c" | "f">; +type T01 = Extract<"a" | "b" | "c" | "d", "a" | "c" | "f">; +type T02 = Exclude void), Function>; +type T03 = Extract void), Function>; +type T04 = NonNullable; +type T05 = NonNullable<(() => string) | string[] | null | undefined>; declare function f1(x: T, y: NonNullable): void; declare function f2(x: T, y: NonNullable): void; declare function f3(x: Partial[keyof T], y: NonNullable[keyof T]>): void; @@ -485,46 +485,46 @@ type Options = { }; type T10 = Exclude; // { k: "c", c: boolean } +}>; type T11 = Extract; // { k: "a", a: number } | { k: "b", b: string } +}>; type T12 = Exclude; // { k: "c", c: boolean } +}>; type T13 = Extract; // { k: "a", a: number } | { k: "b", b: string } +}>; type T14 = Exclude; // Options +}>; type T15 = Extract; // never +}>; declare function f5(p: K): Extract; declare let x0: { k: "a"; a: number; -}; // { k: "a", a: number } +}; type OptionsOfKind = Extract; -type T16 = OptionsOfKind<"a" | "b">; // { k: "a", a: number } | { k: "b", b: string } +type T16 = OptionsOfKind<"a" | "b">; type Select = Extract; -type T17 = Select; // // { k: "a", a: number } | { k: "b", b: string } +type T17 = Select; type TypeName = T extends string ? "string" : T extends number ? "number" : T extends boolean ? "boolean" : T extends undefined ? "undefined" : T extends Function ? "function" : "object"; -type T20 = TypeName void)>; // "string" | "function" -type T21 = TypeName; // "string" | "number" | "boolean" | "undefined" | "function" | "object" -type T22 = TypeName; // never -type T23 = TypeName<{}>; // "object" +type T20 = TypeName void)>; +type T21 = TypeName; +type T22 = TypeName; +type T23 = TypeName<{}>; type KnockoutObservable = { object: T; }; @@ -595,57 +595,55 @@ type Not = If; type And = If; type Or = If; type IsString = Extends; -type Q1 = IsString; // false -type Q2 = IsString<"abc">; // true -type Q3 = IsString; // boolean -type Q4 = IsString; // never -type N1 = Not; // true -type N2 = Not; // false -type N3 = Not; // boolean -type A1 = And; // false -type A2 = And; // false -type A3 = And; // false -type A4 = And; // true -type A5 = And; // false -type A6 = And; // false -type A7 = And; // boolean -type A8 = And; // boolean -type A9 = And; // boolean -type O1 = Or; // false -type O2 = Or; // true -type O3 = Or; // true -type O4 = Or; // true -type O5 = Or; // boolean -type O6 = Or; // boolean -type O7 = Or; // true -type O8 = Or; // true -type O9 = Or; // boolean -type T40 = never extends never ? true : false; // true -type T41 = number extends never ? true : false; // false -type T42 = never extends number ? true : false; // true +type Q1 = IsString; +type Q2 = IsString<"abc">; +type Q3 = IsString; +type Q4 = IsString; +type N1 = Not; +type N2 = Not; +type N3 = Not; +type A1 = And; +type A2 = And; +type A3 = And; +type A4 = And; +type A5 = And; +type A6 = And; +type A7 = And; +type A8 = And; +type A9 = And; +type O1 = Or; +type O2 = Or; +type O3 = Or; +type O4 = Or; +type O5 = Or; +type O6 = Or; +type O7 = Or; +type O8 = Or; +type O9 = Or; +type T40 = never extends never ? true : false; +type T41 = number extends never ? true : false; +type T42 = never extends number ? true : false; type IsNever = [T] extends [never] ? true : false; -type T50 = IsNever; // true -type T51 = IsNever; // false -type T52 = IsNever; // false +type T50 = IsNever; +type T51 = IsNever; +type T52 = IsNever; declare function f22(x: T extends (infer U)[] ? U[] : never): void; declare function f23(x: T extends (infer U)[] ? U[] : never): void; -// Repros from #21664 type Eq = T extends U ? U extends T ? true : false : false; -type T60 = Eq; // true -type T61 = Eq; // false -type T62 = Eq; // false -type T63 = Eq; // true +type T60 = Eq; +type T61 = Eq; +type T62 = Eq; +type T63 = Eq; type Eq1 = Eq extends false ? false : true; -type T70 = Eq1; // true -type T71 = Eq1; // false -type T72 = Eq1; // false -type T73 = Eq1; // true +type T70 = Eq1; +type T71 = Eq1; +type T72 = Eq1; +type T73 = Eq1; type Eq2 = Eq extends true ? true : false; -type T80 = Eq2; // true -type T81 = Eq2; // false -type T82 = Eq2; // false -type T83 = Eq2; // true -// Repro from #21756 +type T80 = Eq2; +type T81 = Eq2; +type T82 = Eq2; +type T83 = Eq2; type Foo = T extends string ? boolean : number; type Bar = T extends string ? boolean : number; declare const convert: (value: Foo) => Bar; @@ -654,7 +652,6 @@ declare const convert2: (value: Foo) => Foo; declare function f31(): void; declare function f32(): void; declare function f33(): void; -// Repro from #21823 type T90 = T extends 0 ? 0 : () => 0; type T91 = T extends 0 ? 0 : () => 0; declare const f40: (a: T90) => T91; @@ -666,10 +663,8 @@ declare const f43: (a: T93) => T92; type T94 = T extends string ? true : 42; type T95 = T extends string ? boolean : number; declare const f44: (value: T94) => T95; -declare const f45: (value: T95) => T94; // Error -// Repro from #21863 +declare const f45: (value: T95) => T94; declare function f50(): void; -// Repro from #21862 type OldDiff = ({ [P in T]: P; } & { @@ -689,22 +684,20 @@ interface B2 extends A { b: 'b'; c: NewDiff; } -type c1 = B1['c']; // 'c' | 'b' -type c2 = B2['c']; // 'c' | 'b' -// Repro from #21929 +type c1 = B1['c']; +type c2 = B2['c']; type NonFooKeys1 = OldDiff; type NonFooKeys2 = Exclude; type Test1 = NonFooKeys1<{ foo: 1; bar: 2; baz: 3; -}>; // "bar" | "baz" +}>; type Test2 = NonFooKeys2<{ foo: 1; bar: 2; baz: 3; -}>; // "bar" | "baz" -// Repro from #21729 +}>; interface Foo2 { foo: string; } @@ -717,7 +710,6 @@ declare interface ExtractFooBar { type Extracted = { [K in keyof Struct]: Struct[K] extends FooBar ? ExtractFooBar : Struct[K]; }; -// Repro from #22985 type RecursivePartial = { [P in keyof T]?: T[P] extends Array ? { [index: number]: RecursivePartial; @@ -732,6 +724,5 @@ declare var a: { c: string; }[]; }; -// Repros from #23843 type Weird1 = ((a: U) => never) extends ((a: U) => never) ? never : never; type Weird2 = ((a: U) => U) extends ((a: U) => infer T) ? T : never; diff --git a/testdata/baselines/reference/submodule/conformance/conditionalTypes1.js.diff b/testdata/baselines/reference/submodule/conformance/conditionalTypes1.js.diff index acd9f321fd..c812303c18 100644 --- a/testdata/baselines/reference/submodule/conformance/conditionalTypes1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/conditionalTypes1.js.diff @@ -8,184 +8,7 @@ function f1(x, y) { x = y; y = x; // Error -@@= skipped -98, +97 lines =@@ - - - //// [conditionalTypes1.d.ts] --type T00 = Exclude<"a" | "b" | "c" | "d", "a" | "c" | "f">; --type T01 = Extract<"a" | "b" | "c" | "d", "a" | "c" | "f">; --type T02 = Exclude void), Function>; --type T03 = Extract void), Function>; --type T04 = NonNullable; --type T05 = NonNullable<(() => string) | string[] | null | undefined>; -+type T00 = Exclude<"a" | "b" | "c" | "d", "a" | "c" | "f">; // "b" | "d" -+type T01 = Extract<"a" | "b" | "c" | "d", "a" | "c" | "f">; // "a" | "c" -+type T02 = Exclude void), Function>; // string | number -+type T03 = Extract void), Function>; // () => void -+type T04 = NonNullable; // string | number -+type T05 = NonNullable<(() => string) | string[] | null | undefined>; // (() => string) | string[] - declare function f1(x: T, y: NonNullable): void; - declare function f2(x: T, y: NonNullable): void; - declare function f3(x: Partial[keyof T], y: NonNullable[keyof T]>): void; -@@= skipped -24, +24 lines =@@ - }; - type T10 = Exclude; -+}>; // { k: "c", c: boolean } - type T11 = Extract; -+}>; // { k: "a", a: number } | { k: "b", b: string } - type T12 = Exclude; -+}>; // { k: "c", c: boolean } - type T13 = Extract; -+}>; // { k: "a", a: number } | { k: "b", b: string } - type T14 = Exclude; -+}>; // Options - type T15 = Extract; -+}>; // never - declare function f5(p: K): Extract; - declare let x0: { - k: "a"; - a: number; --}; -+}; // { k: "a", a: number } - type OptionsOfKind = Extract; --type T16 = OptionsOfKind<"a" | "b">; -+type T16 = OptionsOfKind<"a" | "b">; // { k: "a", a: number } | { k: "b", b: string } - type Select = Extract; --type T17 = Select; -+type T17 = Select; // // { k: "a", a: number } | { k: "b", b: string } - type TypeName = T extends string ? "string" : T extends number ? "number" : T extends boolean ? "boolean" : T extends undefined ? "undefined" : T extends Function ? "function" : "object"; --type T20 = TypeName void)>; --type T21 = TypeName; --type T22 = TypeName; --type T23 = TypeName<{}>; -+type T20 = TypeName void)>; // "string" | "function" -+type T21 = TypeName; // "string" | "number" | "boolean" | "undefined" | "function" | "object" -+type T22 = TypeName; // never -+type T23 = TypeName<{}>; // "object" - type KnockoutObservable = { - object: T; - }; -@@= skipped -110, +110 lines =@@ - type And = If; - type Or = If; - type IsString = Extends; --type Q1 = IsString; --type Q2 = IsString<"abc">; --type Q3 = IsString; --type Q4 = IsString; --type N1 = Not; --type N2 = Not; --type N3 = Not; --type A1 = And; --type A2 = And; --type A3 = And; --type A4 = And; --type A5 = And; --type A6 = And; --type A7 = And; --type A8 = And; --type A9 = And; --type O1 = Or; --type O2 = Or; --type O3 = Or; --type O4 = Or; --type O5 = Or; --type O6 = Or; --type O7 = Or; --type O8 = Or; --type O9 = Or; --type T40 = never extends never ? true : false; --type T41 = number extends never ? true : false; --type T42 = never extends number ? true : false; -+type Q1 = IsString; // false -+type Q2 = IsString<"abc">; // true -+type Q3 = IsString; // boolean -+type Q4 = IsString; // never -+type N1 = Not; // true -+type N2 = Not; // false -+type N3 = Not; // boolean -+type A1 = And; // false -+type A2 = And; // false -+type A3 = And; // false -+type A4 = And; // true -+type A5 = And; // false -+type A6 = And; // false -+type A7 = And; // boolean -+type A8 = And; // boolean -+type A9 = And; // boolean -+type O1 = Or; // false -+type O2 = Or; // true -+type O3 = Or; // true -+type O4 = Or; // true -+type O5 = Or; // boolean -+type O6 = Or; // boolean -+type O7 = Or; // true -+type O8 = Or; // true -+type O9 = Or; // boolean -+type T40 = never extends never ? true : false; // true -+type T41 = number extends never ? true : false; // false -+type T42 = never extends number ? true : false; // true - type IsNever = [T] extends [never] ? true : false; --type T50 = IsNever; --type T51 = IsNever; --type T52 = IsNever; -+type T50 = IsNever; // true -+type T51 = IsNever; // false -+type T52 = IsNever; // false - declare function f22(x: T extends (infer U)[] ? U[] : never): void; - declare function f23(x: T extends (infer U)[] ? U[] : never): void; -+// Repros from #21664 - type Eq = T extends U ? U extends T ? true : false : false; --type T60 = Eq; --type T61 = Eq; --type T62 = Eq; --type T63 = Eq; -+type T60 = Eq; // true -+type T61 = Eq; // false -+type T62 = Eq; // false -+type T63 = Eq; // true - type Eq1 = Eq extends false ? false : true; --type T70 = Eq1; --type T71 = Eq1; --type T72 = Eq1; --type T73 = Eq1; -+type T70 = Eq1; // true -+type T71 = Eq1; // false -+type T72 = Eq1; // false -+type T73 = Eq1; // true - type Eq2 = Eq extends true ? true : false; --type T80 = Eq2; --type T81 = Eq2; --type T82 = Eq2; --type T83 = Eq2; -+type T80 = Eq2; // true -+type T81 = Eq2; // false -+type T82 = Eq2; // false -+type T83 = Eq2; // true -+// Repro from #21756 - type Foo = T extends string ? boolean : number; +@@= skipped -285, +284 lines =@@ type Bar = T extends string ? boolean : number; declare const convert: (value: Foo) => Bar; type Baz = Foo; @@ -193,62 +16,4 @@ +declare const convert2: (value: Foo) => Foo; declare function f31(): void; declare function f32(): void; - declare function f33(): void; -+// Repro from #21823 - type T90 = T extends 0 ? 0 : () => 0; - type T91 = T extends 0 ? 0 : () => 0; - declare const f40: (a: T90) => T91; -@@= skipped -68, +71 lines =@@ - type T94 = T extends string ? true : 42; - type T95 = T extends string ? boolean : number; - declare const f44: (value: T94) => T95; --declare const f45: (value: T95) => T94; -+declare const f45: (value: T95) => T94; // Error -+// Repro from #21863 - declare function f50(): void; -+// Repro from #21862 - type OldDiff = ({ - [P in T]: P; - } & { -@@= skipped -21, +23 lines =@@ - b: 'b'; - c: NewDiff; - } --type c1 = B1['c']; --type c2 = B2['c']; -+type c1 = B1['c']; // 'c' | 'b' -+type c2 = B2['c']; // 'c' | 'b' -+// Repro from #21929 - type NonFooKeys1 = OldDiff; - type NonFooKeys2 = Exclude; - type Test1 = NonFooKeys1<{ - foo: 1; - bar: 2; - baz: 3; --}>; -+}>; // "bar" | "baz" - type Test2 = NonFooKeys2<{ - foo: 1; - bar: 2; - baz: 3; --}>; -+}>; // "bar" | "baz" -+// Repro from #21729 - interface Foo2 { - foo: string; - } -@@= skipped -26, +28 lines =@@ - type Extracted = { - [K in keyof Struct]: Struct[K] extends FooBar ? ExtractFooBar : Struct[K]; - }; -+// Repro from #22985 - type RecursivePartial = { - [P in keyof T]?: T[P] extends Array ? { - [index: number]: RecursivePartial; -@@= skipped -14, +15 lines =@@ - c: string; - }[]; - }; -+// Repros from #23843 - type Weird1 = ((a: U) => never) extends ((a: U) => never) ? never : never; - type Weird2 = ((a: U) => U) extends ((a: U) => infer T) ? T : never; \ No newline at end of file + declare function f33(): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/conditionalTypes2.js b/testdata/baselines/reference/submodule/conformance/conditionalTypes2.js index dfc48da0dd..e6a1560873 100644 --- a/testdata/baselines/reference/submodule/conformance/conditionalTypes2.js +++ b/testdata/baselines/reference/submodule/conformance/conditionalTypes2.js @@ -333,7 +333,6 @@ interface Invariant { declare function f1(a: Covariant, b: Covariant): void; declare function f2(a: Contravariant, b: Contravariant): void; declare function f3(a: Invariant, b: Invariant): void; -// Extract is a T that is known to be a Function declare function isFunction(value: T): value is Extract; declare function getFunction(item: T): Extract; declare function f10(x: T): void; @@ -356,7 +355,6 @@ declare function fooBat(x: { type Extract2 = T extends U ? T extends V ? T : never : never; declare function f20(x: Extract, Bar>, y: Extract, z: Extract2): void; declare function f21(x: Extract, Bar>, y: Extract, z: Extract2): void; -// Repros from #22860 declare class Opt { toVector(): Vector; } @@ -375,11 +373,9 @@ interface B1 extends A1 { bat: B1>; boom: T extends any ? true : true; } -// Repro from #22899 declare function toString1(value: object | Function): string; declare function toString2(value: Function): string; declare function foo(value: T): void; -// Repro from #23052 type A = T extends object ? { [Q in { [P in keyof T]: T[P] extends V ? P : P; @@ -395,7 +391,6 @@ type C = { [P in keyof T]: T[P] extends V ? P : P; }[keyof T]]: C; }; -// Repro from #23100 type A2 = T extends object ? T extends any[] ? T : { [Q in keyof T]: A2; } : T; @@ -405,42 +400,37 @@ type B2 = T extends object ? T extends any[] ? T : { type C2 = T extends object ? { [Q in keyof T]: C2; } : T; -// Repro from #28654 type MaybeTrue = true extends T["b"] ? "yes" : "no"; type T0 = MaybeTrue<{ b: never; -}>; // "no" +}>; type T1 = MaybeTrue<{ b: false; -}>; // "no" +}>; type T2 = MaybeTrue<{ b: true; -}>; // "yes" +}>; type T3 = MaybeTrue<{ b: boolean; -}>; // "yes" -// Repro from #28824 +}>; type Union = 'a' | 'b'; type Product = { f1: A; f2: B; }; type ProductUnion = Product<'a', 0> | Product<'b', 1>; -// {a: "b"; b: "a"} type UnionComplement = { [K in Union]: Exclude; }; type UCA = UnionComplement['a']; type UCB = UnionComplement['b']; -// {a: "a"; b: "b"} type UnionComplementComplement = { [K in Union]: Exclude>; }; type UCCA = UnionComplementComplement['a']; type UCCB = UnionComplementComplement['b']; -// {a: Product<'b', 1>; b: Product<'a', 0>} type ProductComplement = { [K in Union]: Exclude; b: Product<'b', 1>} type ProductComplementComplement = { [K in Union]: Exclude = U extends T ? { [K in keyof U]: number; } : never; @@ -464,7 +452,6 @@ type What = Hmm<{}, { a: string; }>; declare const w: What; -// Repro from #33568 declare function save(_response: IRootResponse): void; declare function exportCommand(functionToCall: IExportCallback): void; interface IExportCallback { @@ -484,7 +471,6 @@ declare type GetPropertyNamesOfType = { [PropertyName in Extract]: T[PropertyName] extends RestrictToType ? PropertyName : never; }[Extract]; declare type GetAllPropertiesOfType = Pick, RestrictToType>>; -// Repro from #33568 declare function ff(x: Foo3): void; declare function gg(f: (x: Foo3) => void): void; type Foo3 = T extends number ? { @@ -492,7 +478,6 @@ type Foo3 = T extends number ? { } : { x: T; }; -// Repro from #41613 type Wat = { x: { y: 0; @@ -503,4 +488,4 @@ type Wat = { [P in K]: 0; }; } ? true : false; -type Huh = Wat<"y">; // true +type Huh = Wat<"y">; diff --git a/testdata/baselines/reference/submodule/conformance/conditionalTypes2.js.diff b/testdata/baselines/reference/submodule/conformance/conditionalTypes2.js.diff index 877a49bca8..d9c43e957d 100644 --- a/testdata/baselines/reference/submodule/conformance/conditionalTypes2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/conditionalTypes2.js.diff @@ -7,133 +7,4 @@ -"use strict"; function f1(a, b) { a = b; - b = a; // Error -@@= skipped -86, +85 lines =@@ - declare function f1(a: Covariant, b: Covariant): void; - declare function f2(a: Contravariant, b: Contravariant): void; - declare function f3(a: Invariant, b: Invariant): void; -+// Extract is a T that is known to be a Function - declare function isFunction(value: T): value is Extract; - declare function getFunction(item: T): Extract; - declare function f10(x: T): void; -@@= skipped -22, +23 lines =@@ - type Extract2 = T extends U ? T extends V ? T : never : never; - declare function f20(x: Extract, Bar>, y: Extract, z: Extract2): void; - declare function f21(x: Extract, Bar>, y: Extract, z: Extract2): void; -+// Repros from #22860 - declare class Opt { - toVector(): Vector; - } -@@= skipped -18, +19 lines =@@ - bat: B1>; - boom: T extends any ? true : true; - } -+// Repro from #22899 - declare function toString1(value: object | Function): string; - declare function toString2(value: Function): string; - declare function foo(value: T): void; -+// Repro from #23052 - type A = T extends object ? { - [Q in { - [P in keyof T]: T[P] extends V ? P : P; -@@= skipped -18, +20 lines =@@ - [P in keyof T]: T[P] extends V ? P : P; - }[keyof T]]: C; - }; -+// Repro from #23100 - type A2 = T extends object ? T extends any[] ? T : { - [Q in keyof T]: A2; - } : T; -@@= skipped -9, +10 lines =@@ - type C2 = T extends object ? { - [Q in keyof T]: C2; - } : T; -+// Repro from #28654 - type MaybeTrue = true extends T["b"] ? "yes" : "no"; - type T0 = MaybeTrue<{ - b: never; --}>; -+}>; // "no" - type T1 = MaybeTrue<{ - b: false; --}>; -+}>; // "no" - type T2 = MaybeTrue<{ - b: true; --}>; -+}>; // "yes" - type T3 = MaybeTrue<{ - b: boolean; --}>; -+}>; // "yes" -+// Repro from #28824 - type Union = 'a' | 'b'; - type Product = { - f1: A; - f2: B; - }; - type ProductUnion = Product<'a', 0> | Product<'b', 1>; -+// {a: "b"; b: "a"} - type UnionComplement = { - [K in Union]: Exclude; - }; - type UCA = UnionComplement['a']; - type UCB = UnionComplement['b']; -+// {a: "a"; b: "b"} - type UnionComplementComplement = { - [K in Union]: Exclude>; - }; - type UCCA = UnionComplementComplement['a']; - type UCCB = UnionComplementComplement['b']; -+// {a: Product<'b', 1>; b: Product<'a', 0>} - type ProductComplement = { - [K in Union]: Exclude; b: Product<'b', 1>} - type ProductComplementComplement = { - [K in Union]: Exclude = U extends T ? { - [K in keyof U]: number; - } : never; -@@= skipped -7, +8 lines =@@ - a: string; - }>; - declare const w: What; -+// Repro from #33568 - declare function save(_response: IRootResponse): void; - declare function exportCommand(functionToCall: IExportCallback): void; - interface IExportCallback { -@@= skipped -19, +20 lines =@@ - [PropertyName in Extract]: T[PropertyName] extends RestrictToType ? PropertyName : never; - }[Extract]; - declare type GetAllPropertiesOfType = Pick, RestrictToType>>; -+// Repro from #33568 - declare function ff(x: Foo3): void; - declare function gg(f: (x: Foo3) => void): void; - type Foo3 = T extends number ? { -@@= skipped -7, +8 lines =@@ - } : { - x: T; - }; -+// Repro from #41613 - type Wat = { - x: { - y: 0; -@@= skipped -10, +11 lines =@@ - [P in K]: 0; - }; - } ? true : false; --type Huh = Wat<"y">; -+type Huh = Wat<"y">; // true \ No newline at end of file + b = a; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/constAssertions.js b/testdata/baselines/reference/submodule/conformance/constAssertions.js index a580257824..fb52bb68f6 100644 --- a/testdata/baselines/reference/submodule/conformance/constAssertions.js +++ b/testdata/baselines/reference/submodule/conformance/constAssertions.js @@ -285,7 +285,7 @@ declare let o8: { declare let o9: { readonly x: 10; readonly foo: () => void; -}; // Error +}; declare let p1: 10; declare let p2: -10; declare let p3: readonly [10]; @@ -308,9 +308,9 @@ declare let q5: { readonly y: 20; }; declare function id(x: T): T; -declare let e1: "abc"; // Error -declare let e2: 0 | 1; // Error -declare let e3: 1; // Error +declare let e1: "abc"; +declare let e2: 0 | 1; +declare let e3: 1; declare let t1: "foo"; declare let t2: "bar"; declare let t3: "foo-bar"; @@ -328,7 +328,6 @@ declare function ff4(verify: boolean, contentMatches: boolean): "verify_match" | declare function ff5(verify: boolean, contentMatches: boolean): "verify_match" | "verify_nonMatch" | "write_match" | "write_nonMatch"; declare function accessorNames(propName: S): readonly [`get-${S}`, `set-${S}`]; declare const ns1: readonly ["get-foo", "set-foo"]; -// repro from https://github.com/microsoft/TypeScript/issues/54374 interface Foo54374 { a: 1; b: 2; diff --git a/testdata/baselines/reference/submodule/conformance/constAssertions.js.diff b/testdata/baselines/reference/submodule/conformance/constAssertions.js.diff index 9ddaacb5f5..48f9e54325 100644 --- a/testdata/baselines/reference/submodule/conformance/constAssertions.js.diff +++ b/testdata/baselines/reference/submodule/conformance/constAssertions.js.diff @@ -7,34 +7,4 @@ -"use strict"; let v1 = 'abc'; let v2 = `abc`; - let v3 = 10; -@@= skipped -163, +162 lines =@@ - declare let o9: { - readonly x: 10; - readonly foo: () => void; --}; -+}; // Error - declare let p1: 10; - declare let p2: -10; - declare let p3: readonly [10]; -@@= skipped -23, +23 lines =@@ - readonly y: 20; - }; - declare function id(x: T): T; --declare let e1: "abc"; --declare let e2: 0 | 1; --declare let e3: 1; -+declare let e1: "abc"; // Error -+declare let e2: 0 | 1; // Error -+declare let e3: 1; // Error - declare let t1: "foo"; - declare let t2: "bar"; - declare let t3: "foo-bar"; -@@= skipped -20, +20 lines =@@ - declare function ff5(verify: boolean, contentMatches: boolean): "verify_match" | "verify_nonMatch" | "write_match" | "write_nonMatch"; - declare function accessorNames(propName: S): readonly [`get-${S}`, `set-${S}`]; - declare const ns1: readonly ["get-foo", "set-foo"]; -+// repro from https://github.com/microsoft/TypeScript/issues/54374 - interface Foo54374 { - a: 1; - b: 2; \ No newline at end of file + let v3 = 10; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/constEnum1.js b/testdata/baselines/reference/submodule/conformance/constEnum1.js index f4ad768132..1407a5a56c 100644 --- a/testdata/baselines/reference/submodule/conformance/constEnum1.js +++ b/testdata/baselines/reference/submodule/conformance/constEnum1.js @@ -20,9 +20,6 @@ const enum E { //// [constEnum1.d.ts] -// An enum declaration that specifies a const modifier is a constant enum declaration. -// In a constant enum declaration, all members must have constant values and -// it is an error for a member declaration to specify an expression that isn't classified as a constant enum expression. declare const enum E { a = 10, b = 10, diff --git a/testdata/baselines/reference/submodule/conformance/constEnum1.js.diff b/testdata/baselines/reference/submodule/conformance/constEnum1.js.diff index 458cec4796..5cc495eb28 100644 --- a/testdata/baselines/reference/submodule/conformance/constEnum1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/constEnum1.js.diff @@ -4,15 +4,9 @@ } //// [constEnum1.js] -+ -+ -+//// [constEnum1.d.ts] - // An enum declaration that specifies a const modifier is a constant enum declaration. - // In a constant enum declaration, all members must have constant values and - // it is an error for a member declaration to specify an expression that isn't classified as a constant enum expression. -- -- --//// [constEnum1.d.ts] - declare const enum E { - a = 10, - b = 10, \ No newline at end of file +-// An enum declaration that specifies a const modifier is a constant enum declaration. +-// In a constant enum declaration, all members must have constant values and +-// it is an error for a member declaration to specify an expression that isn't classified as a constant enum expression. + + + //// [constEnum1.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/constEnum2.js b/testdata/baselines/reference/submodule/conformance/constEnum2.js index 9349392b80..9cfe7bf79a 100644 --- a/testdata/baselines/reference/submodule/conformance/constEnum2.js +++ b/testdata/baselines/reference/submodule/conformance/constEnum2.js @@ -24,10 +24,6 @@ const CONST = 9000 % 2; //// [constEnum2.d.ts] -// An enum declaration that specifies a const modifier is a constant enum declaration. -// In a constant enum declaration, all members must have constant values and -// it is an error for a member declaration to specify an expression that isn't classified as a constant enum expression. -// Error : not a constant enum expression declare const CONST: number; declare const enum D { d = 10, diff --git a/testdata/baselines/reference/submodule/conformance/constEnum2.js.diff b/testdata/baselines/reference/submodule/conformance/constEnum2.js.diff deleted file mode 100644 index 100dc20369..0000000000 --- a/testdata/baselines/reference/submodule/conformance/constEnum2.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.constEnum2.js -+++ new.constEnum2.js -@@= skipped -23, +23 lines =@@ - - - //// [constEnum2.d.ts] -+// An enum declaration that specifies a const modifier is a constant enum declaration. -+// In a constant enum declaration, all members must have constant values and -+// it is an error for a member declaration to specify an expression that isn't classified as a constant enum expression. -+// Error : not a constant enum expression - declare const CONST: number; - declare const enum D { - d = 10, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess1.js b/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess1.js index 5609bbf144..515d5586f9 100644 --- a/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess1.js +++ b/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess1.js @@ -49,9 +49,6 @@ class C { //// [constEnumPropertyAccess1.d.ts] -// constant enum declarations are completely erased in the emitted JavaScript code. -// it is an error to reference a constant enum object in any other context -// than a property access that selects one of the enum's members declare const enum G { A = 1, B = 2, diff --git a/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess1.js.diff b/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess1.js.diff index 034e3bfa18..22d2b3f75a 100644 --- a/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess1.js.diff @@ -9,14 +9,4 @@ -// than a property access that selects one of the enum's members var o = { 1: true - }; -@@= skipped -19, +16 lines =@@ - - - //// [constEnumPropertyAccess1.d.ts] -+// constant enum declarations are completely erased in the emitted JavaScript code. -+// it is an error to reference a constant enum object in any other context -+// than a property access that selects one of the enum's members - declare const enum G { - A = 1, - B = 2, \ No newline at end of file + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess2.js b/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess2.js index b372812f34..4918e81259 100644 --- a/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess2.js +++ b/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess2.js @@ -32,16 +32,12 @@ function foo(x) { } //// [constEnumPropertyAccess2.d.ts] -// constant enum declarations are completely erased in the emitted JavaScript code. -// it is an error to reference a constant enum object in any other context -// than a property access that selects one of the enum's members declare const enum G { A = 1, B = 2, C = 3, D = 2 } -// Error from referring constant enum in any other context than a property access declare var z: typeof G; declare var z1: any; declare var g: G; diff --git a/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess2.js.diff b/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess2.js.diff index bb6f2079f8..6b32f24ad8 100644 --- a/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/constEnumPropertyAccess2.js.diff @@ -9,21 +9,4 @@ -// than a property access that selects one of the enum's members // Error from referring constant enum in any other context than a property access var z = G; - var z1 = G[1 /* G.A */]; -@@= skipped -13, +10 lines =@@ - - - //// [constEnumPropertyAccess2.d.ts] -+// constant enum declarations are completely erased in the emitted JavaScript code. -+// it is an error to reference a constant enum object in any other context -+// than a property access that selects one of the enum's members - declare const enum G { - A = 1, - B = 2, - C = 3, - D = 2 - } -+// Error from referring constant enum in any other context than a property access - declare var z: typeof G; - declare var z1: any; - declare var g: G; \ No newline at end of file + var z1 = G[1 /* G.A */]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/controlFlowAliasing.js b/testdata/baselines/reference/submodule/conformance/controlFlowAliasing.js index ed4ae474ee..0c8cd0fa66 100644 --- a/testdata/baselines/reference/submodule/conformance/controlFlowAliasing.js +++ b/testdata/baselines/reference/submodule/conformance/controlFlowAliasing.js @@ -574,7 +574,6 @@ class A53267 { //// [controlFlowAliasing.d.ts] -// Narrowing by aliased conditional expressions declare function f10(x: string | number): void; declare function f11(x: unknown): void; declare function f12(x: string | number | boolean): void; @@ -655,7 +654,6 @@ declare function f28(obj?: { kind: 'bar'; bar: number; }): void; -// Narrowing by aliased discriminant property access declare function f30(obj: { kind: 'foo'; foo: string; @@ -692,7 +690,6 @@ declare class C11 { readonly x: string | number; constructor(x: string | number); } -// Mixing of aliased discriminants and conditionals declare function f40(obj: { kind: 'foo'; foo?: string; @@ -700,7 +697,6 @@ declare function f40(obj: { kind: 'bar'; bar?: number; }): void; -// Unsupported narrowing of destructured payload by destructured discriminant type Data = { kind: 'str'; payload: string; @@ -710,12 +706,10 @@ type Data = { }; declare function gg2(obj: Data): void; declare function foo({ kind, payload }: Data): void; -// Repro from #45830 declare const obj: { fn: () => boolean; }; declare const a: boolean; -// repro from https://github.com/microsoft/TypeScript/issues/53267 declare class Utils { static isDefined(value: T): value is NonNullable; } diff --git a/testdata/baselines/reference/submodule/conformance/controlFlowAliasing.js.diff b/testdata/baselines/reference/submodule/conformance/controlFlowAliasing.js.diff index adbf4bd5c6..3fb08ed871 100644 --- a/testdata/baselines/reference/submodule/conformance/controlFlowAliasing.js.diff +++ b/testdata/baselines/reference/submodule/conformance/controlFlowAliasing.js.diff @@ -31,49 +31,4 @@ + testNumber; foo() { const isNumber = Utils.isDefined(this.testNumber); - if (isNumber) { -@@= skipped -10, +11 lines =@@ - - - //// [controlFlowAliasing.d.ts] -+// Narrowing by aliased conditional expressions - declare function f10(x: string | number): void; - declare function f11(x: unknown): void; - declare function f12(x: string | number | boolean): void; -@@= skipped -80, +81 lines =@@ - kind: 'bar'; - bar: number; - }): void; -+// Narrowing by aliased discriminant property access - declare function f30(obj: { - kind: 'foo'; - foo: string; -@@= skipped -36, +37 lines =@@ - readonly x: string | number; - constructor(x: string | number); - } -+// Mixing of aliased discriminants and conditionals - declare function f40(obj: { - kind: 'foo'; - foo?: string; -@@= skipped -7, +8 lines =@@ - kind: 'bar'; - bar?: number; - }): void; -+// Unsupported narrowing of destructured payload by destructured discriminant - type Data = { - kind: 'str'; - payload: string; -@@= skipped -9, +10 lines =@@ - }; - declare function gg2(obj: Data): void; - declare function foo({ kind, payload }: Data): void; -+// Repro from #45830 - declare const obj: { - fn: () => boolean; - }; - declare const a: boolean; -+// repro from https://github.com/microsoft/TypeScript/issues/53267 - declare class Utils { - static isDefined(value: T): value is NonNullable; - } \ No newline at end of file + if (isNumber) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationEmitWorkWithInlineComments.js b/testdata/baselines/reference/submodule/conformance/declarationEmitWorkWithInlineComments.js index aca8051a9d..a18bfafefb 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationEmitWorkWithInlineComments.js +++ b/testdata/baselines/reference/submodule/conformance/declarationEmitWorkWithInlineComments.js @@ -107,7 +107,7 @@ export declare class Foo { isInternal3: string; isInternal4: string; isInternal5: string; - isInternal6: string /* trailing */; + isInternal6: string; isInternal7: string; notInternal1: string; notInternal2: string; @@ -115,29 +115,15 @@ export declare class Foo { constructor( /** @internal */ isInternal1: string, - /** @internal */ isInternal2: string, /** @internal */ isInternal3: string, - // @internal - isInternal4: string, - // nothing + /** @internal */ isInternal2: string, /** @internal */ isInternal3: string, isInternal4: string, /** @internal */ - isInternal5: string, - /* @internal */ isInternal6: string /* trailing */, - /* @internal */ isInternal7: string, /** @internal */ - // not work - notInternal1: string, - // @internal - /* not work */ - notInternal2: string, - /* not work */ - // @internal - /* not work */ - notInternal3: string); + isInternal5: string, isInternal6: string, isInternal7: string, /** @internal */ notInternal1: string, notInternal2: string, notInternal3: string); } export declare class Bar { isInternal1: string; - constructor(/* @internal */ isInternal1: string); + constructor(isInternal1: string); } export declare class Baz { isInternal: string; - constructor(/* @internal */ isInternal: string); + constructor(isInternal: string); } diff --git a/testdata/baselines/reference/submodule/conformance/declarationEmitWorkWithInlineComments.js.diff b/testdata/baselines/reference/submodule/conformance/declarationEmitWorkWithInlineComments.js.diff index 480f4eea0a..b13a679478 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationEmitWorkWithInlineComments.js.diff +++ b/testdata/baselines/reference/submodule/conformance/declarationEmitWorkWithInlineComments.js.diff @@ -41,39 +41,21 @@ + isInternal3: string; + isInternal4: string; + isInternal5: string; -+ isInternal6: string /* trailing */; ++ isInternal6: string; + isInternal7: string; notInternal1: string; notInternal2: string; notInternal3: string; - constructor( - /** @internal */ - isInternal1: string, -- /** @internal */ isInternal2: string, /** @internal */ isInternal3: string, isInternal4: string, -+ /** @internal */ isInternal2: string, /** @internal */ isInternal3: string, -+ // @internal -+ isInternal4: string, -+ // nothing - /** @internal */ -- isInternal5: string, isInternal6: string, isInternal7: string, /** @internal */ notInternal1: string, notInternal2: string, notInternal3: string); -+ isInternal5: string, -+ /* @internal */ isInternal6: string /* trailing */, -+ /* @internal */ isInternal7: string, /** @internal */ -+ // not work -+ notInternal1: string, -+ // @internal -+ /* not work */ -+ notInternal2: string, -+ /* not work */ -+ // @internal -+ /* not work */ -+ notInternal3: string); +@@= skipped -11, +18 lines =@@ + isInternal5: string, isInternal6: string, isInternal7: string, /** @internal */ notInternal1: string, notInternal2: string, notInternal3: string); } export declare class Bar { +- constructor(/* @internal */ isInternal1: string); + isInternal1: string; - constructor(/* @internal */ isInternal1: string); ++ constructor(isInternal1: string); } export declare class Baz { +- constructor(/* @internal */ isInternal: string); + isInternal: string; - constructor(/* @internal */ isInternal: string); ++ constructor(isInternal: string); } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/definiteAssignmentAssertions.js b/testdata/baselines/reference/submodule/conformance/definiteAssignmentAssertions.js index 13029babed..331d479b45 100644 --- a/testdata/baselines/reference/submodule/conformance/definiteAssignmentAssertions.js +++ b/testdata/baselines/reference/submodule/conformance/definiteAssignmentAssertions.js @@ -141,38 +141,30 @@ function f4() { //// [definiteAssignmentAssertions.d.ts] -// Suppress strict property initialization check declare class C1 { a: number; - b: string; // Error + b: string; } -// Suppress definite assignment check in constructor declare class C2 { a: number; constructor(); } -// Definite assignment assertion requires type annotation, no initializer, no static modifier declare class C3 { a: number; b: number; static c: number; d: any; } -// Definite assignment assertion not permitted in ambient context declare class C4 { a: number; } -// Definite assignment assertion not permitted on abstract property declare abstract class C5 { abstract a: number; } -// Suppress definite assignment check for variable declare function f1(): void; declare function f2(): void; declare function f3(): void; -// Definite assignment assertion requires type annotation and no initializer declare function f4(): void; -// Definite assignment assertion not permitted in ambient context declare let v1: number; declare var v2: number; declare namespace foo { diff --git a/testdata/baselines/reference/submodule/conformance/definiteAssignmentAssertions.js.diff b/testdata/baselines/reference/submodule/conformance/definiteAssignmentAssertions.js.diff index ad6b1a8640..1ca19fc1b5 100644 --- a/testdata/baselines/reference/submodule/conformance/definiteAssignmentAssertions.js.diff +++ b/testdata/baselines/reference/submodule/conformance/definiteAssignmentAssertions.js.diff @@ -33,44 +33,4 @@ + a; } // Suppress definite assignment check for variable - function f1() { -@@= skipped -53, +56 lines =@@ - - - //// [definiteAssignmentAssertions.d.ts] -+// Suppress strict property initialization check - declare class C1 { - a: number; -- b: string; -+ b: string; // Error - } -+// Suppress definite assignment check in constructor - declare class C2 { - a: number; - constructor(); - } -+// Definite assignment assertion requires type annotation, no initializer, no static modifier - declare class C3 { - a: number; - b: number; - static c: number; - d: any; - } -+// Definite assignment assertion not permitted in ambient context - declare class C4 { - a: number; - } -+// Definite assignment assertion not permitted on abstract property - declare abstract class C5 { - abstract a: number; - } -+// Suppress definite assignment check for variable - declare function f1(): void; - declare function f2(): void; - declare function f3(): void; -+// Definite assignment assertion requires type annotation and no initializer - declare function f4(): void; -+// Definite assignment assertion not permitted in ambient context - declare let v1: number; - declare var v2: number; - declare namespace foo { \ No newline at end of file + function f1() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/dependentDestructuredVariables.js b/testdata/baselines/reference/submodule/conformance/dependentDestructuredVariables.js index 47854af5ba..52834bb8da 100644 --- a/testdata/baselines/reference/submodule/conformance/dependentDestructuredVariables.js +++ b/testdata/baselines/reference/submodule/conformance/dependentDestructuredVariables.js @@ -809,7 +809,6 @@ type Action = { declare function f10({ kind, payload }: Action): void; declare function f11(action: Action): void; declare function f12({ kind, payload }: Action): void; -// repro #50206 declare function f13({ kind, payload }: T): void; declare function f14(t: T): void; type Action2 = { @@ -836,7 +835,6 @@ type Foo = { declare function f30({ kind, isA }: Foo): void; type Args = ['A', number] | ['B', string]; declare function f40(...[kind, data]: Args): void; -// Repro from #35283 interface A { variant: 'a'; value: T; @@ -849,7 +847,6 @@ type AB = A | B; declare function printValue(t: T): void; declare function printValueList(t: Array): void; declare function unrefined1(ab: AB): void; -// Repro from #38020 type Action3 = { type: 'add'; payload: { @@ -862,10 +859,8 @@ type Action3 = { }; }; declare const reducerBroken: (state: number, { type, payload }: Action3) => number; -// Repro from #46143 declare var it: Iterator; declare const value: any, done: boolean | undefined; -// Repro from #46658 declare function f50(cb: (...args: Args) => void): void; declare const f51: (...args: ['A', number] | ['B', string]) => void; declare const f52: (...args: ['A', number] | ['B']) => void; @@ -878,7 +873,6 @@ type ReducerArgs = ["add", { secondArr: any[]; }]; declare const reducer: (...args: ReducerArgs) => void; -// repro from https://github.com/microsoft/TypeScript/pull/47190#issuecomment-1057603588 type FooMethod = { method(...args: [ type: "str", @@ -919,10 +913,8 @@ type FooAsyncGenMethod = { ]): AsyncGenerator; }; declare let fooAsyncGenM: FooAsyncGenMethod; -// Repro from #48345 type Func = (...args: T) => void; declare const f60: Func; -// Repro from #48902 declare function foo({ value1, test1, test2, test3, test4, test5, test6, test7, test8, test9 }: { test1?: any; test2?: any; @@ -935,7 +927,6 @@ declare function foo({ value1, test1, test2, test3, test4, test5, test6, test7, test9?: any; value1: any; }): void; -// Repro from #49772 declare function fa1(x: [true, number] | [false, string]): void; declare function fa2(x: { guard: true; @@ -945,7 +936,6 @@ declare function fa2(x: { value: string; }): void; declare const fa3: (...args: [true, number] | [false, string]) => void; -// Repro from #52152 interface ClientEvents { warn: [message: string]; shardDisconnect: [closeEvent: CloseEvent, shardId: number]; @@ -954,12 +944,8 @@ declare class Client { on(event: K, listener: (...args: ClientEvents[K]) => void): void; } declare const bot: Client; -// Destructuring tuple types with different arities declare function fz1([x, y]: [1, 2] | [3, 4] | [5]): void; -// Repro from #55661 declare function tooNarrow([x, y]: [1, 1] | [1, 2] | [1]): void; -// https://github.com/microsoft/TypeScript/issues/56312 declare function parameterReassigned1([x, y]: [1, 2] | [3, 4]): void; declare function parameterReassigned2([x, y]: [1, 2] | [3, 4]): void; -// https://github.com/microsoft/TypeScript/pull/56313#discussion_r1416482490 declare const parameterReassignedContextualRest1: (...args: [1, 2] | [3, 4]) => void; diff --git a/testdata/baselines/reference/submodule/conformance/dependentDestructuredVariables.js.diff b/testdata/baselines/reference/submodule/conformance/dependentDestructuredVariables.js.diff index c383ae8754..6c5a39f865 100644 --- a/testdata/baselines/reference/submodule/conformance/dependentDestructuredVariables.js.diff +++ b/testdata/baselines/reference/submodule/conformance/dependentDestructuredVariables.js.diff @@ -75,87 +75,4 @@ + } } }; - const f60 = (kind, payload) => { -@@= skipped -129, +127 lines =@@ - declare function f10({ kind, payload }: Action): void; - declare function f11(action: Action): void; - declare function f12({ kind, payload }: Action): void; -+// repro #50206 - declare function f13({ kind, payload }: T): void; - declare function f14(t: T): void; - type Action2 = { -@@= skipped -26, +27 lines =@@ - declare function f30({ kind, isA }: Foo): void; - type Args = ['A', number] | ['B', string]; - declare function f40(...[kind, data]: Args): void; -+// Repro from #35283 - interface A { - variant: 'a'; - value: T; -@@= skipped -12, +13 lines =@@ - declare function printValue(t: T): void; - declare function printValueList(t: Array): void; - declare function unrefined1(ab: AB): void; -+// Repro from #38020 - type Action3 = { - type: 'add'; - payload: { -@@= skipped -12, +13 lines =@@ - }; - }; - declare const reducerBroken: (state: number, { type, payload }: Action3) => number; -+// Repro from #46143 - declare var it: Iterator; - declare const value: any, done: boolean | undefined; -+// Repro from #46658 - declare function f50(cb: (...args: Args) => void): void; - declare const f51: (...args: ['A', number] | ['B', string]) => void; - declare const f52: (...args: ['A', number] | ['B']) => void; -@@= skipped -14, +16 lines =@@ - secondArr: any[]; - }]; - declare const reducer: (...args: ReducerArgs) => void; -+// repro from https://github.com/microsoft/TypeScript/pull/47190#issuecomment-1057603588 - type FooMethod = { - method(...args: [ - type: "str", -@@= skipped -40, +41 lines =@@ - ]): AsyncGenerator; - }; - declare let fooAsyncGenM: FooAsyncGenMethod; -+// Repro from #48345 - type Func = (...args: T) => void; - declare const f60: Func; -+// Repro from #48902 - declare function foo({ value1, test1, test2, test3, test4, test5, test6, test7, test8, test9 }: { - test1?: any; - test2?: any; -@@= skipped -14, +16 lines =@@ - test9?: any; - value1: any; - }): void; -+// Repro from #49772 - declare function fa1(x: [true, number] | [false, string]): void; - declare function fa2(x: { - guard: true; -@@= skipped -9, +10 lines =@@ - value: string; - }): void; - declare const fa3: (...args: [true, number] | [false, string]) => void; -+// Repro from #52152 - interface ClientEvents { - warn: [message: string]; - shardDisconnect: [closeEvent: CloseEvent, shardId: number]; -@@= skipped -8, +9 lines =@@ - on(event: K, listener: (...args: ClientEvents[K]) => void): void; - } - declare const bot: Client; -+// Destructuring tuple types with different arities - declare function fz1([x, y]: [1, 2] | [3, 4] | [5]): void; -+// Repro from #55661 - declare function tooNarrow([x, y]: [1, 1] | [1, 2] | [1]): void; -+// https://github.com/microsoft/TypeScript/issues/56312 - declare function parameterReassigned1([x, y]: [1, 2] | [3, 4]): void; - declare function parameterReassigned2([x, y]: [1, 2] | [3, 4]): void; -+// https://github.com/microsoft/TypeScript/pull/56313#discussion_r1416482490 - declare const parameterReassignedContextualRest1: (...args: [1, 2] | [3, 4]) => void; \ No newline at end of file + const f60 = (kind, payload) => { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/enumClassification.js b/testdata/baselines/reference/submodule/conformance/enumClassification.js index e33551d4cb..714b52d02c 100644 --- a/testdata/baselines/reference/submodule/conformance/enumClassification.js +++ b/testdata/baselines/reference/submodule/conformance/enumClassification.js @@ -165,11 +165,6 @@ var E20; //// [enumClassification.d.ts] -// An enum type where each member has no initializer or an initializer that specififes -// a numeric literal, a string literal, or a single identifier naming another member in -// the enum type is classified as a literal enum type. An enum type that doesn't adhere -// to this pattern is classified as a numeric enum type. -// Examples of literal enum types declare enum E01 { A = 0 } @@ -209,7 +204,6 @@ declare enum E08 { D = "hello", E = 10 } -// Examples of numeric enum types with only constant members declare enum E10 { } declare enum E11 { @@ -222,7 +216,6 @@ declare enum E12 { B = 2, C = 4 } -// Examples of numeric enum types with constant and computed members declare enum E20 { A, B, diff --git a/testdata/baselines/reference/submodule/conformance/enumClassification.js.diff b/testdata/baselines/reference/submodule/conformance/enumClassification.js.diff index 923a0b6169..89469d82a7 100644 --- a/testdata/baselines/reference/submodule/conformance/enumClassification.js.diff +++ b/testdata/baselines/reference/submodule/conformance/enumClassification.js.diff @@ -18,29 +18,3 @@ + if (typeof E20.D !== "string") E20[E20.D] = "D"; })(E20 || (E20 = {})); - - //// [enumClassification.d.ts] -+// An enum type where each member has no initializer or an initializer that specififes -+// a numeric literal, a string literal, or a single identifier naming another member in -+// the enum type is classified as a literal enum type. An enum type that doesn't adhere -+// to this pattern is classified as a numeric enum type. -+// Examples of literal enum types - declare enum E01 { - A = 0 - } -@@= skipped -47, +56 lines =@@ - D = "hello", - E = 10 - } -+// Examples of numeric enum types with only constant members - declare enum E10 { - } - declare enum E11 { -@@= skipped -12, +13 lines =@@ - B = 2, - C = 4 - } -+// Examples of numeric enum types with constant and computed members - declare enum E20 { - A, - B, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/exhaustiveSwitchStatements1.js b/testdata/baselines/reference/submodule/conformance/exhaustiveSwitchStatements1.js index d90156e40b..c1e660917d 100644 --- a/testdata/baselines/reference/submodule/conformance/exhaustiveSwitchStatements1.js +++ b/testdata/baselines/reference/submodule/conformance/exhaustiveSwitchStatements1.js @@ -479,14 +479,12 @@ function f35431(a) { declare function f1(x: 1 | 2): string; declare function f2(x: 1 | 2): void; declare function f3(x: 1 | 2): 10 | 20; -// Repro from #11572 declare enum E { A = 0, B = 1 } declare function f(e: E): number; declare function g(e: E): number; -// Repro from #12668 interface Square { kind: "square"; size: number; @@ -507,7 +505,6 @@ interface Triangle { type Shape = Square | Rectangle | Circle | Triangle; declare function area(s: Shape): number; declare function areaWrapped(s: Shape): number; -// Repro from #13241 declare enum MyEnum { A = 0, B = 1 @@ -515,13 +512,11 @@ declare enum MyEnum { declare function thisGivesError(e: MyEnum): string; declare function good1(e: MyEnum): string; declare function good2(e: MyEnum): string; -// Repro from #18362 declare enum Level { One = 0, Two = 1 } declare const doSomethingWithLevel: (level: Level) => Level; -// Repro from #20409 interface Square2 { kind: "square"; size: number; @@ -533,9 +528,7 @@ interface Circle2 { type Shape2 = Square2 | Circle2; declare function withDefault(s1: Shape2, s2: Shape2): string; declare function withoutDefault(s1: Shape2, s2: Shape2): string; -// Repro from #20823 declare function test4(value: 1 | 2): string; -// Repro from #34661 declare enum Animal { DOG = 0, CAT = 1 @@ -544,16 +537,13 @@ declare const zoo: { animal: Animal; } | undefined; declare function expression(): Animal; -// Repro from #34840 declare function foo(): void; -// Repro from #35070 type O = { a: number; b: number; }; type K = keyof O | 'c'; declare function ff(o: O, k: K): number; -// Repro from #35431 type A = { kind: "abc"; } | { diff --git a/testdata/baselines/reference/submodule/conformance/exhaustiveSwitchStatements1.js.diff b/testdata/baselines/reference/submodule/conformance/exhaustiveSwitchStatements1.js.diff index 167c134474..f0e3665f5b 100644 --- a/testdata/baselines/reference/submodule/conformance/exhaustiveSwitchStatements1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/exhaustiveSwitchStatements1.js.diff @@ -7,68 +7,4 @@ -"use strict"; function f1(x) { if (!!true) { - switch (x) { -@@= skipped -228, +227 lines =@@ - declare function f1(x: 1 | 2): string; - declare function f2(x: 1 | 2): void; - declare function f3(x: 1 | 2): 10 | 20; -+// Repro from #11572 - declare enum E { - A = 0, - B = 1 - } - declare function f(e: E): number; - declare function g(e: E): number; -+// Repro from #12668 - interface Square { - kind: "square"; - size: number; -@@= skipped -26, +28 lines =@@ - type Shape = Square | Rectangle | Circle | Triangle; - declare function area(s: Shape): number; - declare function areaWrapped(s: Shape): number; -+// Repro from #13241 - declare enum MyEnum { - A = 0, - B = 1 -@@= skipped -7, +8 lines =@@ - declare function thisGivesError(e: MyEnum): string; - declare function good1(e: MyEnum): string; - declare function good2(e: MyEnum): string; -+// Repro from #18362 - declare enum Level { - One = 0, - Two = 1 - } - declare const doSomethingWithLevel: (level: Level) => Level; -+// Repro from #20409 - interface Square2 { - kind: "square"; - size: number; -@@= skipped -16, +18 lines =@@ - type Shape2 = Square2 | Circle2; - declare function withDefault(s1: Shape2, s2: Shape2): string; - declare function withoutDefault(s1: Shape2, s2: Shape2): string; -+// Repro from #20823 - declare function test4(value: 1 | 2): string; -+// Repro from #34661 - declare enum Animal { - DOG = 0, - CAT = 1 -@@= skipped -9, +11 lines =@@ - animal: Animal; - } | undefined; - declare function expression(): Animal; -+// Repro from #34840 - declare function foo(): void; -+// Repro from #35070 - type O = { - a: number; - b: number; - }; - type K = keyof O | 'c'; - declare function ff(o: O, k: K): number; -+// Repro from #35431 - type A = { - kind: "abc"; - } | { \ No newline at end of file + switch (x) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/exportSpecifiers.js b/testdata/baselines/reference/submodule/conformance/exportSpecifiers.js index 9d55c329dc..d1375aa7c6 100644 --- a/testdata/baselines/reference/submodule/conformance/exportSpecifiers.js +++ b/testdata/baselines/reference/submodule/conformance/exportSpecifiers.js @@ -43,6 +43,6 @@ export { type as }; export { type something }; export { type type as foo }; export { type as as bar }; -export type { type something as whatever }; // Error +export type { type something as whatever }; //// [imports.d.ts] export {}; diff --git a/testdata/baselines/reference/submodule/conformance/exportSpecifiers.js.diff b/testdata/baselines/reference/submodule/conformance/exportSpecifiers.js.diff deleted file mode 100644 index 0ca79b116d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/exportSpecifiers.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.exportSpecifiers.js -+++ new.exportSpecifiers.js -@@= skipped -42, +42 lines =@@ - export { type something }; - export { type type as foo }; - export { type as as bar }; --export type { type something as whatever }; -+export type { type something as whatever }; // Error - //// [imports.d.ts] - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/genericContextualTypes1.js b/testdata/baselines/reference/submodule/conformance/genericContextualTypes1.js index 7a0ddb7490..f0daac3a3b 100644 --- a/testdata/baselines/reference/submodule/conformance/genericContextualTypes1.js +++ b/testdata/baselines/reference/submodule/conformance/genericContextualTypes1.js @@ -104,6 +104,5 @@ declare const f23: (a: A[]) => Box[]; declare const f30: (a: string[]) => string[]; declare const f31: >(a: T[]) => T[]; declare const f40: (b: B, a: A) => [A, B]; -// Repro from #16293 type fn = (a: A) => A; declare const fn: fn; diff --git a/testdata/baselines/reference/submodule/conformance/genericContextualTypes1.js.diff b/testdata/baselines/reference/submodule/conformance/genericContextualTypes1.js.diff index 25537c0bb1..df75cc05c9 100644 --- a/testdata/baselines/reference/submodule/conformance/genericContextualTypes1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/genericContextualTypes1.js.diff @@ -7,11 +7,4 @@ -"use strict"; const f00 = list; const f01 = x => [x]; - const f02 = wrap(list); -@@= skipped -52, +51 lines =@@ - declare const f30: (a: string[]) => string[]; - declare const f31: >(a: T[]) => T[]; - declare const f40: (b: B, a: A) => [A, B]; -+// Repro from #16293 - type fn = (a: A) => A; - declare const fn: fn; \ No newline at end of file + const f02 = wrap(list); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/genericFunctionParameters.js b/testdata/baselines/reference/submodule/conformance/genericFunctionParameters.js index 24c17e9c40..193a39a7cb 100644 --- a/testdata/baselines/reference/submodule/conformance/genericFunctionParameters.js +++ b/testdata/baselines/reference/submodule/conformance/genericFunctionParameters.js @@ -26,11 +26,10 @@ const x = s(a => a.init()); // x is any, should have been {} declare function f1(cb: (x: S) => T): T; declare function f2(cb: (x: S) => T): T; declare function f3(cb: >(x: S) => T): T; -declare let x1: unknown; // {} -declare let x2: number; // number -declare let x3: any[][]; // Array -// Repro from #19345 +declare let x1: unknown; +declare let x2: number; +declare let x3: any[][]; declare const s: (go: (ops: { init(): S; }) => R) => R; -declare const x: unknown; // x is any, should have been {} +declare const x: unknown; diff --git a/testdata/baselines/reference/submodule/conformance/genericFunctionParameters.js.diff b/testdata/baselines/reference/submodule/conformance/genericFunctionParameters.js.diff index 484dade125..934e9ec96a 100644 --- a/testdata/baselines/reference/submodule/conformance/genericFunctionParameters.js.diff +++ b/testdata/baselines/reference/submodule/conformance/genericFunctionParameters.js.diff @@ -8,19 +8,12 @@ let x1 = f1(x => x); // {} let x2 = f2(x => x); // number let x3 = f3(x => x); // Array -@@= skipped -11, +10 lines =@@ - declare function f1(cb: (x: S) => T): T; - declare function f2(cb: (x: S) => T): T; +@@= skipped -13, +12 lines =@@ declare function f3(cb: >(x: S) => T): T; --declare let x1: unknown; --declare let x2: number; + declare let x1: unknown; + declare let x2: number; -declare let x3: any[]; -+declare let x1: unknown; // {} -+declare let x2: number; // number -+declare let x3: any[][]; // Array -+// Repro from #19345 ++declare let x3: any[][]; declare const s: (go: (ops: { init(): S; - }) => R) => R; --declare const x: unknown; -+declare const x: unknown; // x is any, should have been {} \ No newline at end of file + }) => R) => R; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/genericRestParameters1.js b/testdata/baselines/reference/submodule/conformance/genericRestParameters1.js index 49f425ac75..c526513ad6 100644 --- a/testdata/baselines/reference/submodule/conformance/genericRestParameters1.js +++ b/testdata/baselines/reference/submodule/conformance/genericRestParameters1.js @@ -272,50 +272,50 @@ declare const t0: []; declare const ns: [number, string]; declare const sn: [string, number]; declare function f10(...args: T): T; -declare const x10: [number, string, boolean]; // [number, string, boolean] -declare const x11: [number, string]; // [number, string] -declare const x12: [number]; // [number] -declare const x13: []; // [] -declare const x14: [number, string, boolean]; // [number, string, boolean] -declare const x15: [number, string, boolean]; // [number, string, boolean] -declare const x16: [number, string, boolean]; // [number, string, boolean] -declare const x17: [number, string, boolean]; // [number, string, boolean] -declare const x18: [number, string, boolean]; // (string | number | boolean)[] +declare const x10: [number, string, boolean]; +declare const x11: [number, string]; +declare const x12: [number]; +declare const x13: []; +declare const x14: [number, string, boolean]; +declare const x15: [number, string, boolean]; +declare const x16: [number, string, boolean]; +declare const x17: [number, string, boolean]; +declare const x18: [number, string, boolean]; declare function g10(u: U, v: V): void; declare function f11(...args: T): T; -declare const z10: [42, "hello", true]; // [42, "hello", true] -declare const z11: [42, "hello"]; // [42, "hello"] -declare const z12: [42]; // [42] -declare const z13: []; // [] -declare const z14: [number, string, boolean]; // [number, string, boolean] -declare const z15: [42, string, boolean]; // [42, string, boolean] -declare const z16: [42, "hello", boolean]; // [42, "hello", boolean] -declare const z17: [42, "hello", true]; // [42, "hello", true] -declare const z18: [number, string, true]; // (string | number | true)[] +declare const z10: [42, "hello", true]; +declare const z11: [42, "hello"]; +declare const z12: [42]; +declare const z13: []; +declare const z14: [number, string, boolean]; +declare const z15: [42, string, boolean]; +declare const z16: [42, "hello", boolean]; +declare const z17: [42, "hello", true]; +declare const z18: [number, string, true]; declare function g11(u: U, v: V): void; declare function call(f: (...args: T) => U, ...args: T): U; declare function callr(args: T, f: (...args: T) => U): U; declare function f15(a: string, b: number): string | number; declare function f16(a: A, b: B): A | B; -declare let x20: number; // number -declare let x21: string; // string -declare let x22: string | number; // string | number -declare let x23: string | number; // unknown -declare let x24: string | number; // string | number -declare let x30: string; // string -declare let x31: string | number; // string | number -declare let x32: string | number; // string | number +declare let x20: number; +declare let x21: string; +declare let x22: string | number; +declare let x23: string | number; +declare let x24: string | number; +declare let x30: string; +declare let x31: string | number; +declare let x32: string | number; declare function bind(f: (x: T, ...rest: U) => V, x: T): (...rest: U) => V; declare const f20: (x: number, y: string, z: boolean) => string[]; -declare const f21: (y: string, z: boolean) => string[]; // (y: string, z: boolean) => string[] -declare const f22: (z: boolean) => string[]; // (z: boolean) => string[] -declare const f23: () => string[]; // () => string[] +declare const f21: (y: string, z: boolean) => string[]; +declare const f22: (z: boolean) => string[]; +declare const f23: () => string[]; declare const g20: (x: number, y?: string, z?: boolean) => string[]; -declare const g21: (y?: string | undefined, z?: boolean | undefined) => string[]; // (y: string, z: boolean) => string[] -declare const g22: (z?: boolean | undefined) => string[]; // (z: boolean) => string[] -declare const g23: () => string[]; // () => string[] +declare const g21: (y?: string | undefined, z?: boolean | undefined) => string[]; +declare const g22: (z?: boolean | undefined) => string[]; +declare const g23: () => string[]; declare function f30 any)[]>(x: T, ...args: U): U; -declare const c30: [(x: number) => string, (x: number) => number]; // [(x: number) => string, (x: number) => number] +declare const c30: [(x: number) => string, (x: number) => number]; type T01 = Parameters<(x: number, y: string, z: boolean) => void>; type T02 = Parameters<(...args: [number, string, boolean]) => void>; type T03 = ConstructorParameters void>; @@ -335,7 +335,6 @@ type EventType = { emit(e: K, ...payload: T[K] extends any[] ? T[K] : [T[K]]): void; }; declare var events: EventType; -// Repro from #25871 declare var ff1: (...args: any[]) => void; declare var ff2: () => void; declare var ff3: (...args: []) => void; diff --git a/testdata/baselines/reference/submodule/conformance/genericRestParameters1.js.diff b/testdata/baselines/reference/submodule/conformance/genericRestParameters1.js.diff index 0d4772c080..73a6887d86 100644 --- a/testdata/baselines/reference/submodule/conformance/genericRestParameters1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/genericRestParameters1.js.diff @@ -7,96 +7,4 @@ -"use strict"; f1 = f2; f2 = f1; - f1(42, "hello", true); -@@= skipped -105, +104 lines =@@ - declare const ns: [number, string]; - declare const sn: [string, number]; - declare function f10(...args: T): T; --declare const x10: [number, string, boolean]; --declare const x11: [number, string]; --declare const x12: [number]; --declare const x13: []; --declare const x14: [number, string, boolean]; --declare const x15: [number, string, boolean]; --declare const x16: [number, string, boolean]; --declare const x17: [number, string, boolean]; --declare const x18: [number, string, boolean]; -+declare const x10: [number, string, boolean]; // [number, string, boolean] -+declare const x11: [number, string]; // [number, string] -+declare const x12: [number]; // [number] -+declare const x13: []; // [] -+declare const x14: [number, string, boolean]; // [number, string, boolean] -+declare const x15: [number, string, boolean]; // [number, string, boolean] -+declare const x16: [number, string, boolean]; // [number, string, boolean] -+declare const x17: [number, string, boolean]; // [number, string, boolean] -+declare const x18: [number, string, boolean]; // (string | number | boolean)[] - declare function g10(u: U, v: V): void; - declare function f11(...args: T): T; --declare const z10: [42, "hello", true]; --declare const z11: [42, "hello"]; --declare const z12: [42]; --declare const z13: []; --declare const z14: [number, string, boolean]; --declare const z15: [42, string, boolean]; --declare const z16: [42, "hello", boolean]; --declare const z17: [42, "hello", true]; --declare const z18: [number, string, true]; -+declare const z10: [42, "hello", true]; // [42, "hello", true] -+declare const z11: [42, "hello"]; // [42, "hello"] -+declare const z12: [42]; // [42] -+declare const z13: []; // [] -+declare const z14: [number, string, boolean]; // [number, string, boolean] -+declare const z15: [42, string, boolean]; // [42, string, boolean] -+declare const z16: [42, "hello", boolean]; // [42, "hello", boolean] -+declare const z17: [42, "hello", true]; // [42, "hello", true] -+declare const z18: [number, string, true]; // (string | number | true)[] - declare function g11(u: U, v: V): void; - declare function call(f: (...args: T) => U, ...args: T): U; - declare function callr(args: T, f: (...args: T) => U): U; - declare function f15(a: string, b: number): string | number; - declare function f16(a: A, b: B): A | B; --declare let x20: number; --declare let x21: string; --declare let x22: string | number; --declare let x23: string | number; --declare let x24: string | number; --declare let x30: string; --declare let x31: string | number; --declare let x32: string | number; -+declare let x20: number; // number -+declare let x21: string; // string -+declare let x22: string | number; // string | number -+declare let x23: string | number; // unknown -+declare let x24: string | number; // string | number -+declare let x30: string; // string -+declare let x31: string | number; // string | number -+declare let x32: string | number; // string | number - declare function bind(f: (x: T, ...rest: U) => V, x: T): (...rest: U) => V; - declare const f20: (x: number, y: string, z: boolean) => string[]; --declare const f21: (y: string, z: boolean) => string[]; --declare const f22: (z: boolean) => string[]; --declare const f23: () => string[]; -+declare const f21: (y: string, z: boolean) => string[]; // (y: string, z: boolean) => string[] -+declare const f22: (z: boolean) => string[]; // (z: boolean) => string[] -+declare const f23: () => string[]; // () => string[] - declare const g20: (x: number, y?: string, z?: boolean) => string[]; --declare const g21: (y?: string | undefined, z?: boolean | undefined) => string[]; --declare const g22: (z?: boolean | undefined) => string[]; --declare const g23: () => string[]; -+declare const g21: (y?: string | undefined, z?: boolean | undefined) => string[]; // (y: string, z: boolean) => string[] -+declare const g22: (z?: boolean | undefined) => string[]; // (z: boolean) => string[] -+declare const g23: () => string[]; // () => string[] - declare function f30 any)[]>(x: T, ...args: U): U; --declare const c30: [(x: number) => string, (x: number) => number]; -+declare const c30: [(x: number) => string, (x: number) => number]; // [(x: number) => string, (x: number) => number] - type T01 = Parameters<(x: number, y: string, z: boolean) => void>; - type T02 = Parameters<(...args: [number, string, boolean]) => void>; - type T03 = ConstructorParameters void>; -@@= skipped -63, +63 lines =@@ - emit(e: K, ...payload: T[K] extends any[] ? T[K] : [T[K]]): void; - }; - declare var events: EventType; -+// Repro from #25871 - declare var ff1: (...args: any[]) => void; - declare var ff2: () => void; - declare var ff3: (...args: []) => void; \ No newline at end of file + f1(42, "hello", true); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/genericRestParameters3.js b/testdata/baselines/reference/submodule/conformance/genericRestParameters3.js index ff5e8b4a05..cbd418bb09 100644 --- a/testdata/baselines/reference/submodule/conformance/genericRestParameters3.js +++ b/testdata/baselines/reference/submodule/conformance/genericRestParameters3.js @@ -136,25 +136,21 @@ declare const t1: [string] | [number, boolean]; declare const t2: readonly [string] | [number, boolean]; declare const t3: [string] | readonly [number, boolean]; declare const t4: readonly [string] | readonly [number, boolean]; -// Repro from #26110 interface CoolArray extends Array { hello: number; } declare function foo(cb: (...args: T) => void): void; declare function bar(...args: T): T; declare let a: [number, number]; -declare let b: CoolArray; // Error +declare let b: CoolArray; declare function baz(...args: CoolArray): void; declare const ca: CoolArray; -// Repro from #26491 declare function hmm(...args: A): void; -// Repro from #35066 declare function foo2(...args: string[] | number[]): void; declare let x2: ReadonlyArray; -// Repros from #47754 type RestParams = [y: string] | [y: number]; type Signature = (x: string, ...rest: RestParams) => void; -type MergedParams = Parameters; // [x: string, y: string] | [x: string, y: number] +type MergedParams = Parameters; declare let ff1: (...rest: [string, string] | [string, number]) => void; declare let ff2: (x: string, ...rest: [string] | [number]) => void; declare function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void): void; diff --git a/testdata/baselines/reference/submodule/conformance/genericRestParameters3.js.diff b/testdata/baselines/reference/submodule/conformance/genericRestParameters3.js.diff index c6d2c3bb7c..39401eb41e 100644 --- a/testdata/baselines/reference/submodule/conformance/genericRestParameters3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/genericRestParameters3.js.diff @@ -7,32 +7,4 @@ -"use strict"; f1("foo", "abc"); f1("foo", 10, true); - f1("foo", ...t1); -@@= skipped -49, +48 lines =@@ - declare const t2: readonly [string] | [number, boolean]; - declare const t3: [string] | readonly [number, boolean]; - declare const t4: readonly [string] | readonly [number, boolean]; -+// Repro from #26110 - interface CoolArray extends Array { - hello: number; - } - declare function foo(cb: (...args: T) => void): void; - declare function bar(...args: T): T; - declare let a: [number, number]; --declare let b: CoolArray; -+declare let b: CoolArray; // Error - declare function baz(...args: CoolArray): void; - declare const ca: CoolArray; -+// Repro from #26491 - declare function hmm(...args: A): void; -+// Repro from #35066 - declare function foo2(...args: string[] | number[]): void; - declare let x2: ReadonlyArray; -+// Repros from #47754 - type RestParams = [y: string] | [y: number]; - type Signature = (x: string, ...rest: RestParams) => void; --type MergedParams = Parameters; -+type MergedParams = Parameters; // [x: string, y: string] | [x: string, y: number] - declare let ff1: (...rest: [string, string] | [string, number]) => void; - declare let ff2: (x: string, ...rest: [string] | [number]) => void; - declare function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void): void; \ No newline at end of file + f1("foo", ...t1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importEqualsDeclaration.js b/testdata/baselines/reference/submodule/conformance/importEqualsDeclaration.js index cc1037f80e..41fd10e6f1 100644 --- a/testdata/baselines/reference/submodule/conformance/importEqualsDeclaration.js +++ b/testdata/baselines/reference/submodule/conformance/importEqualsDeclaration.js @@ -48,5 +48,5 @@ declare class SomeClass { } export = SomeClass; //// [c.d.ts] -import type A = require('./a'); // Ok -export declare const AConstructor: typeof A; // Ok +import type A = require('./a'); +export declare const AConstructor: typeof A; diff --git a/testdata/baselines/reference/submodule/conformance/importEqualsDeclaration.js.diff b/testdata/baselines/reference/submodule/conformance/importEqualsDeclaration.js.diff index 639e20e004..2c4a4ab8ff 100644 --- a/testdata/baselines/reference/submodule/conformance/importEqualsDeclaration.js.diff +++ b/testdata/baselines/reference/submodule/conformance/importEqualsDeclaration.js.diff @@ -16,12 +16,4 @@ +const type = require("./b"); // Ok A.prototype; // Error const a = { a: 'a' }; // Ok - void type; // Ok -@@= skipped -16, +16 lines =@@ - } - export = SomeClass; - //// [c.d.ts] --import type A = require('./a'); --export declare const AConstructor: typeof A; -+import type A = require('./a'); // Ok -+export declare const AConstructor: typeof A; // Ok \ No newline at end of file + void type; // Ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTypeAmbientMissing.js b/testdata/baselines/reference/submodule/conformance/importTypeAmbientMissing.js index e9407cb931..32cd383598 100644 --- a/testdata/baselines/reference/submodule/conformance/importTypeAmbientMissing.js +++ b/testdata/baselines/reference/submodule/conformance/importTypeAmbientMissing.js @@ -24,4 +24,4 @@ declare module "foo" { } export = Point; } -declare const x: import("fo"); // typo, error +declare const x: import("fo"); diff --git a/testdata/baselines/reference/submodule/conformance/importTypeAmbientMissing.js.diff b/testdata/baselines/reference/submodule/conformance/importTypeAmbientMissing.js.diff deleted file mode 100644 index 158d3a585c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importTypeAmbientMissing.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.importTypeAmbientMissing.js -+++ new.importTypeAmbientMissing.js -@@= skipped -23, +23 lines =@@ - } - export = Point; - } --declare const x: import("fo"); -+declare const x: import("fo"); // typo, error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importTypeNestedNoRef.js b/testdata/baselines/reference/submodule/conformance/importTypeNestedNoRef.js index 7c05d84179..2508c07543 100644 --- a/testdata/baselines/reference/submodule/conformance/importTypeNestedNoRef.js +++ b/testdata/baselines/reference/submodule/conformance/importTypeNestedNoRef.js @@ -13,4 +13,4 @@ export const x = "yes"; // expect outter import to fail, since b.d.ts isn't in t //// [chainer.d.ts] -export declare const x: import(import("./a").LookAt).Value; // expect outter import to fail, since b.d.ts isn't in the build +export declare const x: import(import("./a").LookAt).Value; diff --git a/testdata/baselines/reference/submodule/conformance/importTypeNestedNoRef.js.diff b/testdata/baselines/reference/submodule/conformance/importTypeNestedNoRef.js.diff deleted file mode 100644 index 4496af2ee2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importTypeNestedNoRef.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.importTypeNestedNoRef.js -+++ new.importTypeNestedNoRef.js -@@= skipped -12, +12 lines =@@ - - - //// [chainer.d.ts] --export declare const x: import(import("./a").LookAt).Value; -+export declare const x: import(import("./a").LookAt).Value; // expect outter import to fail, since b.d.ts isn't in the build \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/indexSignatures1.js b/testdata/baselines/reference/submodule/conformance/indexSignatures1.js index 0fe2ec0990..7d52d811fe 100644 --- a/testdata/baselines/reference/submodule/conformance/indexSignatures1.js +++ b/testdata/baselines/reference/submodule/conformance/indexSignatures1.js @@ -488,7 +488,6 @@ const obj3 = { [sym]: 'hello ' }; // Error //// [indexSignatures1.d.ts] -// Symbol index signature checking declare const sym: unique symbol; declare function gg3(x: { [key: string]: string; @@ -497,7 +496,6 @@ declare function gg3(x: { }, z: { [sym]: number; }): void; -// Overlapping index signatures declare function gg1(x: { [key: `a${string}`]: string; [key: `${string}a`]: string; @@ -512,15 +510,14 @@ interface IY { [key: `a${string}a`]: string; } declare function gg2(x: IX, y: IY): void; -// Intersection of multiple applicable index signatures declare let combo: { [x: `foo-${string}`]: 'a' | 'b'; } & { [x: `${string}-bar`]: 'b' | 'c'; }; -declare const x1: "a" | "b"; // 'a' | 'b' -declare const x2: "b" | "c"; // 'b' | 'c' -declare const x3: "b"; // 'b' (('a' | 'b') & ('b' | 'c')) +declare const x1: "a" | "b"; +declare const x2: "b" | "c"; +declare const x3: "b"; declare var str: string; declare const x4: "a" | "b"; declare const x5: "b" | "c"; @@ -530,40 +527,34 @@ declare let combo2: { }; declare const x7: string; declare const x8: string; -declare const x9: any; // Error -// Property access on template pattern index signature +declare const x9: any; declare let dom: { [x: `data${string}`]: string; }; declare const y1: string; declare const y2: string; -// Contextual typing by index signature with template literal pattern type Funcs = { [key: `s${string}`]: (x: string) => void; [key: `n${string}`]: (x: number) => void; }; declare const funcs: Funcs; -// Duplicate index signature checking type Duplicates = { - [key: string | number]: any; // Error - [key: number | symbol]: any; // Error - [key: symbol | `foo${string}`]: any; // Error - [key: `foo${string}`]: any; // Error + [key: string | number]: any; + [key: number | symbol]: any; + [key: symbol | `foo${string}`]: any; + [key: `foo${string}`]: any; }; -// Conflicting index signature checking type Conflicting = { [key: `a${string}`]: 'a'; [key: `${string}a`]: 'b'; - [key: `a${string}a`]: 'c'; // Error + [key: `a${string}a`]: 'c'; }; -// Invalid index signatures type Invalid = { - [key: 'a' | 'b' | 'c']: string; // Error - [key: T | number]: string; // Error - [key: Error]: string; // Error - [key: T & string]: string; // Error + [key: 'a' | 'b' | 'c']: string; + [key: T | number]: string; + [key: Error]: string; + [key: T & string]: string; }; -// Intersections in index signatures type Tag1 = { __tag1__: void; }; @@ -605,7 +596,6 @@ declare let o3: { declare let o4: { [key: TaggedString1 & TaggedString2]: string; }; -// Index signatures inferred from computed property names declare const obj10: { [x: string]: 0 | 1; x: 0; @@ -626,7 +616,6 @@ declare const obj13: { 1: 2; [sym]: 4; }; -// Repros from #1863 declare const system: unique symbol; declare const SomeSytePlugin: unique symbol; interface Plugs { @@ -638,7 +627,6 @@ declare const plugins: { }; declare var theAnswer: symbol; declare var obj: Record; -// Repro from #26470 declare const directive: unique symbol; declare function foo(options: { [x in string]: (arg: TArg) => TRet; @@ -648,27 +636,25 @@ declare function foo(options: { declare let case1: void; declare let case2: void; declare let case3: void; -// Repros from #42192 type Pseudo = `&:${string}`; declare const AmIPseudo1: Pseudo; -declare const AmIPseudo: Pseudo; // Error +declare const AmIPseudo: Pseudo; type PseudoDeclaration = { [key in Pseudo]: string; }; -declare const test: PseudoDeclaration; // Error +declare const test: PseudoDeclaration; type FieldPattern = `/${string}`; declare const path1: FieldPattern; -declare const path2: FieldPattern; // Error +declare const path2: FieldPattern; type PathsObject = { [P in FieldPattern]: object; }; -declare const pathObject: PathsObject; // Error +declare const pathObject: PathsObject; type IdType = `${number}-${number}-${number}-${number}`; declare const id: IdType; type A = Record; declare const a: A; declare let aid: string; -// Repro from #44793 interface AA { a?: string; b?: number; @@ -680,11 +666,10 @@ declare const obj1: { }; declare const obj2: { [key: string]: string; -}; // Permitted for backwards compatibility +}; declare const obj3: { [key: number]: string; -}; // Error -// Repro from #45772 +}; type Id = string & { __tag: 'id '; }; @@ -692,5 +677,5 @@ type Rec1 = { [key: Id]: number; }; type Rec2 = Record; -type K1 = keyof Rec1; // Id -type K2 = keyof Rec2; // Id +type K1 = keyof Rec1; +type K2 = keyof Rec2; diff --git a/testdata/baselines/reference/submodule/conformance/indexSignatures1.js.diff b/testdata/baselines/reference/submodule/conformance/indexSignatures1.js.diff index 1f4ede0454..4ac8114e89 100644 --- a/testdata/baselines/reference/submodule/conformance/indexSignatures1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/indexSignatures1.js.diff @@ -7,168 +7,4 @@ -"use strict"; // Symbol index signature checking const sym = Symbol(); - function gg3(x, y, z) { -@@= skipped -164, +163 lines =@@ - - - //// [indexSignatures1.d.ts] -+// Symbol index signature checking - declare const sym: unique symbol; - declare function gg3(x: { - [key: string]: string; -@@= skipped -8, +9 lines =@@ - }, z: { - [sym]: number; - }): void; -+// Overlapping index signatures - declare function gg1(x: { - [key: `a${string}`]: string; - [key: `${string}a`]: string; -@@= skipped -14, +15 lines =@@ - [key: `a${string}a`]: string; - } - declare function gg2(x: IX, y: IY): void; -+// Intersection of multiple applicable index signatures - declare let combo: { - [x: `foo-${string}`]: 'a' | 'b'; - } & { - [x: `${string}-bar`]: 'b' | 'c'; - }; --declare const x1: "a" | "b"; --declare const x2: "b" | "c"; --declare const x3: "b"; -+declare const x1: "a" | "b"; // 'a' | 'b' -+declare const x2: "b" | "c"; // 'b' | 'c' -+declare const x3: "b"; // 'b' (('a' | 'b') & ('b' | 'c')) - declare var str: string; - declare const x4: "a" | "b"; - declare const x5: "b" | "c"; -@@= skipped -17, +18 lines =@@ - }; - declare const x7: string; - declare const x8: string; --declare const x9: any; -+declare const x9: any; // Error -+// Property access on template pattern index signature - declare let dom: { - [x: `data${string}`]: string; - }; - declare const y1: string; - declare const y2: string; -+// Contextual typing by index signature with template literal pattern - type Funcs = { - [key: `s${string}`]: (x: string) => void; - [key: `n${string}`]: (x: number) => void; - }; - declare const funcs: Funcs; -+// Duplicate index signature checking - type Duplicates = { -- [key: string | number]: any; -- [key: number | symbol]: any; -- [key: symbol | `foo${string}`]: any; -- [key: `foo${string}`]: any; -+ [key: string | number]: any; // Error -+ [key: number | symbol]: any; // Error -+ [key: symbol | `foo${string}`]: any; // Error -+ [key: `foo${string}`]: any; // Error - }; -+// Conflicting index signature checking - type Conflicting = { - [key: `a${string}`]: 'a'; - [key: `${string}a`]: 'b'; -- [key: `a${string}a`]: 'c'; -+ [key: `a${string}a`]: 'c'; // Error - }; -+// Invalid index signatures - type Invalid = { -- [key: 'a' | 'b' | 'c']: string; -- [key: T | number]: string; -- [key: Error]: string; -- [key: T & string]: string; -+ [key: 'a' | 'b' | 'c']: string; // Error -+ [key: T | number]: string; // Error -+ [key: Error]: string; // Error -+ [key: T & string]: string; // Error - }; -+// Intersections in index signatures - type Tag1 = { - __tag1__: void; - }; -@@= skipped -69, +75 lines =@@ - declare let o4: { - [key: TaggedString1 & TaggedString2]: string; - }; -+// Index signatures inferred from computed property names - declare const obj10: { - [x: string]: 0 | 1; - x: 0; -@@= skipped -20, +21 lines =@@ - 1: 2; - [sym]: 4; - }; -+// Repros from #1863 - declare const system: unique symbol; - declare const SomeSytePlugin: unique symbol; - interface Plugs { -@@= skipped -11, +12 lines =@@ - }; - declare var theAnswer: symbol; - declare var obj: Record; -+// Repro from #26470 - declare const directive: unique symbol; - declare function foo(options: { - [x in string]: (arg: TArg) => TRet; -@@= skipped -9, +10 lines =@@ - declare let case1: void; - declare let case2: void; - declare let case3: void; -+// Repros from #42192 - type Pseudo = `&:${string}`; - declare const AmIPseudo1: Pseudo; --declare const AmIPseudo: Pseudo; -+declare const AmIPseudo: Pseudo; // Error - type PseudoDeclaration = { - [key in Pseudo]: string; - }; --declare const test: PseudoDeclaration; -+declare const test: PseudoDeclaration; // Error - type FieldPattern = `/${string}`; - declare const path1: FieldPattern; --declare const path2: FieldPattern; -+declare const path2: FieldPattern; // Error - type PathsObject = { - [P in FieldPattern]: object; - }; --declare const pathObject: PathsObject; -+declare const pathObject: PathsObject; // Error - type IdType = `${number}-${number}-${number}-${number}`; - declare const id: IdType; - type A = Record; - declare const a: A; - declare let aid: string; -+// Repro from #44793 - interface AA { - a?: string; - b?: number; -@@= skipped -30, +32 lines =@@ - }; - declare const obj2: { - [key: string]: string; --}; -+}; // Permitted for backwards compatibility - declare const obj3: { - [key: number]: string; --}; -+}; // Error -+// Repro from #45772 - type Id = string & { - __tag: 'id '; - }; -@@= skipped -11, +12 lines =@@ - [key: Id]: number; - }; - type Rec2 = Record; --type K1 = keyof Rec1; --type K2 = keyof Rec2; -+type K1 = keyof Rec1; // Id -+type K2 = keyof Rec2; // Id \ No newline at end of file + function gg3(x, y, z) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/inferTypes1.js b/testdata/baselines/reference/submodule/conformance/inferTypes1.js index d13ea9a68e..ea87fbf992 100644 --- a/testdata/baselines/reference/submodule/conformance/inferTypes1.js +++ b/testdata/baselines/reference/submodule/conformance/inferTypes1.js @@ -212,13 +212,13 @@ const result = invoker('test', true)({ test: (a) => 123 }); //// [inferTypes1.d.ts] type Unpacked = T extends (infer U)[] ? U : T extends (...args: any[]) => infer U ? U : T extends Promise ? U : T; -type T00 = Unpacked; // string -type T01 = Unpacked; // string -type T02 = Unpacked<() => string>; // string -type T03 = Unpacked>; // string -type T04 = Unpacked[]>>; // string -type T05 = Unpacked; // any -type T06 = Unpacked; // never +type T00 = Unpacked; +type T01 = Unpacked; +type T02 = Unpacked<() => string>; +type T03 = Unpacked>; +type T04 = Unpacked[]>>; +type T05 = Unpacked; +type T06 = Unpacked; declare function f1(s: string): { a: number; b: string; @@ -231,33 +231,33 @@ declare abstract class Abstract { x: number; y: number; } -type T10 = ReturnType<() => string>; // string -type T11 = ReturnType<(s: string) => void>; // void -type T12 = ReturnType<(() => T)>; // {} -type T13 = ReturnType<(() => T)>; // number[] -type T14 = ReturnType; // { a: number, b: string } -type T15 = ReturnType; // any -type T16 = ReturnType; // never -type T17 = ReturnType; // Error -type T18 = ReturnType; // Error -type T19 = ReturnType<(x: string, ...args: T) => T[]>; // T[] -type U10 = InstanceType; // C -type U11 = InstanceType; // any -type U12 = InstanceType; // never -type U13 = InstanceType; // Error -type U14 = InstanceType; // Error -type U15 = InstanceType; // Abstract -type U16 = InstanceType T[]>; // T[] -type U17 = InstanceType T[]>; // T[] +type T10 = ReturnType<() => string>; +type T11 = ReturnType<(s: string) => void>; +type T12 = ReturnType<(() => T)>; +type T13 = ReturnType<(() => T)>; +type T14 = ReturnType; +type T15 = ReturnType; +type T16 = ReturnType; +type T17 = ReturnType; +type T18 = ReturnType; +type T19 = ReturnType<(x: string, ...args: T) => T[]>; +type U10 = InstanceType; +type U11 = InstanceType; +type U12 = InstanceType; +type U13 = InstanceType; +type U14 = InstanceType; +type U15 = InstanceType; +type U16 = InstanceType T[]>; +type U17 = InstanceType T[]>; type ArgumentType any> = T extends (a: infer A) => any ? A : any; -type T20 = ArgumentType<() => void>; // {} -type T21 = ArgumentType<(x: string) => number>; // string -type T22 = ArgumentType<(x?: string) => number>; // string | undefined -type T23 = ArgumentType<(...args: string[]) => number>; // string -type T24 = ArgumentType<(x: string, y: string) => number>; // Error -type T25 = ArgumentType; // Error -type T26 = ArgumentType; // any -type T27 = ArgumentType; // never +type T20 = ArgumentType<() => void>; +type T21 = ArgumentType<(x: string) => number>; +type T22 = ArgumentType<(x?: string) => number>; +type T23 = ArgumentType<(...args: string[]) => number>; +type T24 = ArgumentType<(x: string, y: string) => number>; +type T25 = ArgumentType; +type T26 = ArgumentType; +type T27 = ArgumentType; type X1; // [any, any] +}>; type T31 = X1<{ x: number; y: string; -}>; // [number, string] +}>; type T32 = X1<{ x: number; y: string; z: boolean; -}>; // [number, string] +}>; type X2 = T extends { a: infer U; b: infer U; } ? U : never; -type T40 = X2<{}>; // never +type T40 = X2<{}>; type T41 = X2<{ a: string; -}>; // never +}>; type T42 = X2<{ a: string; b: string; -}>; // string +}>; type T43 = X2<{ a: number; b: string; -}>; // string | number +}>; type T44 = X2<{ a: number; b: string; c: boolean; -}>; // string | number +}>; type X3 = T extends { a: (x: infer U) => void; b: (x: infer U) => void; } ? U : never; -type T50 = X3<{}>; // never +type T50 = X3<{}>; type T51 = X3<{ a: (x: string) => void; -}>; // never +}>; type T52 = X3<{ a: (x: string) => void; b: (x: string) => void; -}>; // string +}>; type T53 = X3<{ a: (x: number) => void; b: (x: string) => void; -}>; // never +}>; type T54 = X3<{ a: (x: number) => void; b: () => void; -}>; // number -type T60 = infer U; // Error -type T61 = (infer A) extends infer B ? infer C : infer D; // Error -type T62 = U extends (infer U)[] ? U : U; // Error +}>; +type T60 = infer U; +type T61 = (infer A) extends infer B ? infer C : infer D; +type T62 = U extends (infer U)[] ? U : U; type T63 = T extends ((infer A) extends infer B ? infer C : infer D) ? string : number; type T70 = { x: T; @@ -330,7 +330,7 @@ type T71 = T extends T70 ? T70 : never; type T72 = { y: T; }; -type T73 = T extends T72 ? T70 : never; // Error +type T73 = T extends T72 ? T70 : never; type T74 = { x: T; y: U; @@ -343,22 +343,19 @@ type T77 = T extends T76 ? T76 : never; type T78 = T extends T76 ? T76 : never; type Foo = [T, U]; type Bar = T extends Foo ? Foo : never; -type T90 = Bar<[string, string]>; // [string, string] -type T91 = Bar<[string, "a"]>; // [string, "a"] +type T90 = Bar<[string, string]>; +type T91 = Bar<[string, "a"]>; type T92 = Bar<[string, "a"] & { x: string; -}>; // [string, "a"] -type T93 = Bar<["a", string]>; // never -type T94 = Bar<[number, number]>; // never -// Example from #21496 +}>; +type T93 = Bar<["a", string]>; +type T94 = Bar<[number, number]>; type JsonifiedObject = { [K in keyof T]: Jsonified; }; -type Jsonified = T extends string | number | boolean | null ? T : T extends undefined | Function ? never // undefined and functions are removed - : T extends { +type Jsonified = T extends string | number | boolean | null ? T : T extends undefined | Function ? never : T extends { toJSON(): infer R; -} ? R // toJSON is called if it exists (e.g. Date) - : T extends object ? JsonifiedObject : "what is this"; +} ? R : T extends object ? JsonifiedObject : "what is this"; type Example = { str: "literalstring"; fn: () => void; @@ -379,20 +376,17 @@ type JsonifiedExample = Jsonified; declare let ex: JsonifiedExample; declare const z1: "correct"; declare const z2: string; -// Repros from #21631 type A1> = [T, U]; type B1 = S extends A1 ? [T, U] : never; type A2 = [T, U]; type B2 = S extends A2 ? [T, U] : never; type C2 = S extends A2 ? [T, U] : never; -// Repro from #21735 type A = T extends string ? { [P in T]: void; } : T; type B = string extends T ? { [P in T]: void; -} : T; // Error -// Repro from #22302 +} : T; type MatchingKeys = K extends keyof T ? T[K] extends U ? K : never : never; type VoidKeys = MatchingKeys; interface test { @@ -401,12 +395,10 @@ interface test { } type T80 = MatchingKeys; type T81 = VoidKeys; -// Repro from #22221 type MustBeString = T; type EnsureIsString = T extends MustBeString ? U : never; -type Test1 = EnsureIsString<"hello">; // "hello" -type Test2 = EnsureIsString<42>; // never -// Repros from #26856 +type Test1 = EnsureIsString<"hello">; +type Test2 = EnsureIsString<42>; declare function invoker(key: K, ...args: A): any>>(obj: T) => ReturnType; declare const result: number; type Foo2 = ReturnType<(...args: A) => string>; diff --git a/testdata/baselines/reference/submodule/conformance/inferTypes1.js.diff b/testdata/baselines/reference/submodule/conformance/inferTypes1.js.diff index c51a88889e..b263435cc4 100644 --- a/testdata/baselines/reference/submodule/conformance/inferTypes1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/inferTypes1.js.diff @@ -25,238 +25,4 @@ + y = 0; } const z1 = ex.customClass; - const z2 = ex.obj.nested.attr; -@@= skipped -27, +22 lines =@@ - - //// [inferTypes1.d.ts] - type Unpacked = T extends (infer U)[] ? U : T extends (...args: any[]) => infer U ? U : T extends Promise ? U : T; --type T00 = Unpacked; --type T01 = Unpacked; --type T02 = Unpacked<() => string>; --type T03 = Unpacked>; --type T04 = Unpacked[]>>; --type T05 = Unpacked; --type T06 = Unpacked; -+type T00 = Unpacked; // string -+type T01 = Unpacked; // string -+type T02 = Unpacked<() => string>; // string -+type T03 = Unpacked>; // string -+type T04 = Unpacked[]>>; // string -+type T05 = Unpacked; // any -+type T06 = Unpacked; // never - declare function f1(s: string): { - a: number; - b: string; -@@= skipped -19, +19 lines =@@ - x: number; - y: number; - } --type T10 = ReturnType<() => string>; --type T11 = ReturnType<(s: string) => void>; --type T12 = ReturnType<(() => T)>; --type T13 = ReturnType<(() => T)>; --type T14 = ReturnType; --type T15 = ReturnType; --type T16 = ReturnType; --type T17 = ReturnType; --type T18 = ReturnType; --type T19 = ReturnType<(x: string, ...args: T) => T[]>; --type U10 = InstanceType; --type U11 = InstanceType; --type U12 = InstanceType; --type U13 = InstanceType; --type U14 = InstanceType; --type U15 = InstanceType; --type U16 = InstanceType T[]>; --type U17 = InstanceType T[]>; -+type T10 = ReturnType<() => string>; // string -+type T11 = ReturnType<(s: string) => void>; // void -+type T12 = ReturnType<(() => T)>; // {} -+type T13 = ReturnType<(() => T)>; // number[] -+type T14 = ReturnType; // { a: number, b: string } -+type T15 = ReturnType; // any -+type T16 = ReturnType; // never -+type T17 = ReturnType; // Error -+type T18 = ReturnType; // Error -+type T19 = ReturnType<(x: string, ...args: T) => T[]>; // T[] -+type U10 = InstanceType; // C -+type U11 = InstanceType; // any -+type U12 = InstanceType; // never -+type U13 = InstanceType; // Error -+type U14 = InstanceType; // Error -+type U15 = InstanceType; // Abstract -+type U16 = InstanceType T[]>; // T[] -+type U17 = InstanceType T[]>; // T[] - type ArgumentType any> = T extends (a: infer A) => any ? A : any; --type T20 = ArgumentType<() => void>; --type T21 = ArgumentType<(x: string) => number>; --type T22 = ArgumentType<(x?: string) => number>; --type T23 = ArgumentType<(...args: string[]) => number>; --type T24 = ArgumentType<(x: string, y: string) => number>; --type T25 = ArgumentType; --type T26 = ArgumentType; --type T27 = ArgumentType; -+type T20 = ArgumentType<() => void>; // {} -+type T21 = ArgumentType<(x: string) => number>; // string -+type T22 = ArgumentType<(x?: string) => number>; // string | undefined -+type T23 = ArgumentType<(...args: string[]) => number>; // string -+type T24 = ArgumentType<(x: string, y: string) => number>; // Error -+type T25 = ArgumentType; // Error -+type T26 = ArgumentType; // any -+type T27 = ArgumentType; // never - type X1; -+}>; // [any, any] - type T31 = X1<{ - x: number; - y: string; --}>; -+}>; // [number, string] - type T32 = X1<{ - x: number; - y: string; - z: boolean; --}>; -+}>; // [number, string] - type X2 = T extends { - a: infer U; - b: infer U; - } ? U : never; --type T40 = X2<{}>; -+type T40 = X2<{}>; // never - type T41 = X2<{ - a: string; --}>; -+}>; // never - type T42 = X2<{ - a: string; - b: string; --}>; -+}>; // string - type T43 = X2<{ - a: number; - b: string; --}>; -+}>; // string | number - type T44 = X2<{ - a: number; - b: string; - c: boolean; --}>; -+}>; // string | number - type X3 = T extends { - a: (x: infer U) => void; - b: (x: infer U) => void; - } ? U : never; --type T50 = X3<{}>; -+type T50 = X3<{}>; // never - type T51 = X3<{ - a: (x: string) => void; --}>; -+}>; // never - type T52 = X3<{ - a: (x: string) => void; - b: (x: string) => void; --}>; -+}>; // string - type T53 = X3<{ - a: (x: number) => void; - b: (x: string) => void; --}>; -+}>; // never - type T54 = X3<{ - a: (x: number) => void; - b: () => void; --}>; --type T60 = infer U; --type T61 = (infer A) extends infer B ? infer C : infer D; --type T62 = U extends (infer U)[] ? U : U; -+}>; // number -+type T60 = infer U; // Error -+type T61 = (infer A) extends infer B ? infer C : infer D; // Error -+type T62 = U extends (infer U)[] ? U : U; // Error - type T63 = T extends ((infer A) extends infer B ? infer C : infer D) ? string : number; - type T70 = { - x: T; -@@= skipped -62, +62 lines =@@ - type T72 = { - y: T; - }; --type T73 = T extends T72 ? T70 : never; -+type T73 = T extends T72 ? T70 : never; // Error - type T74 = { - x: T; - y: U; -@@= skipped -13, +13 lines =@@ - type T78 = T extends T76 ? T76 : never; - type Foo = [T, U]; - type Bar = T extends Foo ? Foo : never; --type T90 = Bar<[string, string]>; --type T91 = Bar<[string, "a"]>; -+type T90 = Bar<[string, string]>; // [string, string] -+type T91 = Bar<[string, "a"]>; // [string, "a"] - type T92 = Bar<[string, "a"] & { - x: string; --}>; --type T93 = Bar<["a", string]>; --type T94 = Bar<[number, number]>; -+}>; // [string, "a"] -+type T93 = Bar<["a", string]>; // never -+type T94 = Bar<[number, number]>; // never -+// Example from #21496 - type JsonifiedObject = { - [K in keyof T]: Jsonified; - }; --type Jsonified = T extends string | number | boolean | null ? T : T extends undefined | Function ? never : T extends { -+type Jsonified = T extends string | number | boolean | null ? T : T extends undefined | Function ? never // undefined and functions are removed -+ : T extends { - toJSON(): infer R; --} ? R : T extends object ? JsonifiedObject : "what is this"; -+} ? R // toJSON is called if it exists (e.g. Date) -+ : T extends object ? JsonifiedObject : "what is this"; - type Example = { - str: "literalstring"; - fn: () => void; -@@= skipped -33, +36 lines =@@ - declare let ex: JsonifiedExample; - declare const z1: "correct"; - declare const z2: string; -+// Repros from #21631 - type A1> = [T, U]; - type B1 = S extends A1 ? [T, U] : never; - type A2 = [T, U]; - type B2 = S extends A2 ? [T, U] : never; - type C2 = S extends A2 ? [T, U] : never; -+// Repro from #21735 - type A = T extends string ? { - [P in T]: void; - } : T; - type B = string extends T ? { - [P in T]: void; --} : T; -+} : T; // Error -+// Repro from #22302 - type MatchingKeys = K extends keyof T ? T[K] extends U ? K : never : never; - type VoidKeys = MatchingKeys; - interface test { -@@= skipped -19, +22 lines =@@ - } - type T80 = MatchingKeys; - type T81 = VoidKeys; -+// Repro from #22221 - type MustBeString = T; - type EnsureIsString = T extends MustBeString ? U : never; --type Test1 = EnsureIsString<"hello">; --type Test2 = EnsureIsString<42>; -+type Test1 = EnsureIsString<"hello">; // "hello" -+type Test2 = EnsureIsString<42>; // never -+// Repros from #26856 - declare function invoker(key: K, ...args: A): any>>(obj: T) => ReturnType; - declare const result: number; - type Foo2 = ReturnType<(...args: A) => string>; \ No newline at end of file + const z2 = ex.obj.nested.attr; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/inferTypes2.js b/testdata/baselines/reference/submodule/conformance/inferTypes2.js index 125ecbc8b8..97a645fed3 100644 --- a/testdata/baselines/reference/submodule/conformance/inferTypes2.js +++ b/testdata/baselines/reference/submodule/conformance/inferTypes2.js @@ -40,7 +40,6 @@ const b = a; //// [inferTypes2.d.ts] -// Repros from #22755 export declare function foo(obj: T): T extends () => infer P ? P : never; export declare function bar(obj: T): T extends () => infer P ? P : never; export type BadNested = { diff --git a/testdata/baselines/reference/submodule/conformance/inferTypes2.js.diff b/testdata/baselines/reference/submodule/conformance/inferTypes2.js.diff index 2e4a47e624..5b8076441a 100644 --- a/testdata/baselines/reference/submodule/conformance/inferTypes2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/inferTypes2.js.diff @@ -7,12 +7,4 @@ -// Repros from #22755 Object.defineProperty(exports, "__esModule", { value: true }); exports.bar = bar; - exports.bar2 = bar2; -@@= skipped -15, +14 lines =@@ - - - //// [inferTypes2.d.ts] -+// Repros from #22755 - export declare function foo(obj: T): T extends () => infer P ? P : never; - export declare function bar(obj: T): T extends () => infer P ? P : never; - export type BadNested = { \ No newline at end of file + exports.bar2 = bar2; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/inferTypesWithExtends1.js b/testdata/baselines/reference/submodule/conformance/inferTypesWithExtends1.js index 2bfc6ab2db..7ef823472b 100644 --- a/testdata/baselines/reference/submodule/conformance/inferTypesWithExtends1.js +++ b/testdata/baselines/reference/submodule/conformance/inferTypesWithExtends1.js @@ -147,22 +147,18 @@ function f2() { //// [inferTypesWithExtends1.d.ts] -// infer to tuple element type X1 = T extends [infer U extends string] ? ["string", U] : T extends [infer U extends number] ? ["number", U] : never; -type X1_T1 = X1<["a"]>; // ["string", "a"] -type X1_T2 = X1<[1]>; // ["number", 1] -type X1_T3 = X1<[object]>; // never -// infer to argument +type X1_T1 = X1<["a"]>; +type X1_T2 = X1<[1]>; +type X1_T3 = X1<[object]>; type X2 void> = T extends (a: infer U extends string) => void ? ["string", U] : T extends (a: infer U extends number) => void ? ["number", U] : never; -type X2_T1 = X2<(a: "a") => void>; // ["string", "a"] -type X2_T2 = X2<(a: 1) => void>; // ["number", 1] -type X2_T3 = X2<(a: object) => void>; // never -// infer to return type +type X2_T1 = X2<(a: "a") => void>; +type X2_T2 = X2<(a: 1) => void>; +type X2_T3 = X2<(a: object) => void>; type X3 any> = T extends (...args: any[]) => (infer U extends string) ? ["string", U] : T extends (...args: any[]) => (infer U extends number) ? ["number", U] : never; -type X3_T1 = X3<() => "a">; // ["string", "a"] -type X3_T2 = X3<() => 1>; // ["number", 1] -type X3_T3 = X3<() => object>; // never -// infer to instance type +type X3_T1 = X3<() => "a">; +type X3_T2 = X3<() => 1>; +type X3_T3 = X3<() => object>; type X4 any> = T extends new (...args: any[]) => (infer U extends { a: string; }) ? ["string", U] : T extends new (...args: any[]) => (infer U extends { @@ -170,19 +166,17 @@ type X4 any> = T extends new (...args: any[]) }) ? ["number", U] : never; type X4_T1 = X4 { a: "a"; -}>; // ["string", { a: "a" }] +}>; type X4_T2 = X4 { a: 1; -}>; // ["number", { a: 1 }] +}>; type X4_T3 = X4 { a: object; -}>; // never -// infer to type argument +}>; type X5 = T extends Promise ? ["string", U] : T extends Promise ? ["number", U] : never; -type X5_T1 = X5>; // ["string", "a" | "b"] -type X5_T2 = X5>; // ["number", 1 | 2] -type X5_T3 = X5>; // never -// infer to property type +type X5_T1 = X5>; +type X5_T2 = X5>; +type X5_T3 = X5>; type X6 = T extends { a: infer U extends string; } ? ["string", U] : T extends { @@ -190,14 +184,13 @@ type X6 = T extends { } ? ["number", U] : never; type X6_T1 = X6<{ a: "a"; -}>; // ["string", "a"] +}>; type X6_T2 = X6<{ a: 1; -}>; // ["number", 1] +}>; type X6_T3 = X6<{ a: object; -}>; // never -// infer twice with same constraint +}>; type X7 = T extends { a: infer U extends string; b: infer U extends string; @@ -208,20 +201,19 @@ type X7 = T extends { type X7_T1 = X7<{ a: "a"; b: "b"; -}>; // ["string", "a" | "b"] +}>; type X7_T2 = X7<{ a: 1; b: 2; -}>; // ["number", 1 | 2] +}>; type X7_T3 = X7<{ a: object; b: object; -}>; // never +}>; type X7_T4 = X7<{ a: "a"; b: 1; -}>; // never -// infer twice with missing second constraint (same behavior as class/interface) +}>; type X8 = T extends { a: infer U extends string; b: infer U; @@ -232,20 +224,19 @@ type X8 = T extends { type X8_T1 = X8<{ a: "a"; b: "b"; -}>; // ["string", "a" | "b"] +}>; type X8_T2 = X8<{ a: 1; b: 2; -}>; // ["number", 1 | 2] +}>; type X8_T3 = X8<{ a: object; b: object; -}>; // never +}>; type X8_T4 = X8<{ a: "a"; b: 1; -}>; // never -// infer twice with missing first constraint (same behavior as class/interface) +}>; type X9 = T extends { a: infer U; b: infer U extends string; @@ -256,52 +247,50 @@ type X9 = T extends { type X9_T1 = X9<{ a: "a"; b: "b"; -}>; // ["string", "a" | "b"] +}>; type X9_T2 = X9<{ a: 1; b: 2; -}>; // ["number", 1 | 2] +}>; type X9_T3 = X9<{ a: object; b: object; -}>; // never +}>; type X9_T4 = X9<{ a: "a"; b: 1; -}>; // never -// Speculative lookahead for `infer T extends U ?` -type X10 = T extends (infer U extends number ? 1 : 0) ? 1 : 0; // ok, parsed as conditional +}>; +type X10 = T extends (infer U extends number ? 1 : 0) ? 1 : 0; type X10_Y1 = X10; type X10_T1_T1 = X10_Y1; -type X11 = T extends ((infer U) extends number ? 1 : 0) ? 1 : 0; // ok, parsed as conditional -type X12 = T extends (infer U extends number) ? 1 : 0; // ok, parsed as `infer..extends` (no trailing `?`) -type X13 = T extends infer U extends number ? 1 : 0; // ok, parsed as `infer..extends` (conditional types not allowed in 'extends type') -type X14 = T extends keyof (infer U extends number) ? 1 : 0; // ok, parsed as `infer..extends` (precedence wouldn't have parsed the `?` as part of a type operator) +type X11 = T extends ((infer U) extends number ? 1 : 0) ? 1 : 0; +type X12 = T extends (infer U extends number) ? 1 : 0; +type X13 = T extends infer U extends number ? 1 : 0; +type X14 = T extends keyof (infer U extends number) ? 1 : 0; type X15 = T extends { [P in infer U extends keyof T ? 1 : 0]: 1; -} ? 1 : 0; // ok, parsed as conditional +} ? 1 : 0; type X16 = T extends { [P in infer U extends keyof T]: 1; -} ? 1 : 0; // ok, parsed as `infer..extends` (no trailing `?`) +} ? 1 : 0; type X17 = T extends { [P in keyof T as infer U extends P ? 1 : 0]: 1; -} ? 1 : 0; // ok, parsed as conditional +} ? 1 : 0; type X18 = T extends { [P in keyof T as infer U extends P]: 1; -} ? 1 : 0; // ok, parsed as `infer..extends` (no trailing `?`) +} ? 1 : 0; type X19 = T extends (infer U extends number) ? [T, U] : never; -type X19_T1 = X19<"a">; // never -type X19_T2 = X19<1>; // [1, 1] -type X19_T3 = X19<1 | "a">; // [1, 1] +type X19_T1 = X19<"a">; +type X19_T2 = X19<1>; +type X19_T3 = X19<1 | "a">; type X20 = T extends (infer U extends number) ? T extends (infer V extends U) ? [T, U, V] : never : never; -type X20_T1 = X20<1 | "a">; // [1, 1, 1] +type X20_T1 = X20<1 | "a">; type X21 = T extends (infer U extends N) ? [T, U] : never; -type X21_T1 = X21<1, 1>; // [1, 1] -type X21_T2 = X21<1 | "a", 1>; // [1, 1] -type X21_T3 = X21<1 | 2, 1>; // [1, 1] -type X21_T4 = X21<1 | 2, 2 | 3>; // [2, 2] -type X21_T5 = X21<1 | 2, 3>; // never -// from mongoose +type X21_T1 = X21<1, 1>; +type X21_T2 = X21<1 | "a", 1>; +type X21_T3 = X21<1 | 2, 1>; +type X21_T4 = X21<1 | 2, 2 | 3>; +type X21_T5 = X21<1 | 2, 3>; type IfEquals = (() => T extends X ? 1 : 2) extends () => (T extends Y ? 1 : 2) ? A : B; declare const x1: () => (T extends infer U extends number ? 1 : 0); declare function f1(): () => T extends infer U extends number ? 1 : 0; diff --git a/testdata/baselines/reference/submodule/conformance/inferTypesWithExtends1.js.diff b/testdata/baselines/reference/submodule/conformance/inferTypesWithExtends1.js.diff index cbcea55453..395838fe7b 100644 --- a/testdata/baselines/reference/submodule/conformance/inferTypesWithExtends1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/inferTypesWithExtends1.js.diff @@ -8,205 +8,20 @@ function f1() { return x1; } -@@= skipped -10, +9 lines =@@ - - - //// [inferTypesWithExtends1.d.ts] -+// infer to tuple element - type X1 = T extends [infer U extends string] ? ["string", U] : T extends [infer U extends number] ? ["number", U] : never; --type X1_T1 = X1<["a"]>; --type X1_T2 = X1<[1]>; --type X1_T3 = X1<[object]>; -+type X1_T1 = X1<["a"]>; // ["string", "a"] -+type X1_T2 = X1<[1]>; // ["number", 1] -+type X1_T3 = X1<[object]>; // never -+// infer to argument - type X2 void> = T extends (a: infer U extends string) => void ? ["string", U] : T extends (a: infer U extends number) => void ? ["number", U] : never; --type X2_T1 = X2<(a: "a") => void>; --type X2_T2 = X2<(a: 1) => void>; --type X2_T3 = X2<(a: object) => void>; -+type X2_T1 = X2<(a: "a") => void>; // ["string", "a"] -+type X2_T2 = X2<(a: 1) => void>; // ["number", 1] -+type X2_T3 = X2<(a: object) => void>; // never -+// infer to return type - type X3 any> = T extends (...args: any[]) => (infer U extends string) ? ["string", U] : T extends (...args: any[]) => (infer U extends number) ? ["number", U] : never; --type X3_T1 = X3<() => "a">; --type X3_T2 = X3<() => 1>; --type X3_T3 = X3<() => object>; -+type X3_T1 = X3<() => "a">; // ["string", "a"] -+type X3_T2 = X3<() => 1>; // ["number", 1] -+type X3_T3 = X3<() => object>; // never -+// infer to instance type - type X4 any> = T extends new (...args: any[]) => (infer U extends { - a: string; - }) ? ["string", U] : T extends new (...args: any[]) => (infer U extends { -@@= skipped -19, +23 lines =@@ - }) ? ["number", U] : never; - type X4_T1 = X4 { - a: "a"; --}>; -+}>; // ["string", { a: "a" }] - type X4_T2 = X4 { - a: 1; --}>; -+}>; // ["number", { a: 1 }] - type X4_T3 = X4 { - a: object; --}>; -+}>; // never -+// infer to type argument - type X5 = T extends Promise ? ["string", U] : T extends Promise ? ["number", U] : never; --type X5_T1 = X5>; --type X5_T2 = X5>; --type X5_T3 = X5>; -+type X5_T1 = X5>; // ["string", "a" | "b"] -+type X5_T2 = X5>; // ["number", 1 | 2] -+type X5_T3 = X5>; // never -+// infer to property type - type X6 = T extends { - a: infer U extends string; - } ? ["string", U] : T extends { -@@= skipped -18, +20 lines =@@ - } ? ["number", U] : never; - type X6_T1 = X6<{ - a: "a"; --}>; -+}>; // ["string", "a"] - type X6_T2 = X6<{ - a: 1; --}>; -+}>; // ["number", 1] - type X6_T3 = X6<{ - a: object; --}>; -+}>; // never -+// infer twice with same constraint - type X7 = T extends { - a: infer U extends string; - b: infer U extends string; -@@= skipped -17, +18 lines =@@ - type X7_T1 = X7<{ - a: "a"; - b: "b"; --}>; -+}>; // ["string", "a" | "b"] - type X7_T2 = X7<{ - a: 1; - b: 2; --}>; -+}>; // ["number", 1 | 2] - type X7_T3 = X7<{ - a: object; - b: object; --}>; -+}>; // never - type X7_T4 = X7<{ - a: "a"; - b: 1; --}>; -+}>; // never -+// infer twice with missing second constraint (same behavior as class/interface) - type X8 = T extends { - a: infer U extends string; - b: infer U; -@@= skipped -23, +24 lines =@@ - type X8_T1 = X8<{ - a: "a"; - b: "b"; --}>; -+}>; // ["string", "a" | "b"] - type X8_T2 = X8<{ - a: 1; - b: 2; --}>; -+}>; // ["number", 1 | 2] - type X8_T3 = X8<{ - a: object; - b: object; --}>; -+}>; // never - type X8_T4 = X8<{ - a: "a"; - b: 1; --}>; -+}>; // never -+// infer twice with missing first constraint (same behavior as class/interface) - type X9 = T extends { - a: infer U; - b: infer U extends string; -@@= skipped -23, +24 lines =@@ - type X9_T1 = X9<{ - a: "a"; - b: "b"; --}>; -+}>; // ["string", "a" | "b"] - type X9_T2 = X9<{ - a: 1; - b: 2; --}>; -+}>; // ["number", 1 | 2] - type X9_T3 = X9<{ - a: object; - b: object; --}>; -+}>; // never - type X9_T4 = X9<{ - a: "a"; - b: 1; --}>; --type X10 = T extends (infer U extends number ? 1 : 0) ? 1 : 0; -+}>; // never -+// Speculative lookahead for `infer T extends U ?` -+type X10 = T extends (infer U extends number ? 1 : 0) ? 1 : 0; // ok, parsed as conditional - type X10_Y1 = X10; - type X10_T1_T1 = X10_Y1; --type X11 = T extends ((infer U) extends number ? 1 : 0) ? 1 : 0; --type X12 = T extends (infer U extends number) ? 1 : 0; --type X13 = T extends infer U extends number ? 1 : 0; +@@= skipped -129, +128 lines =@@ + type X11 = T extends ((infer U) extends number ? 1 : 0) ? 1 : 0; + type X12 = T extends (infer U extends number) ? 1 : 0; + type X13 = T extends infer U extends number ? 1 : 0; -type X14 = T extends keyof infer U extends number ? 1 : 0; -+type X11 = T extends ((infer U) extends number ? 1 : 0) ? 1 : 0; // ok, parsed as conditional -+type X12 = T extends (infer U extends number) ? 1 : 0; // ok, parsed as `infer..extends` (no trailing `?`) -+type X13 = T extends infer U extends number ? 1 : 0; // ok, parsed as `infer..extends` (conditional types not allowed in 'extends type') -+type X14 = T extends keyof (infer U extends number) ? 1 : 0; // ok, parsed as `infer..extends` (precedence wouldn't have parsed the `?` as part of a type operator) ++type X14 = T extends keyof (infer U extends number) ? 1 : 0; type X15 = T extends { [P in infer U extends keyof T ? 1 : 0]: 1; --} ? 1 : 0; -+} ? 1 : 0; // ok, parsed as conditional - type X16 = T extends { - [P in infer U extends keyof T]: 1; --} ? 1 : 0; -+} ? 1 : 0; // ok, parsed as `infer..extends` (no trailing `?`) - type X17 = T extends { - [P in keyof T as infer U extends P ? 1 : 0]: 1; --} ? 1 : 0; -+} ? 1 : 0; // ok, parsed as conditional - type X18 = T extends { - [P in keyof T as infer U extends P]: 1; --} ? 1 : 0; -+} ? 1 : 0; // ok, parsed as `infer..extends` (no trailing `?`) - type X19 = T extends (infer U extends number) ? [T, U] : never; --type X19_T1 = X19<"a">; --type X19_T2 = X19<1>; --type X19_T3 = X19<1 | "a">; -+type X19_T1 = X19<"a">; // never -+type X19_T2 = X19<1>; // [1, 1] -+type X19_T3 = X19<1 | "a">; // [1, 1] - type X20 = T extends (infer U extends number) ? T extends (infer V extends U) ? [T, U, V] : never : never; --type X20_T1 = X20<1 | "a">; -+type X20_T1 = X20<1 | "a">; // [1, 1, 1] - type X21 = T extends (infer U extends N) ? [T, U] : never; --type X21_T1 = X21<1, 1>; --type X21_T2 = X21<1 | "a", 1>; --type X21_T3 = X21<1 | 2, 1>; --type X21_T4 = X21<1 | 2, 2 | 3>; --type X21_T5 = X21<1 | 2, 3>; + } ? 1 : 0; +@@= skipped -25, +25 lines =@@ + type X21_T3 = X21<1 | 2, 1>; + type X21_T4 = X21<1 | 2, 2 | 3>; + type X21_T5 = X21<1 | 2, 3>; -type IfEquals = (() => T extends X ? 1 : 2) extends () => T extends Y ? 1 : 2 ? A : B; -+type X21_T1 = X21<1, 1>; // [1, 1] -+type X21_T2 = X21<1 | "a", 1>; // [1, 1] -+type X21_T3 = X21<1 | 2, 1>; // [1, 1] -+type X21_T4 = X21<1 | 2, 2 | 3>; // [2, 2] -+type X21_T5 = X21<1 | 2, 3>; // never -+// from mongoose +type IfEquals = (() => T extends X ? 1 : 2) extends () => (T extends Y ? 1 : 2) ? A : B; declare const x1: () => (T extends infer U extends number ? 1 : 0); -declare function f1(): () => (T extends infer U extends number ? 1 : 0); diff --git a/testdata/baselines/reference/submodule/conformance/instantiationExpressionErrors.js b/testdata/baselines/reference/submodule/conformance/instantiationExpressionErrors.js index f4d5452258..191c6e99f2 100644 --- a/testdata/baselines/reference/submodule/conformance/instantiationExpressionErrors.js +++ b/testdata/baselines/reference/submodule/conformance/instantiationExpressionErrors.js @@ -181,40 +181,32 @@ declare let f: { (): T; g(): U; }; -// Type arguments in member expressions declare const a1: { (): number; g(): U; -}; // { (): number; g(): U; } -declare const a2: () => number; // () => number -declare const a3: () => U; // () => U -declare const a4: () => number; // () => number -declare const a5: () => number; // () => number -// `[` is an expression starter and cannot immediately follow a type argument list -declare const a6: boolean; // Error +}; +declare const a2: () => number; +declare const a3: () => U; +declare const a4: () => number; +declare const a5: () => number; +declare const a6: boolean; declare const a7: () => U; -// An `<` cannot immediately follow a type argument list -declare const a8: boolean; // Relational operator error +declare const a8: boolean; declare const a9: { g(): U; -}; // Error, no applicable signatures -// Type arguments with `?.` token -declare const b1: number; // Error, `(` expected +}; +declare const b1: number; declare const b2: number; declare const b3: number; -declare const b4: number; // Error, expected no type arguments -// Instantiation expression and binary operators +declare const b4: number; declare let g: ((x: T) => T) | undefined; declare const c1: (x: string) => string; declare const c2: (x: string) => string; declare const c3: ((x: string) => string) | undefined; -// Parsed as function call, even though this differs from JavaScript declare const x1: true; -// Parsed as relational expressions declare const r1: boolean; declare const r2: boolean; declare const r3: boolean; -// All of the following are parsed as instantiation expressions declare const x2: { (): true; g(): U; @@ -286,7 +278,6 @@ declare class C4 { }; protected bar: number; } -// Repro from #49551 declare const enum MyVer { v1 = 1, v2 = 2 diff --git a/testdata/baselines/reference/submodule/conformance/instantiationExpressionErrors.js.diff b/testdata/baselines/reference/submodule/conformance/instantiationExpressionErrors.js.diff index 6423ae0e3c..82bd8d5209 100644 --- a/testdata/baselines/reference/submodule/conformance/instantiationExpressionErrors.js.diff +++ b/testdata/baselines/reference/submodule/conformance/instantiationExpressionErrors.js.diff @@ -113,63 +113,4 @@ + bar = 123; } let ver = 21; - const a = ver < (1 /* MyVer.v1 */ >= 2 /* MyVer.v2 */ ? 1 /* MyVer.v1 */ : 2 /* MyVer.v2 */); -@@= skipped -54, +45 lines =@@ - (): T; - g(): U; - }; -+// Type arguments in member expressions - declare const a1: { - (): number; - g(): U; --}; --declare const a2: () => number; --declare const a3: () => U; --declare const a4: () => number; --declare const a5: () => number; --declare const a6: boolean; -+}; // { (): number; g(): U; } -+declare const a2: () => number; // () => number -+declare const a3: () => U; // () => U -+declare const a4: () => number; // () => number -+declare const a5: () => number; // () => number -+// `[` is an expression starter and cannot immediately follow a type argument list -+declare const a6: boolean; // Error - declare const a7: () => U; --declare const a8: boolean; -+// An `<` cannot immediately follow a type argument list -+declare const a8: boolean; // Relational operator error - declare const a9: { - g(): U; --}; --declare const b1: number; -+}; // Error, no applicable signatures -+// Type arguments with `?.` token -+declare const b1: number; // Error, `(` expected - declare const b2: number; - declare const b3: number; --declare const b4: number; -+declare const b4: number; // Error, expected no type arguments -+// Instantiation expression and binary operators - declare let g: ((x: T) => T) | undefined; - declare const c1: (x: string) => string; - declare const c2: (x: string) => string; - declare const c3: ((x: string) => string) | undefined; -+// Parsed as function call, even though this differs from JavaScript - declare const x1: true; -+// Parsed as relational expressions - declare const r1: boolean; - declare const r2: boolean; - declare const r3: boolean; -+// All of the following are parsed as instantiation expressions - declare const x2: { - (): true; - g(): U; -@@= skipped -97, +105 lines =@@ - }; - protected bar: number; - } -+// Repro from #49551 - declare const enum MyVer { - v1 = 1, - v2 = 2 \ No newline at end of file + const a = ver < (1 /* MyVer.v1 */ >= 2 /* MyVer.v2 */ ? 1 /* MyVer.v1 */ : 2 /* MyVer.v2 */); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/instantiationExpressions.js b/testdata/baselines/reference/submodule/conformance/instantiationExpressions.js index 9bdeddff51..6b4cad516b 100644 --- a/testdata/baselines/reference/submodule/conformance/instantiationExpressions.js +++ b/testdata/baselines/reference/submodule/conformance/instantiationExpressions.js @@ -276,14 +276,14 @@ declare function fx(x: T): T; declare function fx(x: T, n: number): T; declare function fx(t: [T, U]): [T, U]; declare function f1(): void; -type T10 = typeof fx; // Error -type T11 = typeof fx; // { (x: string): string; (x: string, n: number): string; } -type T12 = typeof fx; // (t: [string, number]) => [string, number] -type T13 = typeof fx; // Error +type T10 = typeof fx; +type T11 = typeof fx; +type T12 = typeof fx; +type T13 = typeof fx; declare function f2(): void; -type T20 = typeof Array; // Error -type T21 = typeof Array; // new (...) => string[] -type T22 = typeof Array; // Error +type T20 = typeof Array; +type T21 = typeof Array; +type T22 = typeof Array; declare class C { constructor(x: T); static f(x: U): U[]; @@ -353,11 +353,11 @@ declare function f38(x: A) => A) | ((x: B) => B[]), U>(f: T | declare function makeBox(value: T): { value: T; }; -type BoxFunc = typeof makeBox; // (value: T) => { value: T } -type StringBoxFunc = BoxFunc; // (value: string) => { value: string } -type Box = ReturnType>; // { value: T } -type StringBox = Box; // { value: string } -type A = InstanceType>; // U[] +type BoxFunc = typeof makeBox; +type StringBoxFunc = BoxFunc; +type Box = ReturnType>; +type StringBox = Box; +type A = InstanceType>; declare const g1: { (a: T): { a: T; @@ -366,18 +366,18 @@ declare const g1: { b: U; }; }; -type T30 = typeof g1; // { (a: V) => { a: V }; new (b: V) => { b: V }; } -type T31 = ReturnType>; // { a: A } -type T32 = InstanceType>; // { b: B } +type T30 = typeof g1; +type T31 = ReturnType>; +type T32 = InstanceType>; declare const g2: { (a: T): T; new (b: T): T; }; -type T40 = typeof g2; // Error -type T41 = typeof g2; // Error +type T40 = typeof g2; +type T41 = typeof g2; declare const g3: { (a: T): T; new (b: T): T; }; -type T50 = typeof g3; // (a: U) => U -type T51 = typeof g3; // (b: U) => U +type T50 = typeof g3; +type T51 = typeof g3; diff --git a/testdata/baselines/reference/submodule/conformance/instantiationExpressions.js.diff b/testdata/baselines/reference/submodule/conformance/instantiationExpressions.js.diff index 01ddecce6a..e1cc4afbe1 100644 --- a/testdata/baselines/reference/submodule/conformance/instantiationExpressions.js.diff +++ b/testdata/baselines/reference/submodule/conformance/instantiationExpressions.js.diff @@ -128,69 +128,4 @@ + let fs = f; // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) } function makeBox(value) { - return { value }; -@@= skipped -101, +100 lines =@@ - declare function fx(x: T, n: number): T; - declare function fx(t: [T, U]): [T, U]; - declare function f1(): void; --type T10 = typeof fx; --type T11 = typeof fx; --type T12 = typeof fx; --type T13 = typeof fx; -+type T10 = typeof fx; // Error -+type T11 = typeof fx; // { (x: string): string; (x: string, n: number): string; } -+type T12 = typeof fx; // (t: [string, number]) => [string, number] -+type T13 = typeof fx; // Error - declare function f2(): void; --type T20 = typeof Array; --type T21 = typeof Array; --type T22 = typeof Array; -+type T20 = typeof Array; // Error -+type T21 = typeof Array; // new (...) => string[] -+type T22 = typeof Array; // Error - declare class C { - constructor(x: T); - static f(x: U): U[]; -@@= skipped -77, +77 lines =@@ - declare function makeBox(value: T): { - value: T; - }; --type BoxFunc = typeof makeBox; --type StringBoxFunc = BoxFunc; --type Box = ReturnType>; --type StringBox = Box; --type A = InstanceType>; -+type BoxFunc = typeof makeBox; // (value: T) => { value: T } -+type StringBoxFunc = BoxFunc; // (value: string) => { value: string } -+type Box = ReturnType>; // { value: T } -+type StringBox = Box; // { value: string } -+type A = InstanceType>; // U[] - declare const g1: { - (a: T): { - a: T; -@@= skipped -13, +13 lines =@@ - b: U; - }; - }; --type T30 = typeof g1; --type T31 = ReturnType>; --type T32 = InstanceType>; -+type T30 = typeof g1; // { (a: V) => { a: V }; new (b: V) => { b: V }; } -+type T31 = ReturnType>; // { a: A } -+type T32 = InstanceType>; // { b: B } - declare const g2: { - (a: T): T; - new (b: T): T; - }; --type T40 = typeof g2; --type T41 = typeof g2; -+type T40 = typeof g2; // Error -+type T41 = typeof g2; // Error - declare const g3: { - (a: T): T; - new (b: T): T; - }; --type T50 = typeof g3; --type T51 = typeof g3; -+type T50 = typeof g3; // (a: U) => U -+type T51 = typeof g3; // (b: U) => U \ No newline at end of file + return { value }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/intraExpressionInferences.js b/testdata/baselines/reference/submodule/conformance/intraExpressionInferences.js index 843e24d2e5..d120a966bd 100644 --- a/testdata/baselines/reference/submodule/conformance/intraExpressionInferences.js +++ b/testdata/baselines/reference/submodule/conformance/intraExpressionInferences.js @@ -517,37 +517,31 @@ const distantRes = distant({ //// [intraExpressionInferences.d.ts] -// Repros from #47599 declare function callIt(obj: { produce: (n: number) => T; consume: (x: T) => void; }): void; declare function callItT(obj: [(n: number) => T, (x: T) => void]): void; -// Repro from #25092 interface MyInterface { retrieveGeneric: (parameter: string) => T; operateWithGeneric: (generic: T) => string; } declare const inferTypeFn: (generic: MyInterface) => MyInterface; declare const myGeneric: MyInterface; -// Repro #38623 declare function make(o: { mutations: M; action: (m: M) => void; }): void; -// Repro from #38845 declare function foo(options: { a: A; b: (a: A) => void; }): void; -// Repro from #38872 type Chain = { a(): R1; b(a: R1): R2; c(b: R2): void; }; declare function test(foo: Chain): void; -// Repro from #41712 declare class Wrapper { value?: T; } @@ -563,7 +557,6 @@ type MappingComponent = { map?: (inputs: Unwrap) => Unwrap; }; declare function createMappingComponent(def: MappingComponent): void; -// Repro from #48279 declare function simplified(props: { generator: () => T; receiver: (t: T) => any; @@ -573,7 +566,6 @@ declare function whatIWant(props: { receiver: (t: T) => any; }): void; declare function nonObject(generator: (bob: any) => T, receiver: (t: T) => any): void; -// Repro from #48466 interface Opts { fetch: (params: TParams, foo: number) => TDone; map: (data: TDone) => TMapped; @@ -583,7 +575,6 @@ interface Params { one: number; two: string; } -// Repro from #45255 declare const branch: (_: { test: T; if: (t: T) => t is U; diff --git a/testdata/baselines/reference/submodule/conformance/intraExpressionInferences.js.diff b/testdata/baselines/reference/submodule/conformance/intraExpressionInferences.js.diff index a0543b05b7..034e47c5b0 100644 --- a/testdata/baselines/reference/submodule/conformance/intraExpressionInferences.js.diff +++ b/testdata/baselines/reference/submodule/conformance/intraExpressionInferences.js.diff @@ -16,66 +16,4 @@ + value; } createMappingComponent({ - setup() { -@@= skipped -113, +114 lines =@@ - - - //// [intraExpressionInferences.d.ts] -+// Repros from #47599 - declare function callIt(obj: { - produce: (n: number) => T; - consume: (x: T) => void; - }): void; - declare function callItT(obj: [(n: number) => T, (x: T) => void]): void; -+// Repro from #25092 - interface MyInterface { - retrieveGeneric: (parameter: string) => T; - operateWithGeneric: (generic: T) => string; - } - declare const inferTypeFn: (generic: MyInterface) => MyInterface; - declare const myGeneric: MyInterface; -+// Repro #38623 - declare function make(o: { - mutations: M; - action: (m: M) => void; - }): void; -+// Repro from #38845 - declare function foo(options: { - a: A; - b: (a: A) => void; - }): void; -+// Repro from #38872 - type Chain = { - a(): R1; - b(a: R1): R2; - c(b: R2): void; - }; - declare function test(foo: Chain): void; -+// Repro from #41712 - declare class Wrapper { - value?: T; - } -@@= skipped -40, +46 lines =@@ - map?: (inputs: Unwrap) => Unwrap; - }; - declare function createMappingComponent(def: MappingComponent): void; -+// Repro from #48279 - declare function simplified(props: { - generator: () => T; - receiver: (t: T) => any; -@@= skipped -9, +10 lines =@@ - receiver: (t: T) => any; - }): void; - declare function nonObject(generator: (bob: any) => T, receiver: (t: T) => any): void; -+// Repro from #48466 - interface Opts { - fetch: (params: TParams, foo: number) => TDone; - map: (data: TDone) => TMapped; -@@= skipped -9, +10 lines =@@ - one: number; - two: string; - } -+// Repro from #45255 - declare const branch: (_: { - test: T; - if: (t: T) => t is U; \ No newline at end of file + setup() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/intrinsicTypes.js b/testdata/baselines/reference/submodule/conformance/intrinsicTypes.js index 8b62a7c427..1bbcc3b0f5 100644 --- a/testdata/baselines/reference/submodule/conformance/intrinsicTypes.js +++ b/testdata/baselines/reference/submodule/conformance/intrinsicTypes.js @@ -75,36 +75,36 @@ function foo4(x) { //// [intrinsicTypes.d.ts] -type TU1 = Uppercase<'hello'>; // "HELLO" -type TU2 = Uppercase<'foo' | 'bar'>; // "FOO" | "BAR" -type TU3 = Uppercase; // Uppercase -type TU4 = Uppercase; // Uppercase<`${any}`> -type TU5 = Uppercase; // never -type TU6 = Uppercase<42>; // Error -type TL1 = Lowercase<'HELLO'>; // "hello" -type TL2 = Lowercase<'FOO' | 'BAR'>; // "foo" | "bar" -type TL3 = Lowercase; // Lowercase -type TL4 = Lowercase; // Lowercase<`${any}`> -type TL5 = Lowercase; // never -type TL6 = Lowercase<42>; // Error -type TC1 = Capitalize<'hello'>; // "Hello" -type TC2 = Capitalize<'foo' | 'bar'>; // "Foo" | "Bar" -type TC3 = Capitalize; // Capitalize -type TC4 = Capitalize; // Capitalize<`${any}`> -type TC5 = Capitalize; // never -type TC6 = Capitalize<42>; // Error -type TN1 = Uncapitalize<'Hello'>; // "hello" -type TN2 = Uncapitalize<'Foo' | 'Bar'>; // "foo" | "bar" -type TN3 = Uncapitalize; // Uncapitalize -type TN4 = Uncapitalize; // Uncapitalize<`${any}`> -type TN5 = Uncapitalize; // never -type TN6 = Uncapitalize<42>; // Error +type TU1 = Uppercase<'hello'>; +type TU2 = Uppercase<'foo' | 'bar'>; +type TU3 = Uppercase; +type TU4 = Uppercase; +type TU5 = Uppercase; +type TU6 = Uppercase<42>; +type TL1 = Lowercase<'HELLO'>; +type TL2 = Lowercase<'FOO' | 'BAR'>; +type TL3 = Lowercase; +type TL4 = Lowercase; +type TL5 = Lowercase; +type TL6 = Lowercase<42>; +type TC1 = Capitalize<'hello'>; +type TC2 = Capitalize<'foo' | 'bar'>; +type TC3 = Capitalize; +type TC4 = Capitalize; +type TC5 = Capitalize; +type TC6 = Capitalize<42>; +type TN1 = Uncapitalize<'Hello'>; +type TN2 = Uncapitalize<'Foo' | 'Bar'>; +type TN3 = Uncapitalize; +type TN4 = Uncapitalize; +type TN5 = Uncapitalize; +type TN6 = Uncapitalize<42>; type TX1 = Uppercase<`aB${S}`>; -type TX2 = TX1<'xYz'>; // "ABXYZ" +type TX2 = TX1<'xYz'>; type TX3 = Lowercase<`aB${S}`>; -type TX4 = TX3<'xYz'>; // "abxyz" -type TX5 = `${Uppercase<'abc'>}${Lowercase<'XYZ'>}`; // "ABCxyz" -type MyUppercase = intrinsic; // Error +type TX4 = TX3<'xYz'>; +type TX5 = `${Uppercase<'abc'>}${Lowercase<'XYZ'>}`; +type MyUppercase = intrinsic; declare function foo1(s: string, x: Uppercase, y: Uppercase): void; declare function foo2(x: Uppercase): void; declare function foo3(x: Uppercase): T; diff --git a/testdata/baselines/reference/submodule/conformance/intrinsicTypes.js.diff b/testdata/baselines/reference/submodule/conformance/intrinsicTypes.js.diff index a84a9c9908..569ebc4234 100644 --- a/testdata/baselines/reference/submodule/conformance/intrinsicTypes.js.diff +++ b/testdata/baselines/reference/submodule/conformance/intrinsicTypes.js.diff @@ -7,69 +7,4 @@ -"use strict"; function foo1(s, x, y) { s = x; - s = y; -@@= skipped -18, +17 lines =@@ - - - //// [intrinsicTypes.d.ts] --type TU1 = Uppercase<'hello'>; --type TU2 = Uppercase<'foo' | 'bar'>; --type TU3 = Uppercase; --type TU4 = Uppercase; --type TU5 = Uppercase; --type TU6 = Uppercase<42>; --type TL1 = Lowercase<'HELLO'>; --type TL2 = Lowercase<'FOO' | 'BAR'>; --type TL3 = Lowercase; --type TL4 = Lowercase; --type TL5 = Lowercase; --type TL6 = Lowercase<42>; --type TC1 = Capitalize<'hello'>; --type TC2 = Capitalize<'foo' | 'bar'>; --type TC3 = Capitalize; --type TC4 = Capitalize; --type TC5 = Capitalize; --type TC6 = Capitalize<42>; --type TN1 = Uncapitalize<'Hello'>; --type TN2 = Uncapitalize<'Foo' | 'Bar'>; --type TN3 = Uncapitalize; --type TN4 = Uncapitalize; --type TN5 = Uncapitalize; --type TN6 = Uncapitalize<42>; -+type TU1 = Uppercase<'hello'>; // "HELLO" -+type TU2 = Uppercase<'foo' | 'bar'>; // "FOO" | "BAR" -+type TU3 = Uppercase; // Uppercase -+type TU4 = Uppercase; // Uppercase<`${any}`> -+type TU5 = Uppercase; // never -+type TU6 = Uppercase<42>; // Error -+type TL1 = Lowercase<'HELLO'>; // "hello" -+type TL2 = Lowercase<'FOO' | 'BAR'>; // "foo" | "bar" -+type TL3 = Lowercase; // Lowercase -+type TL4 = Lowercase; // Lowercase<`${any}`> -+type TL5 = Lowercase; // never -+type TL6 = Lowercase<42>; // Error -+type TC1 = Capitalize<'hello'>; // "Hello" -+type TC2 = Capitalize<'foo' | 'bar'>; // "Foo" | "Bar" -+type TC3 = Capitalize; // Capitalize -+type TC4 = Capitalize; // Capitalize<`${any}`> -+type TC5 = Capitalize; // never -+type TC6 = Capitalize<42>; // Error -+type TN1 = Uncapitalize<'Hello'>; // "hello" -+type TN2 = Uncapitalize<'Foo' | 'Bar'>; // "foo" | "bar" -+type TN3 = Uncapitalize; // Uncapitalize -+type TN4 = Uncapitalize; // Uncapitalize<`${any}`> -+type TN5 = Uncapitalize; // never -+type TN6 = Uncapitalize<42>; // Error - type TX1 = Uppercase<`aB${S}`>; --type TX2 = TX1<'xYz'>; -+type TX2 = TX1<'xYz'>; // "ABXYZ" - type TX3 = Lowercase<`aB${S}`>; --type TX4 = TX3<'xYz'>; --type TX5 = `${Uppercase<'abc'>}${Lowercase<'XYZ'>}`; --type MyUppercase = intrinsic; -+type TX4 = TX3<'xYz'>; // "abxyz" -+type TX5 = `${Uppercase<'abc'>}${Lowercase<'XYZ'>}`; // "ABCxyz" -+type MyUppercase = intrinsic; // Error - declare function foo1(s: string, x: Uppercase, y: Uppercase): void; - declare function foo2(x: Uppercase): void; - declare function foo3(x: Uppercase): T; \ No newline at end of file + s = y; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/isomorphicMappedTypeInference.js b/testdata/baselines/reference/submodule/conformance/isomorphicMappedTypeInference.js index 059230b8fa..fb71f552eb 100644 --- a/testdata/baselines/reference/submodule/conformance/isomorphicMappedTypeInference.js +++ b/testdata/baselines/reference/submodule/conformance/isomorphicMappedTypeInference.js @@ -339,7 +339,6 @@ type Foo = { readonly b: string; }; declare function f10(foo: Foo): void; -// Repro from #12606 type Func = (...args: any[]) => T; type Spec = { [P in keyof T]: Func | Spec; @@ -350,14 +349,12 @@ type Spec = { * of calling its associated function with the supplied arguments. */ declare function applySpec(obj: Spec): (...args: any[]) => T; -// Infers g1: (...args: any[]) => { sum: number, nested: { mul: string } } declare var g1: (...args: any[]) => { sum: number; nested: { mul: string; }; }; -// Infers g2: (...args: any[]) => { foo: { bar: { baz: boolean } } } declare var g2: (...args: any[]) => { foo: { bar: { @@ -365,14 +362,11 @@ declare var g2: (...args: any[]) => { }; }; }; -// Repro from #12633 declare const foo: (object: T, partial: Partial) => T; declare let o: { a: number; b: number; }; -// Inferring to { [P in K]: X }, where K extends keyof T, produces same inferences as -// inferring to { [P in keyof T]: X }. declare function f20(obj: Pick): T; declare function f21(obj: Pick): K; declare function f22(obj: Boxified>): T; @@ -398,7 +392,6 @@ declare let x4: { foo: number; bar: string; }; -// Repro from #29765 declare function getProps(obj: T, list: K[]): Pick; declare const myAny: any; declare const o1: Pick; diff --git a/testdata/baselines/reference/submodule/conformance/isomorphicMappedTypeInference.js.diff b/testdata/baselines/reference/submodule/conformance/isomorphicMappedTypeInference.js.diff deleted file mode 100644 index cd81a97688..0000000000 --- a/testdata/baselines/reference/submodule/conformance/isomorphicMappedTypeInference.js.diff +++ /dev/null @@ -1,48 +0,0 @@ ---- old.isomorphicMappedTypeInference.js -+++ new.isomorphicMappedTypeInference.js -@@= skipped -338, +338 lines =@@ - readonly b: string; - }; - declare function f10(foo: Foo): void; -+// Repro from #12606 - type Func = (...args: any[]) => T; - type Spec = { - [P in keyof T]: Func | Spec; -@@= skipped -10, +11 lines =@@ - * of calling its associated function with the supplied arguments. - */ - declare function applySpec(obj: Spec): (...args: any[]) => T; -+// Infers g1: (...args: any[]) => { sum: number, nested: { mul: string } } - declare var g1: (...args: any[]) => { - sum: number; - nested: { - mul: string; - }; - }; -+// Infers g2: (...args: any[]) => { foo: { bar: { baz: boolean } } } - declare var g2: (...args: any[]) => { - foo: { - bar: { -@@= skipped -13, +15 lines =@@ - }; - }; - }; -+// Repro from #12633 - declare const foo: (object: T, partial: Partial) => T; - declare let o: { - a: number; - b: number; - }; -+// Inferring to { [P in K]: X }, where K extends keyof T, produces same inferences as -+// inferring to { [P in keyof T]: X }. - declare function f20(obj: Pick): T; - declare function f21(obj: Pick): K; - declare function f22(obj: Boxified>): T; -@@= skipped -30, +33 lines =@@ - foo: number; - bar: string; - }; -+// Repro from #29765 - declare function getProps(obj: T, list: K[]): Pick; - declare const myAny: any; - declare const o1: Pick; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js index a8f92ae69c..6a5cbec0a5 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js @@ -14,5 +14,4 @@ A.prototype.b = {}; //// [index.d.ts] -// https://github.com/microsoft/TypeScript/issues/35801 declare let A: any; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js.diff index cd9f2058e4..ffce496b34 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassLikeHeuristic.js.diff @@ -8,5 +8,4 @@ - private constructor(); - b: {}; -} -+// https://github.com/microsoft/TypeScript/issues/35801 +declare let A: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js index 7564b45da1..dbe80f344b 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js @@ -406,7 +406,6 @@ export declare class E { * @type {T & U} */ field: T & U; - // @readonly is currently unsupported, it seems - included here just in case that changes /** * @type {T & U} * @readonly @@ -438,7 +437,6 @@ export declare class E { * @type {string} */ static staticField: string; - // @readonly is currently unsupported, it seems - included here just in case that changes /** * @type {string} * @readonly diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js.diff index fd04bc3d31..0b9082ecb6 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClasses.js.diff @@ -191,7 +191,6 @@ + * @type {T & U} + */ + field: T & U; -+ // @readonly is currently unsupported, it seems - included here just in case that changes + /** + * @type {T & U} + * @readonly @@ -222,12 +221,7 @@ /** * @type {string} */ - static staticField: string; -+ // @readonly is currently unsupported, it seems - included here just in case that changes - /** - * @type {string} - * @readonly -@@= skipped -12, +45 lines =@@ +@@= skipped -12, +43 lines =@@ static readonly staticReadonlyField: string; static staticInitializedField: number; /** diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js index 5b6bf64ef7..c46d6df296 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js @@ -134,8 +134,6 @@ exports.CC = CC; //// [index.d.ts] -// Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), -// but we should be able to synthesize declarations from the symbols regardless export declare class M { field: T; } diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js.diff index 51902592b1..3aedd4a7cd 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassesErr.js.diff @@ -24,8 +24,6 @@ //// [index.d.ts] -export class M { -+// Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), -+// but we should be able to synthesize declarations from the symbols regardless +export declare class M { field: T; } @@ -86,7 +84,7 @@ [idx: string]: { x: number; }; -@@= skipped -45, +47 lines =@@ +@@= skipped -45, +45 lines =@@ y: number; }; } diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js index 7a64753968..6f9f8f4d49 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js @@ -119,7 +119,6 @@ export type default = string | number; * @typedef {string | number} default */ //// [index6.d.ts] -// merge type alias and function (OK) export default function func(): void; export type default = string | number; /** @@ -136,12 +135,12 @@ out/index5.d.ts(3,13): error TS2457: Type alias name cannot be 'default'. out/index5.d.ts(3,21): error TS1128: Declaration or statement expected. out/index5.d.ts(3,23): error TS2693: 'string' only refers to a type, but is being used as a value here. out/index5.d.ts(3,32): error TS2693: 'number' only refers to a type, but is being used as a value here. -out/index6.d.ts(3,1): error TS1128: Declaration or statement expected. -out/index6.d.ts(3,8): error TS2304: Cannot find name 'type'. -out/index6.d.ts(3,13): error TS2457: Type alias name cannot be 'default'. -out/index6.d.ts(3,21): error TS1128: Declaration or statement expected. -out/index6.d.ts(3,23): error TS2693: 'string' only refers to a type, but is being used as a value here. -out/index6.d.ts(3,32): error TS2693: 'number' only refers to a type, but is being used as a value here. +out/index6.d.ts(2,1): error TS1128: Declaration or statement expected. +out/index6.d.ts(2,8): error TS2304: Cannot find name 'type'. +out/index6.d.ts(2,13): error TS2457: Type alias name cannot be 'default'. +out/index6.d.ts(2,21): error TS1128: Declaration or statement expected. +out/index6.d.ts(2,23): error TS2693: 'string' only refers to a type, but is being used as a value here. +out/index6.d.ts(2,32): error TS2693: 'number' only refers to a type, but is being used as a value here. ==== out/index1.d.ts (0 errors) ==== @@ -188,7 +187,6 @@ out/index6.d.ts(3,32): error TS2693: 'number' only refers to a type, but is bein */ ==== out/index6.d.ts (6 errors) ==== - // merge type alias and function (OK) export default function func(): void; export type default = string | number; ~~~~~~ diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js.diff index 755a69eb8a..7ba41aae8a 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefault.js.diff @@ -66,7 +66,6 @@ -declare function func(): void; -type func = string | number; -export default func; -+// merge type alias and function (OK) +export default function func(): void; +export type default = string | number; +/** @@ -83,12 +82,12 @@ +out/index5.d.ts(3,21): error TS1128: Declaration or statement expected. +out/index5.d.ts(3,23): error TS2693: 'string' only refers to a type, but is being used as a value here. +out/index5.d.ts(3,32): error TS2693: 'number' only refers to a type, but is being used as a value here. -+out/index6.d.ts(3,1): error TS1128: Declaration or statement expected. -+out/index6.d.ts(3,8): error TS2304: Cannot find name 'type'. -+out/index6.d.ts(3,13): error TS2457: Type alias name cannot be 'default'. -+out/index6.d.ts(3,21): error TS1128: Declaration or statement expected. -+out/index6.d.ts(3,23): error TS2693: 'string' only refers to a type, but is being used as a value here. -+out/index6.d.ts(3,32): error TS2693: 'number' only refers to a type, but is being used as a value here. ++out/index6.d.ts(2,1): error TS1128: Declaration or statement expected. ++out/index6.d.ts(2,8): error TS2304: Cannot find name 'type'. ++out/index6.d.ts(2,13): error TS2457: Type alias name cannot be 'default'. ++out/index6.d.ts(2,21): error TS1128: Declaration or statement expected. ++out/index6.d.ts(2,23): error TS2693: 'string' only refers to a type, but is being used as a value here. ++out/index6.d.ts(2,32): error TS2693: 'number' only refers to a type, but is being used as a value here. + + +==== out/index1.d.ts (0 errors) ==== @@ -135,7 +134,6 @@ + */ + +==== out/index6.d.ts (6 errors) ==== -+ // merge type alias and function (OK) + export default function func(): void; + export type default = string | number; + ~~~~~~ diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js index 0ad43de6f2..4b16677229 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js @@ -63,7 +63,6 @@ exports.default = x; //// [index1.d.ts] -// merge type alias and alias (should error, see #32367) declare class Cls { x: number; static y: string; @@ -74,7 +73,6 @@ export type default = string | number; * @typedef {string | number} default */ //// [index2.d.ts] -// merge type alias and class (error message improvement needed, see #32368) export default class C { } export type default = string | number; @@ -82,7 +80,6 @@ export type default = string | number; * @typedef {string | number} default */ //// [index3.d.ts] -// merge type alias and variable (behavior is borked, see #32366) declare const x = 12; export { x as default }; export type default = string | number; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js.diff index 6a7fdd1d77..d6da21113b 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsDefaultsErr.js.diff @@ -26,7 +26,6 @@ //// [index1.d.ts] -export type Cls = string | number; -export default Cls; -+// merge type alias and alias (should error, see #32367) declare class Cls { - static y: string; x: number; @@ -38,7 +37,6 @@ + * @typedef {string | number} default + */ //// [index2.d.ts] -+// merge type alias and class (error message improvement needed, see #32368) export default class C { } +export type default = string | number; @@ -47,7 +45,6 @@ + */ //// [index3.d.ts] -export type _default = string | number; -+// merge type alias and variable (behavior is borked, see #32366) +declare const x = 12; export { x as default }; -declare const x: 12; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js index 69f976cd4e..c74cd87722 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js @@ -117,8 +117,6 @@ var K; //// [index.d.ts] -// Pretty much all of this should be an error, (since enums are forbidden in js), -// but we should be able to synthesize declarations from the symbols regardless export declare enum A { } export declare enum B { diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js.diff index 85aa331d5e..d4d5c20022 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsEnums.js.diff @@ -18,8 +18,6 @@ //// [index.d.ts] -export enum A { -+// Pretty much all of this should be an error, (since enums are forbidden in js), -+// but we should be able to synthesize declarations from the symbols regardless +export declare enum A { } -export enum B { diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js index 97faf031bb..29d60e3d25 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js @@ -69,12 +69,12 @@ export declare class Foo { } //// [bar.d.ts] import ns = require("./cls"); -export = ns; // TS Only +export = ns; //// [bin.d.ts] export = ns; //// [globalNs.d.ts] export * from "./cls"; -export as namespace GLO; // TS Only +export as namespace GLO; //// [includeAll.d.ts] import "./bar"; import "./bin"; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js.diff index c704c74489..a4dce2b54f 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportFormsErr.js.diff @@ -26,13 +26,13 @@ //// [bar.d.ts] -export = ns; import ns = require("./cls"); -+export = ns; // TS Only ++export = ns; //// [bin.d.ts] -export {}; +export = ns; //// [globalNs.d.ts] export * from "./cls"; -+export as namespace GLO; // TS Only ++export as namespace GLO; //// [includeAll.d.ts] -export {}; +import "./bar"; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js index 4a762961ba..48d1497385 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js @@ -166,4 +166,3 @@ export declare function Vec(len: number): void; export declare function Point2D(x: number, y: number): any; //// [referencer.d.ts] export declare const origin: any; -// export const res = Point2D(2, 3).dot(origin); // TODO: when __proto__ works, validate this diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js.diff index d1b7e4a0ac..f1c814c9f1 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionLikeClasses2.js.diff @@ -57,5 +57,4 @@ //// [referencer.d.ts] -export const origin: Point2D; -import { Point2D } from "./source"; -+export declare const origin: any; -+// export const res = Point2D(2, 3).dot(origin); // TODO: when __proto__ works, validate this \ No newline at end of file ++export declare const origin: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js index 0df2364e61..ae049969e2 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js @@ -170,7 +170,6 @@ export var g = g; export var h = hh; export var i = function i();; export var ii = module.exports.i; -// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings export var jj = module.exports.j; export var j = function j();; export {}; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff index 841fe7d000..6c5287fed0 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff @@ -155,7 +155,6 @@ +export var h = hh; +export var i = function i();; +export var ii = module.exports.i; -+// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings +export var jj = module.exports.j; +export var j = function j();; +export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js index 8873aa9bea..8bb2c92af5 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js @@ -128,8 +128,6 @@ exports.JJ = exports.II = exports.H = exports.G = void 0; //// [index.d.ts] -// Pretty much all of this should be an error, (since interfaces are forbidden in js), -// but we should be able to synthesize declarations from the symbols regardless export interface A { } export interface B { diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js.diff index 642e994d8e..d8c960d73e 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsInterfaces.js.diff @@ -11,11 +11,7 @@ //// [index.d.ts] -+// Pretty much all of this should be an error, (since interfaces are forbidden in js), -+// but we should be able to synthesize declarations from the symbols regardless - export interface A { - } - export interface B { +@@= skipped -12, +11 lines =@@ cat: string; } export interface C { @@ -54,7 +50,7 @@ export interface J { } export interface K extends I, J { -@@= skipped -107, +116 lines =@@ +@@= skipped -95, +103 lines =@@ y: 0; }; } diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js index b1896d0839..87c4e10075 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js @@ -62,7 +62,6 @@ //// [index.d.ts] -// these are recognized as TS concepts by the checker /** @type {String} */ declare const a: String; /** @type {Number} */ declare const b: Number; /** @type {Boolean} */ declare const c: Boolean; @@ -74,17 +73,9 @@ /** @type {array} */ declare const i: array; /** @type {promise} */ declare const j: promise; /** @type {Object} */ declare const k: Object; -// these are not recognized as anything and should just be lookup failures -// ignore the errors to try to ensure they're emitted as `any` in declaration emit -// @ts-ignore /** @type {class} */ declare const l: class; -// @ts-ignore /** @type {bool} */ declare const m: bool; -// @ts-ignore /** @type {int} */ declare const n: int; -// @ts-ignore /** @type {float} */ declare const o: float; -// @ts-ignore /** @type {integer} */ declare const p: integer; -// or, in the case of `event` likely erroneously refers to the type of the global Event object /** @type {event} */ declare const q: event; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js.diff index 14aa477b90..1ab09b0371 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsJSDocRedirectedLookups.js.diff @@ -18,7 +18,6 @@ -/** @type {Void} */ declare const d: void; -/** @type {Undefined} */ declare const e: undefined; -/** @type {Null} */ declare const f: null; -+// these are recognized as TS concepts by the checker +/** @type {String} */ declare const a: String; +/** @type {Number} */ declare const b: Number; +/** @type {Boolean} */ declare const c: Boolean; @@ -36,17 +35,10 @@ +/** @type {array} */ declare const i: array; +/** @type {promise} */ declare const j: promise; +/** @type {Object} */ declare const k: Object; -+// these are not recognized as anything and should just be lookup failures -+// ignore the errors to try to ensure they're emitted as `any` in declaration emit -+// @ts-ignore /** @type {class} */ declare const l: class; -+// @ts-ignore /** @type {bool} */ declare const m: bool; -+// @ts-ignore /** @type {int} */ declare const n: int; -+// @ts-ignore /** @type {float} */ declare const o: float; -+// @ts-ignore /** @type {integer} */ declare const p: integer; -/** @type {event} */ declare const q: Event | undefined; - @@ -92,5 +84,4 @@ -!!! error TS2304: Cannot find name 'integer'. - /** @type {event} */ declare const q: Event | undefined; - -+// or, in the case of `event` likely erroneously refers to the type of the global Event object +/** @type {event} */ declare const q: event; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js index c5ebeac436..6b376aa270 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js @@ -47,7 +47,6 @@ function w() { return null; } * @param {Array=} y desc */ declare function x(y?: Array | undefined): void; -// @ts-ignore /** @param {function (Array)} func Invoked */ declare function y(func: any): void; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js.diff index ba8bbacdbf..8850785920 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsMissingTypeParameters.js.diff @@ -6,7 +6,6 @@ */ -declare function x(y?: any[] | undefined): void; +declare function x(y?: Array | undefined): void; -+// @ts-ignore /** @param {function (Array)} func Invoked */ -declare function y(func: (arg0: any[]) => any): void; diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js index 5daad6b3f5..11021779b9 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js @@ -36,6 +36,5 @@ export declare class A { method(): this; } export default class Base extends A { - // This method is required to reproduce #35932 verify(): void; } diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js.diff index 8af3d92f57..f900b2b82d 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsThisTypes.js.diff @@ -8,8 +8,4 @@ +export declare class A { /** @returns {this} */ method(): this; - } - export default class Base extends A { -+ // This method is required to reproduce #35932 - verify(): void; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js index 1a5751e01d..62ba18d045 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js @@ -102,7 +102,7 @@ class LocalThing { //// [index.d.ts] -export {}; // flag file as module +export {}; export type PropName = string | number | symbol; export type NumberToStringCb = (a: number) => string; export type MixinName = T & { diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js.diff index 58e622dd4b..5d965f5ad3 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeAliases.js.diff @@ -31,7 +31,7 @@ //// [index.d.ts] -+export {}; // flag file as module ++export {}; export type PropName = string | number | symbol; -/** - * Callback diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js index 34bea92be3..70d1f9b1c7 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js @@ -40,13 +40,10 @@ var A; //// [index.d.ts] -export declare const Something = 2; // to show conflict that can occur -// @ts-ignore +export declare const Something = 2; export declare namespace A { - // @ts-ignore namespace B { const thing: import("fs").Something; - // @ts-ignore export { thing }; } } diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js.diff index fd01fa66b5..591cb51c64 100644 --- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js.diff +++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences4.js.diff @@ -13,13 +13,10 @@ //// [index.d.ts] -export const Something: 2; -export namespace A { -+export declare const Something = 2; // to show conflict that can occur -+// @ts-ignore ++export declare const Something = 2; +export declare namespace A { -+ // @ts-ignore namespace B { + const thing: import("fs").Something; -+ // @ts-ignore export { thing }; - export let thing: import("fs").Something; } diff --git a/testdata/baselines/reference/submodule/conformance/keyofAndForIn.js b/testdata/baselines/reference/submodule/conformance/keyofAndForIn.js index 4bb51df5d0..0040b4ad9c 100644 --- a/testdata/baselines/reference/submodule/conformance/keyofAndForIn.js +++ b/testdata/baselines/reference/submodule/conformance/keyofAndForIn.js @@ -71,7 +71,6 @@ function f3(obj, k) { //// [keyofAndForIn.d.ts] -// Repro from #12513 declare function f1(obj: { [P in K]: T; }, k: K): void; diff --git a/testdata/baselines/reference/submodule/conformance/keyofAndForIn.js.diff b/testdata/baselines/reference/submodule/conformance/keyofAndForIn.js.diff deleted file mode 100644 index 738f190548..0000000000 --- a/testdata/baselines/reference/submodule/conformance/keyofAndForIn.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.keyofAndForIn.js -+++ new.keyofAndForIn.js -@@= skipped -70, +70 lines =@@ - - - //// [keyofAndForIn.d.ts] -+// Repro from #12513 - declare function f1(obj: { - [P in K]: T; - }, k: K): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess.js b/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess.js index a1a9dd5a75..431038455c 100644 --- a/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess.js +++ b/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess.js @@ -1067,47 +1067,47 @@ declare const enum E { B = 1, C = 2 } -type K00 = keyof any; // string -type K01 = keyof string; // "toString" | "charAt" | ... -type K02 = keyof number; // "toString" | "toFixed" | "toExponential" | ... -type K03 = keyof boolean; // "valueOf" -type K04 = keyof void; // never -type K05 = keyof undefined; // never -type K06 = keyof null; // never -type K07 = keyof never; // string | number | symbol -type K08 = keyof unknown; // never -type K10 = keyof Shape; // "name" | "width" | "height" | "visible" -type K11 = keyof Shape[]; // "length" | "toString" | ... -type K12 = keyof Dictionary; // string -type K13 = keyof {}; // never -type K14 = keyof Object; // "constructor" | "toString" | ... -type K15 = keyof E; // "toString" | "toFixed" | "toExponential" | ... -type K16 = keyof [string, number]; // "0" | "1" | "length" | "toString" | ... -type K17 = keyof (Shape | Item); // "name" -type K18 = keyof (Shape & Item); // "name" | "width" | "height" | "visible" | "price" -type K19 = keyof NumericallyIndexed; // never +type K00 = keyof any; +type K01 = keyof string; +type K02 = keyof number; +type K03 = keyof boolean; +type K04 = keyof void; +type K05 = keyof undefined; +type K06 = keyof null; +type K07 = keyof never; +type K08 = keyof unknown; +type K10 = keyof Shape; +type K11 = keyof Shape[]; +type K12 = keyof Dictionary; +type K13 = keyof {}; +type K14 = keyof Object; +type K15 = keyof E; +type K16 = keyof [string, number]; +type K17 = keyof (Shape | Item); +type K18 = keyof (Shape & Item); +type K19 = keyof NumericallyIndexed; type KeyOf = keyof T; -type K20 = KeyOf; // "name" | "width" | "height" | "visible" -type K21 = KeyOf>; // string +type K20 = KeyOf; +type K21 = KeyOf>; type NAME = "name"; type WIDTH_OR_HEIGHT = "width" | "height"; -type Q10 = Shape["name"]; // string -type Q11 = Shape["width" | "height"]; // number -type Q12 = Shape["name" | "visible"]; // string | boolean -type Q20 = Shape[NAME]; // string -type Q21 = Shape[WIDTH_OR_HEIGHT]; // number -type Q30 = [string, number][0]; // string -type Q31 = [string, number][1]; // number -type Q32 = [string, number][number]; // string | number -type Q33 = [string, number][E.A]; // string -type Q34 = [string, number][E.B]; // number -type Q35 = [string, number]["0"]; // string -type Q36 = [string, number]["1"]; // string -type Q40 = (Shape | Options)["visible"]; // boolean | "yes" | "no" -type Q41 = (Shape & Options)["visible"]; // true & "yes" | true & "no" | false & "yes" | false & "no" -type Q50 = Dictionary["howdy"]; // Shape -type Q51 = Dictionary[123]; // Shape -type Q52 = Dictionary[E.B]; // Shape +type Q10 = Shape["name"]; +type Q11 = Shape["width" | "height"]; +type Q12 = Shape["name" | "visible"]; +type Q20 = Shape[NAME]; +type Q21 = Shape[WIDTH_OR_HEIGHT]; +type Q30 = [string, number][0]; +type Q31 = [string, number][1]; +type Q32 = [string, number][number]; +type Q33 = [string, number][E.A]; +type Q34 = [string, number][E.B]; +type Q35 = [string, number]["0"]; +type Q36 = [string, number]["1"]; +type Q40 = (Shape | Options)["visible"]; +type Q41 = (Shape & Options)["visible"]; +type Q50 = Dictionary["howdy"]; +type Q51 = Dictionary[123]; +type Q52 = Dictionary[E.B]; declare let cond: boolean; declare function getProperty(obj: T, key: K): T[K]; declare function setProperty(obj: T, key: K, value: T[K]): void; @@ -1132,8 +1132,6 @@ declare class C { protected y: string; private z; } -// Indexed access expressions have always permitted access to private and protected members. -// For consistency we also permit such access in indexed access types. declare function f40(c: C): void; declare function f50(k: keyof T, s: string): void; declare function f51(k: K, s: string): void; @@ -1181,7 +1179,6 @@ type S2 = { declare function f90(x1: S2[keyof S2], x2: T[keyof S2], x3: S2[K]): void; declare function f91(x: T, y: T[keyof T], z: T[K]): void; declare function f92(x: T, y: T[keyof T], z: T[K]): void; -// Repros from #12011 declare class Base { get(prop: K): this[K]; set(prop: K, value: this[K]): void; @@ -1196,7 +1193,6 @@ declare class OtherPerson { constructor(parts: number); getParts(): this["parts"]; } -// Modified repro from #12544 declare function path(obj: T, key1: K1): T[K1]; declare function path(obj: T, key1: K1, key2: K2): T[K1][K2]; declare function path(obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; @@ -1209,22 +1205,19 @@ type Thing = { b: boolean; }; declare function f1(thing: Thing): void; -// Repro from comment in #12114 declare const assignTo2: (object: T, key1: K1, key2: K2) => (value: T[K1][K2]) => T[K1][K2]; -// Modified repro from #12573 declare function one(handler: (t: T) => void): T; -declare var empty: unknown; // inferred as {}, expected +declare var empty: unknown; type Handlers = { [K in keyof T]: (t: T[K]) => void; }; declare function on(handlerHash: Handlers): T; declare var hashOfEmpty1: { test: unknown; -}; // {} +}; declare var hashOfEmpty2: { test: boolean; -}; // { test: boolean } -// Repro from #12624 +}; interface Options1 { data?: Data; computed?: Computed; @@ -1236,7 +1229,6 @@ declare class Component1 { declare let c1: Component1<{ hello: string; }, unknown>; -// Repro from #12625 interface Options2 { data?: Data; computed?: Computed; @@ -1245,12 +1237,10 @@ declare class Component2 { constructor(options: Options2); get(key: K): (Data & Computed)[K]; } -// Repro from #12641 interface R { p: number; } declare function f(p: K): void; -// Repro from #12651 type MethodDescriptor = { name: string; args: any[]; @@ -1263,30 +1253,24 @@ type SomeMethodDescriptor = { returnValue: string[]; }; declare let result: string[]; -// Repro from #13073 type KeyTypes = "a" | "b"; declare let MyThingy: { [key in KeyTypes]: string[]; }; declare function addToMyThingy(key: S): void; -// Repro from #13102 type Handler = { onChange: (name: keyof T) => void; }; declare function onChangeGenericFunction(handler: Handler): void; -// Repro from #13285 declare function updateIds, K extends string>(obj: T, idFields: K[], idMapping: Partial>): Record; -// Repro from #13285 declare function updateIds2(obj: T, key: K, stringMap: { [oldId: string]: string; }): void; -// Repro from #13514 declare function head>(list: T): T[0]; -// Repro from #13604 declare class A { props: T & { foo: string; @@ -1297,12 +1281,10 @@ declare class B extends A<{ }> { f(p: this["props"]): void; } -// Repro from #13749 declare class Form { private childFormFactories; set(prop: K, value: T[K]): void; } -// Repro from #13787 declare class SampleClass

{ props: Readonly

; constructor(props: P); @@ -1315,13 +1297,10 @@ declare class AnotherSampleClass extends SampleClass { constructor(props: T); brokenMethod(): void; } -// Positive repro from #17166 declare function f3>(t: T, k: K, tk: T[K]): void; -// # 21185 type Predicates = { [T in keyof TaggedRecord]: (variant: TaggedRecord[keyof TaggedRecord]) => variant is TaggedRecord[T]; }; -// Repros from #23592 type Example; -// Repro from #23618 type DBBoolTable = { [k in K]: 0 | 1; }; @@ -1371,23 +1349,19 @@ type DynamicDBRecord = ({ dynamicField: string; }) & DBBoolTable; declare function getFlagsFromDynamicRecord(record: DynamicDBRecord, flags: Flag[]): DynamicDBRecord[Flag]; -// Repro from #21368 interface I { foo: string; } declare function take(p: T): void; declare function fn(o: T, k: K): void; -// Repro from #23133 declare class Unbounded { foo(x: T[keyof T]): void; } -// Repro from #23940 interface I7 { x: any; } type Foo7 = T; declare function f7(type: K): Foo7; -// Repro from #21770 type Dict = { [key in T]: number; }; @@ -1396,7 +1370,6 @@ type DictDict = { }; declare function ff1(dd: DictDict, k1: V, k2: T): number; declare function ff2(dd: DictDict, k1: V, k2: T): number; -// Repro from #26409 declare const cf1: (t: T, k: K) => void; diff --git a/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess.js.diff b/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess.js.diff index 0bad5daf07..98ef48dd4f 100644 --- a/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess.js.diff +++ b/testdata/baselines/reference/submodule/conformance/keyofAndIndexedAccess.js.diff @@ -86,259 +86,7 @@ constructor(props) { this.props = Object.freeze(props); } -@@= skipped -94, +96 lines =@@ - B = 1, - C = 2 - } --type K00 = keyof any; --type K01 = keyof string; --type K02 = keyof number; --type K03 = keyof boolean; --type K04 = keyof void; --type K05 = keyof undefined; --type K06 = keyof null; --type K07 = keyof never; --type K08 = keyof unknown; --type K10 = keyof Shape; --type K11 = keyof Shape[]; --type K12 = keyof Dictionary; --type K13 = keyof {}; --type K14 = keyof Object; --type K15 = keyof E; --type K16 = keyof [string, number]; --type K17 = keyof (Shape | Item); --type K18 = keyof (Shape & Item); --type K19 = keyof NumericallyIndexed; -+type K00 = keyof any; // string -+type K01 = keyof string; // "toString" | "charAt" | ... -+type K02 = keyof number; // "toString" | "toFixed" | "toExponential" | ... -+type K03 = keyof boolean; // "valueOf" -+type K04 = keyof void; // never -+type K05 = keyof undefined; // never -+type K06 = keyof null; // never -+type K07 = keyof never; // string | number | symbol -+type K08 = keyof unknown; // never -+type K10 = keyof Shape; // "name" | "width" | "height" | "visible" -+type K11 = keyof Shape[]; // "length" | "toString" | ... -+type K12 = keyof Dictionary; // string -+type K13 = keyof {}; // never -+type K14 = keyof Object; // "constructor" | "toString" | ... -+type K15 = keyof E; // "toString" | "toFixed" | "toExponential" | ... -+type K16 = keyof [string, number]; // "0" | "1" | "length" | "toString" | ... -+type K17 = keyof (Shape | Item); // "name" -+type K18 = keyof (Shape & Item); // "name" | "width" | "height" | "visible" | "price" -+type K19 = keyof NumericallyIndexed; // never - type KeyOf = keyof T; --type K20 = KeyOf; --type K21 = KeyOf>; -+type K20 = KeyOf; // "name" | "width" | "height" | "visible" -+type K21 = KeyOf>; // string - type NAME = "name"; - type WIDTH_OR_HEIGHT = "width" | "height"; --type Q10 = Shape["name"]; --type Q11 = Shape["width" | "height"]; --type Q12 = Shape["name" | "visible"]; --type Q20 = Shape[NAME]; --type Q21 = Shape[WIDTH_OR_HEIGHT]; --type Q30 = [string, number][0]; --type Q31 = [string, number][1]; --type Q32 = [string, number][number]; --type Q33 = [string, number][E.A]; --type Q34 = [string, number][E.B]; --type Q35 = [string, number]["0"]; --type Q36 = [string, number]["1"]; --type Q40 = (Shape | Options)["visible"]; --type Q41 = (Shape & Options)["visible"]; --type Q50 = Dictionary["howdy"]; --type Q51 = Dictionary[123]; --type Q52 = Dictionary[E.B]; -+type Q10 = Shape["name"]; // string -+type Q11 = Shape["width" | "height"]; // number -+type Q12 = Shape["name" | "visible"]; // string | boolean -+type Q20 = Shape[NAME]; // string -+type Q21 = Shape[WIDTH_OR_HEIGHT]; // number -+type Q30 = [string, number][0]; // string -+type Q31 = [string, number][1]; // number -+type Q32 = [string, number][number]; // string | number -+type Q33 = [string, number][E.A]; // string -+type Q34 = [string, number][E.B]; // number -+type Q35 = [string, number]["0"]; // string -+type Q36 = [string, number]["1"]; // string -+type Q40 = (Shape | Options)["visible"]; // boolean | "yes" | "no" -+type Q41 = (Shape & Options)["visible"]; // true & "yes" | true & "no" | false & "yes" | false & "no" -+type Q50 = Dictionary["howdy"]; // Shape -+type Q51 = Dictionary[123]; // Shape -+type Q52 = Dictionary[E.B]; // Shape - declare let cond: boolean; - declare function getProperty(obj: T, key: K): T[K]; - declare function setProperty(obj: T, key: K, value: T[K]): void; -@@= skipped -65, +65 lines =@@ - protected y: string; - private z; - } -+// Indexed access expressions have always permitted access to private and protected members. -+// For consistency we also permit such access in indexed access types. - declare function f40(c: C): void; - declare function f50(k: keyof T, s: string): void; - declare function f51(k: K, s: string): void; -@@= skipped -47, +49 lines =@@ - declare function f90(x1: S2[keyof S2], x2: T[keyof S2], x3: S2[K]): void; - declare function f91(x: T, y: T[keyof T], z: T[K]): void; - declare function f92(x: T, y: T[keyof T], z: T[K]): void; -+// Repros from #12011 - declare class Base { - get(prop: K): this[K]; - set(prop: K, value: this[K]): void; -@@= skipped -14, +15 lines =@@ - constructor(parts: number); - getParts(): this["parts"]; - } -+// Modified repro from #12544 - declare function path(obj: T, key1: K1): T[K1]; - declare function path(obj: T, key1: K1, key2: K2): T[K1][K2]; - declare function path(obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; -@@= skipped -12, +13 lines =@@ - b: boolean; - }; - declare function f1(thing: Thing): void; -+// Repro from comment in #12114 - declare const assignTo2: (object: T, key1: K1, key2: K2) => (value: T[K1][K2]) => T[K1][K2]; -+// Modified repro from #12573 - declare function one(handler: (t: T) => void): T; --declare var empty: unknown; -+declare var empty: unknown; // inferred as {}, expected - type Handlers = { - [K in keyof T]: (t: T[K]) => void; - }; - declare function on(handlerHash: Handlers): T; - declare var hashOfEmpty1: { - test: unknown; --}; -+}; // {} - declare var hashOfEmpty2: { - test: boolean; --}; -+}; // { test: boolean } -+// Repro from #12624 - interface Options1 { - data?: Data; - computed?: Computed; -@@= skipped -24, +27 lines =@@ - declare let c1: Component1<{ - hello: string; - }, unknown>; -+// Repro from #12625 - interface Options2 { - data?: Data; - computed?: Computed; -@@= skipped -8, +9 lines =@@ - constructor(options: Options2); - get(key: K): (Data & Computed)[K]; - } -+// Repro from #12641 - interface R { - p: number; - } - declare function f(p: K): void; -+// Repro from #12651 - type MethodDescriptor = { - name: string; - args: any[]; -@@= skipped -16, +18 lines =@@ - returnValue: string[]; - }; - declare let result: string[]; -+// Repro from #13073 - type KeyTypes = "a" | "b"; - declare let MyThingy: { - [key in KeyTypes]: string[]; - }; - declare function addToMyThingy(key: S): void; -+// Repro from #13102 - type Handler = { - onChange: (name: keyof T) => void; - }; - declare function onChangeGenericFunction(handler: Handler): void; -+// Repro from #13285 - declare function updateIds, K extends string>(obj: T, idFields: K[], idMapping: Partial>): Record; -+// Repro from #13285 - declare function updateIds2(obj: T, key: K, stringMap: { - [oldId: string]: string; - }): void; -+// Repro from #13514 - declare function head>(list: T): T[0]; -+// Repro from #13604 - declare class A { - props: T & { - foo: string; -@@= skipped -28, +34 lines =@@ - }> { - f(p: this["props"]): void; - } -+// Repro from #13749 - declare class Form { - private childFormFactories; - set(prop: K, value: T[K]): void; - } -+// Repro from #13787 - declare class SampleClass

{ - props: Readonly

}`]: () => T[P]; }; @@ -204,7 +203,6 @@ type TG1 = Getters<{ z: boolean; }; }>; -// Mapped type with 'as N' clause has no constraint on 'in T' clause type PropDef = { name: K; type: T; @@ -222,10 +220,8 @@ type TP1 = TypeFromDefs<{ name: 'a'; type: boolean; }>; -// No array or tuple type mapping when 'as N' clause present type TA1 = Getters; type TA2 = Getters<[number, boolean]>; -// Filtering using 'as N' clause type Methods = { [P in keyof T as T[P] extends Function ? P : never]: T[P]; }; @@ -234,21 +230,19 @@ type TM1 = Methods<{ bar(x: string): boolean; baz: string | number; }>; -// Mapping to multiple names using 'as N' clause type DoubleProp = { [P in keyof T & string as `${P}1` | `${P}2`]: T[P]; }; type TD1 = DoubleProp<{ a: string; b: number; -}>; // { a1: string, a2: string, b1: number, b2: number } -type TD2 = keyof TD1; // 'a1' | 'a2' | 'b1' | 'b2' -type TD3 = keyof DoubleProp; // keyof DoubleProp +}>; +type TD2 = keyof TD1; +type TD3 = keyof DoubleProp; type TD4 = TD3<{ a: string; b: number; -}>; // 'a1' | 'a2' | 'b1' | 'b2' -// Repro from #40619 +}>; type Lazyify = { [K in keyof T as `get${Capitalize}`]: () => T[K]; }; @@ -258,7 +252,6 @@ interface Person { location?: string; } type LazyPerson = Lazyify; -// Repro from #40833 type Example = { foo: string; bar: number; @@ -270,7 +263,6 @@ type T1 = PickByValueType; declare const e1: T1; type T2 = keyof T1; declare const e2: T2; -// Repro from #41133 interface Car { name: string; seats: number; @@ -289,11 +281,10 @@ type Primitive = string | number | boolean; type OnlyPrimitives = { [K in keyof T as T[K] extends Primitive ? K : never]: T[K]; }; -declare let primitiveCar: OnlyPrimitives; // { name: string; seats: number; } -declare let keys: keyof OnlyPrimitives; // "name" | "seats" +declare let primitiveCar: OnlyPrimitives; +declare let keys: keyof OnlyPrimitives; type KeysOfPrimitives = keyof OnlyPrimitives; -declare let carKeys: KeysOfPrimitives; // "name" | "seats" -// Repro from #41453 +declare let carKeys: KeysOfPrimitives; type Equal = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? true : false; type If = Cond extends true ? Then : Else; type GetKey = keyof { @@ -315,10 +306,9 @@ type Schema = { }; Task: Task; }; -type Res1 = GetKey; // "Task" -type Res2 = GetKeyWithIf; // "Task" -type Res3 = keyof GetObjWithIf; // "Task" -// Repro from #44019 +type Res1 = GetKey; +type Res2 = GetKeyWithIf; +type Res3 = keyof GetObjWithIf; type KeysExtendedBy = keyof { [K in keyof T as U extends T[K] ? K : never]: T[K]; }; @@ -332,7 +322,6 @@ type NameMap = { 'b': 'y'; 'c': 'z'; }; -// Distributive, will be simplified type TS0 = keyof { [P in keyof T as keyof Record]: string; }; @@ -354,7 +343,6 @@ type TS5 = keyof { type TS6 = keyof { [K in keyof T as V & (K extends U ? K : never)]: string; }; -// Non-distributive, won't be simplified type TN0 = keyof { [P in keyof T as T[P] extends number ? P : never]: string; }; @@ -375,7 +363,6 @@ type TN5 = keyof { [P in K as T[P] extends U ? K : never]: true; }]: string; }; -// repro from https://github.com/microsoft/TypeScript/issues/55129 type Fruit = { name: "apple"; color: "red"; @@ -398,5 +385,5 @@ type Result2 = keyof { [Key in T as `${Key['name']}:${Key['color']}`]: unknown; }; -type Test1 = keyof Result1; // "apple:red" | "banana:yellow" | "orange:orange" -type Test2 = Result2; // "apple:red" | "banana:yellow" | "orange:orange" +type Test1 = keyof Result1; +type Test2 = Result2; diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeAsClauses.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypeAsClauses.js.diff index 8c89b466fa..793c875c19 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeAsClauses.js.diff +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeAsClauses.js.diff @@ -8,134 +8,4 @@ -// Mapped type 'as N' clauses const e1 = { foo: "hello" - }; -@@= skipped -16, +14 lines =@@ - - - //// [mappedTypeAsClauses.d.ts] -+// Mapped type 'as N' clauses - type Getters = { - [P in keyof T & string as `get${Capitalize

}`]: () => T[P]; - }; -@@= skipped -10, +11 lines =@@ - z: boolean; - }; - }>; -+// Mapped type with 'as N' clause has no constraint on 'in T' clause - type PropDef = { - name: K; - type: T; -@@= skipped -17, +18 lines =@@ - name: 'a'; - type: boolean; - }>; -+// No array or tuple type mapping when 'as N' clause present - type TA1 = Getters; - type TA2 = Getters<[number, boolean]>; -+// Filtering using 'as N' clause - type Methods = { - [P in keyof T as T[P] extends Function ? P : never]: T[P]; - }; -@@= skipped -10, +12 lines =@@ - bar(x: string): boolean; - baz: string | number; - }>; -+// Mapping to multiple names using 'as N' clause - type DoubleProp = { - [P in keyof T & string as `${P}1` | `${P}2`]: T[P]; - }; - type TD1 = DoubleProp<{ - a: string; - b: number; --}>; --type TD2 = keyof TD1; --type TD3 = keyof DoubleProp; -+}>; // { a1: string, a2: string, b1: number, b2: number } -+type TD2 = keyof TD1; // 'a1' | 'a2' | 'b1' | 'b2' -+type TD3 = keyof DoubleProp; // keyof DoubleProp - type TD4 = TD3<{ - a: string; - b: number; --}>; -+}>; // 'a1' | 'a2' | 'b1' | 'b2' -+// Repro from #40619 - type Lazyify = { - [K in keyof T as `get${Capitalize}`]: () => T[K]; - }; -@@= skipped -22, +24 lines =@@ - location?: string; - } - type LazyPerson = Lazyify; -+// Repro from #40833 - type Example = { - foo: string; - bar: number; -@@= skipped -11, +12 lines =@@ - declare const e1: T1; - type T2 = keyof T1; - declare const e2: T2; -+// Repro from #41133 - interface Car { - name: string; - seats: number; -@@= skipped -18, +19 lines =@@ - type OnlyPrimitives = { - [K in keyof T as T[K] extends Primitive ? K : never]: T[K]; - }; --declare let primitiveCar: OnlyPrimitives; --declare let keys: keyof OnlyPrimitives; -+declare let primitiveCar: OnlyPrimitives; // { name: string; seats: number; } -+declare let keys: keyof OnlyPrimitives; // "name" | "seats" - type KeysOfPrimitives = keyof OnlyPrimitives; --declare let carKeys: KeysOfPrimitives; -+declare let carKeys: KeysOfPrimitives; // "name" | "seats" -+// Repro from #41453 - type Equal = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? true : false; - type If = Cond extends true ? Then : Else; - type GetKey = keyof { -@@= skipped -25, +26 lines =@@ - }; - Task: Task; - }; --type Res1 = GetKey; --type Res2 = GetKeyWithIf; --type Res3 = keyof GetObjWithIf; -+type Res1 = GetKey; // "Task" -+type Res2 = GetKeyWithIf; // "Task" -+type Res3 = keyof GetObjWithIf; // "Task" -+// Repro from #44019 - type KeysExtendedBy = keyof { - [K in keyof T as U extends T[K] ? K : never]: T[K]; - }; -@@= skipped -16, +17 lines =@@ - 'b': 'y'; - 'c': 'z'; - }; -+// Distributive, will be simplified - type TS0 = keyof { - [P in keyof T as keyof Record]: string; - }; -@@= skipped -21, +22 lines =@@ - type TS6 = keyof { - [K in keyof T as V & (K extends U ? K : never)]: string; - }; -+// Non-distributive, won't be simplified - type TN0 = keyof { - [P in keyof T as T[P] extends number ? P : never]: string; - }; -@@= skipped -20, +21 lines =@@ - [P in K as T[P] extends U ? K : never]: true; - }]: string; - }; -+// repro from https://github.com/microsoft/TypeScript/issues/55129 - type Fruit = { - name: "apple"; - color: "red"; -@@= skipped -22, +23 lines =@@ - }> = keyof { - [Key in T as `${Key['name']}:${Key['color']}`]: unknown; - }; --type Test1 = keyof Result1; --type Test2 = Result2; -+type Test1 = keyof Result1; // "apple:red" | "banana:yellow" | "orange:orange" -+type Test2 = Result2; // "apple:red" | "banana:yellow" | "orange:orange" \ No newline at end of file + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeConstraints2.js b/testdata/baselines/reference/submodule/conformance/mappedTypeConstraints2.js index 7a72de7b30..12287bedbf 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeConstraints2.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeConstraints2.js @@ -149,17 +149,14 @@ type Mapped5 = { [P in K as P extends `_${string}` ? P : never]: P; }; declare function f5(obj: Mapped5, key: keyof Mapped5): void; -// repro from #53066#issuecomment-1913384757 type Mapped6 = { [P in K as `_${P}`]: P; }; declare function f6(obj: Mapped6, key: keyof Mapped6): void; -// Repro from #47794 type Foo = { [RemappedT in T as `get${RemappedT}`]: RemappedT; }; -declare const get: (t: T, foo: Foo) => T; // Type 'Foo[`get${T}`]' is not assignable to type 'T' -// Repro from #48626 +declare const get: (t: T, foo: Foo) => T; interface Bounds { min: number; max: number; @@ -168,7 +165,6 @@ type NumericBoundsOf = { [K in keyof T as T[K] extends number | undefined ? K : never]: Bounds; }; declare function validate(obj: T, bounds: NumericBoundsOf): boolean; -// repro from #50030 type ObjectWithUnderscoredKeys = { [k in K as `_${k}`]: true; }; diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeConstraints2.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypeConstraints2.js.diff index 4e1d1878a1..d99092c78a 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeConstraints2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeConstraints2.js.diff @@ -7,31 +7,4 @@ -"use strict"; function f1(obj, key) { const x = obj[key]; - } -@@= skipped -63, +62 lines =@@ - [P in K as P extends `_${string}` ? P : never]: P; - }; - declare function f5(obj: Mapped5, key: keyof Mapped5): void; -+// repro from #53066#issuecomment-1913384757 - type Mapped6 = { - [P in K as `_${P}`]: P; - }; - declare function f6(obj: Mapped6, key: keyof Mapped6): void; -+// Repro from #47794 - type Foo = { - [RemappedT in T as `get${RemappedT}`]: RemappedT; - }; --declare const get: (t: T, foo: Foo) => T; -+declare const get: (t: T, foo: Foo) => T; // Type 'Foo[`get${T}`]' is not assignable to type 'T' -+// Repro from #48626 - interface Bounds { - min: number; - max: number; -@@= skipped -16, +19 lines =@@ - [K in keyof T as T[K] extends number | undefined ? K : never]: Bounds; - }; - declare function validate(obj: T, bounds: NumericBoundsOf): boolean; -+// repro from #50030 - type ObjectWithUnderscoredKeys = { - [k in K as `_${k}`]: true; - }; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeErrors.js b/testdata/baselines/reference/submodule/conformance/mappedTypeErrors.js index 78d9e374a0..e8d1fafc18 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeErrors.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeErrors.js @@ -255,38 +255,34 @@ interface Point { x: number; y: number; } -// Constraint checking type T00 = { [P in P]: string; -}; // Error +}; type T01 = { [P in number]: string; -}; // Error +}; type T02 = { [P in Date]: number; -}; // Error -type T03 = Record; // Error +}; +type T03 = Record; type T10 = Pick; -type T11 = Pick; // Error -type T12 = Pick; // Error +type T11 = Pick; +type T12 = Pick; type T13 = Pick; -type T14 = Pick; // Error +type T14 = Pick; type T15 = Pick; -type T16 = Pick; // Error +type T16 = Pick; declare function f1(x: T): void; declare function f2(x: T): void; declare function f3(x: T): void; declare function f4(x: T): void; -// Type identity checking declare function f10(): void; declare function f11(): void; declare function f12(): void; -// Check that inferences to mapped types are secondary declare function objAndReadonly(primary: T, secondary: Readonly): T; declare function objAndPartial(primary: T, secondary: Partial): T; declare function f20(): void; declare function f21(): void; -// Verify use of Pick for setState functions (#12793) interface Foo { a: string; b?: number; @@ -302,19 +298,18 @@ type T2 = { a?: number; [key: string]: any; }; -declare let x1: T2; // Error -declare let x2: Partial; // Error +declare let x1: T2; +declare let x2: Partial; declare let x3: { [P in keyof T2]: T2[P]; -}; // Error -// Repro from #13044 +}; type Foo2 = { pf: { [P in F]?: T[P]; }; pt: { [P in T]?: T[P]; - }; // note: should be in keyof T + }; }; type O = { x: number; @@ -322,6 +317,5 @@ type O = { }; declare let o: O; declare let f: Foo2; -// Repro from #28170 declare function test1(obj: Pick): void; declare function test2(obj: Record): void; diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeErrors.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypeErrors.js.diff index a79bf75b88..a4345e167f 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeErrors.js.diff +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeErrors.js.diff @@ -7,82 +7,4 @@ + state; setState(props) { for (let k in props) { - this.state[k] = props[k]; -@@= skipped -45, +46 lines =@@ - x: number; - y: number; - } -+// Constraint checking - type T00 = { - [P in P]: string; --}; -+}; // Error - type T01 = { - [P in number]: string; --}; -+}; // Error - type T02 = { - [P in Date]: number; --}; --type T03 = Record; -+}; // Error -+type T03 = Record; // Error - type T10 = Pick; --type T11 = Pick; --type T12 = Pick; -+type T11 = Pick; // Error -+type T12 = Pick; // Error - type T13 = Pick; --type T14 = Pick; -+type T14 = Pick; // Error - type T15 = Pick; --type T16 = Pick; -+type T16 = Pick; // Error - declare function f1(x: T): void; - declare function f2(x: T): void; - declare function f3(x: T): void; - declare function f4(x: T): void; -+// Type identity checking - declare function f10(): void; - declare function f11(): void; - declare function f12(): void; -+// Check that inferences to mapped types are secondary - declare function objAndReadonly(primary: T, secondary: Readonly): T; - declare function objAndPartial(primary: T, secondary: Partial): T; - declare function f20(): void; - declare function f21(): void; -+// Verify use of Pick for setState functions (#12793) - interface Foo { - a: string; - b?: number; -@@= skipped -43, +47 lines =@@ - a?: number; - [key: string]: any; - }; --declare let x1: T2; --declare let x2: Partial; -+declare let x1: T2; // Error -+declare let x2: Partial; // Error - declare let x3: { - [P in keyof T2]: T2[P]; --}; -+}; // Error -+// Repro from #13044 - type Foo2 = { - pf: { - [P in F]?: T[P]; - }; - pt: { - [P in T]?: T[P]; -- }; -+ }; // note: should be in keyof T - }; - type O = { - x: number; -@@= skipped -19, +20 lines =@@ - }; - declare let o: O; - declare let f: Foo2; -+// Repro from #28170 - declare function test1(obj: Pick): void; - declare function test2(obj: Record): void; \ No newline at end of file + this.state[k] = props[k]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeErrors2.js b/testdata/baselines/reference/submodule/conformance/mappedTypeErrors2.js index 37a797f10b..f49fe66ad8 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeErrors2.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeErrors2.js @@ -26,7 +26,6 @@ type T7 = {[key in AB[S]]: true}[L]; //// [mappedTypeErrors2.d.ts] -// Repros from #17238 type AB = { a: 'a'; b: 'a'; @@ -34,18 +33,18 @@ type AB = { type T1 = { [key in AB[K]]: true; }; -type T2 = T1[K]; // Error -type R = AB[keyof AB]; // "a" +type T2 = T1[K]; +type R = AB[keyof AB]; type T3 = { [key in R]: true; }; -type T4 = T3[K]; // Error +type T4 = T3[K]; type T5 = { [key in AB[S]]: true; -}[S]; // Error +}[S]; type T6 = { [key in AB[S]]: true; -}[L]; // Error +}[L]; type T7 = { [key in AB[S]]: true; }[L]; diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeErrors2.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypeErrors2.js.diff index f0709a5dac..8d32979a6a 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeErrors2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeErrors2.js.diff @@ -7,32 +7,4 @@ -// Repros from #17238 - //// [mappedTypeErrors2.d.ts] -+// Repros from #17238 - type AB = { - a: 'a'; - b: 'a'; -@@= skipped -11, +11 lines =@@ - type T1 = { - [key in AB[K]]: true; - }; --type T2 = T1[K]; --type R = AB[keyof AB]; -+type T2 = T1[K]; // Error -+type R = AB[keyof AB]; // "a" - type T3 = { - [key in R]: true; - }; --type T4 = T3[K]; -+type T4 = T3[K]; // Error - type T5 = { - [key in AB[S]]: true; --}[S]; -+}[S]; // Error - type T6 = { - [key in AB[S]]: true; --}[L]; -+}[L]; // Error - type T7 = { - [key in AB[S]]: true; - }[L]; \ No newline at end of file + //// [mappedTypeErrors2.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeRelationships.js b/testdata/baselines/reference/submodule/conformance/mappedTypeRelationships.js index 4115319d8f..ccd47c0af6 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeRelationships.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeRelationships.js @@ -428,7 +428,6 @@ declare function f76(x: { declare function f80(t: T): Partial; declare function f81(t: T, k: K): Partial; declare function f82(t: T, k1: K1, k2: K2): Partial; -// #31070 type Numeric = { [K in keyof T]?: number; }; @@ -438,7 +437,6 @@ declare function f90(): Partial; -// #32365 interface SettingsTypes { audio: { volume: string; diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeRelationships.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypeRelationships.js.diff deleted file mode 100644 index 05d9ab267a..0000000000 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeRelationships.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.mappedTypeRelationships.js -+++ new.mappedTypeRelationships.js -@@= skipped -427, +427 lines =@@ - declare function f80(t: T): Partial; - declare function f81(t: T, k: K): Partial; - declare function f82(t: T, k1: K1, k2: K2): Partial; -+// #31070 - type Numeric = { - [K in keyof T]?: number; - }; -@@= skipped -9, +10 lines =@@ - declare function f(): Partial; -+// #32365 - interface SettingsTypes { - audio: { - volume: string; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeWithAny.js b/testdata/baselines/reference/submodule/conformance/mappedTypeWithAny.js index 9922022be6..90a96309cb 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeWithAny.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeWithAny.js @@ -98,7 +98,6 @@ declare let x3: { [P in keyof any]: Item; }; declare let x4: ItemMap; -// Repro from #19152 type Data = { value: string; }; @@ -106,23 +105,12 @@ type StrictDataMap = { [P in keyof T]: Data; }; declare let z: StrictDataMap; -// Issue #46169. -// We want mapped types whose constraint is `keyof T` to -// map over `any` differently, depending on whether `T` -// is constrained to array and tuple types. type Arrayish = { [K in keyof T]: T[K]; }; type Objectish = { [K in keyof T]: T[K]; }; -// When a mapped type whose constraint is `keyof T` is instantiated, -// `T` may be instantiated with a `U` which is constrained to -// array and tuple types. *Ideally*, when `U` is later instantiated with `any`, -// the result should also be some sort of array; however, at the moment we don't seem -// to have an easy way to preserve that information. More than just that, it would be -// inconsistent for two instantiations of `Objectish` to produce different outputs -// depending on the usage-site. As a result, `IndirectArrayish` does not act like `Arrayish`. type IndirectArrayish = Objectish; declare function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish): void; declare function stringifyArray(arr: T): { @@ -133,7 +121,6 @@ declare function stringifyPair(arr: T): { -readonly [K in keyof T]: string; }; declare let def: [any, any]; -// Repro from #46582 type Evolvable = { [P in keyof E]: never; }; diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeWithAny.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypeWithAny.js.diff index 4c0f1c6d5a..2f59008148 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeWithAny.js.diff +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeWithAny.js.diff @@ -7,44 +7,4 @@ -"use strict"; for (let id in z) { let data = z[id]; - let x = data.notAValue; // Error -@@= skipped -33, +32 lines =@@ - [P in keyof any]: Item; - }; - declare let x4: ItemMap; -+// Repro from #19152 - type Data = { - value: string; - }; -@@= skipped -7, +8 lines =@@ - [P in keyof T]: Data; - }; - declare let z: StrictDataMap; -+// Issue #46169. -+// We want mapped types whose constraint is `keyof T` to -+// map over `any` differently, depending on whether `T` -+// is constrained to array and tuple types. - type Arrayish = { - [K in keyof T]: T[K]; - }; - type Objectish = { - [K in keyof T]: T[K]; - }; -+// When a mapped type whose constraint is `keyof T` is instantiated, -+// `T` may be instantiated with a `U` which is constrained to -+// array and tuple types. *Ideally*, when `U` is later instantiated with `any`, -+// the result should also be some sort of array; however, at the moment we don't seem -+// to have an easy way to preserve that information. More than just that, it would be -+// inconsistent for two instantiations of `Objectish` to produce different outputs -+// depending on the usage-site. As a result, `IndirectArrayish` does not act like `Arrayish`. - type IndirectArrayish = Objectish; - declare function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish): void; - declare function stringifyArray(arr: T): { -@@= skipped -16, +27 lines =@@ - -readonly [K in keyof T]: string; - }; - declare let def: [any, any]; -+// Repro from #46582 - type Evolvable = { - [P in keyof E]: never; - }; \ No newline at end of file + let x = data.notAValue; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypes4.js b/testdata/baselines/reference/submodule/conformance/mappedTypes4.js index d8dc03285c..c85ce73223 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypes4.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypes4.js @@ -142,13 +142,12 @@ type DeepReadonlyFoo = { }; declare var x1: DeepReadonly; declare var x1: DeepReadonlyFoo; -// Repro from #13232 type Z = { a: number; }; type Clone = { [P in keyof (T & {})]: (T & {})[P]; }; -type M = Clone; // M should be { a: number } +type M = Clone; declare var z1: Z; declare var z1: Clone; diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypes4.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypes4.js.diff deleted file mode 100644 index c6c908cde9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/mappedTypes4.js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.mappedTypes4.js -+++ new.mappedTypes4.js -@@= skipped -141, +141 lines =@@ - }; - declare var x1: DeepReadonly; - declare var x1: DeepReadonlyFoo; -+// Repro from #13232 - type Z = { - a: number; - }; - type Clone = { - [P in keyof (T & {})]: (T & {})[P]; - }; --type M = Clone; -+type M = Clone; // M should be { a: number } - declare var z1: Z; - declare var z1: Clone; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypesAndObjects.js b/testdata/baselines/reference/submodule/conformance/mappedTypesAndObjects.js index e9065b658b..bc66dd4273 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypesAndObjects.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypesAndObjects.js @@ -70,7 +70,6 @@ class Form { declare function f1(x: Partial, y: Readonly): void; declare function f2(x: Partial, y: Readonly): void; declare function f3(x: Partial): void; -// Repro from #12900 interface Base { foo: { [key: string]: any; @@ -86,12 +85,11 @@ interface Something { value: string; } interface E2 extends Base { - foo: Partial; // or other mapped type + foo: Partial; } interface E3 extends Base { - foo: Partial; // or other mapped type + foo: Partial; } -// Repro from #13747 declare class Form { private values; } diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypesAndObjects.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypesAndObjects.js.diff index 1173ab19e3..ab19b1b3ad 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypesAndObjects.js.diff +++ b/testdata/baselines/reference/submodule/conformance/mappedTypesAndObjects.js.diff @@ -10,27 +10,3 @@ + values = {}; } - -@@= skipped -10, +8 lines =@@ - declare function f1(x: Partial, y: Readonly): void; - declare function f2(x: Partial, y: Readonly): void; - declare function f3(x: Partial): void; -+// Repro from #12900 - interface Base { - foo: { - [key: string]: any; -@@= skipped -15, +16 lines =@@ - value: string; - } - interface E2 extends Base { -- foo: Partial; -+ foo: Partial; // or other mapped type - } - interface E3 extends Base { -- foo: Partial; -+ foo: Partial; // or other mapped type - } -+// Repro from #13747 - declare class Form { - private values; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypesArraysTuples.js b/testdata/baselines/reference/submodule/conformance/mappedTypesArraysTuples.js index 3a485d5232..b604603eec 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypesArraysTuples.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypesArraysTuples.js @@ -197,20 +197,17 @@ type Awaitified = { declare function all(...values: T): Promise>; declare function f1(a: number, b: Promise, c: string[], d: Promise): void; declare function f2(a: Boxified): void; -// Repro from #26163 type ElementType = T extends Array ? U : never; type Mapped = { [K in keyof T]: T[K]; }; type F = ElementType>; -type R1 = F<[string, number, boolean]>; // string | number | boolean -type R2 = ElementType>; // string | number | boolean -// Repro from #26163 +type R1 = F<[string, number, boolean]>; +type R2 = ElementType>; declare function acceptArray(arr: any[]): void; declare function mapArray(arr: T): Mapped; declare function acceptMappedArray(arr: T): void; -// Repro from #26163 type Unconstrained = ElementType>; -type T1 = Unconstrained<[string, number, boolean]>; // string | number | boolean +type T1 = Unconstrained<[string, number, boolean]>; type Constrained = ElementType>; -type T2 = Constrained<[string, number, boolean]>; // string | number | boolean +type T2 = Constrained<[string, number, boolean]>; diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypesArraysTuples.js.diff b/testdata/baselines/reference/submodule/conformance/mappedTypesArraysTuples.js.diff index 25722ae943..4a9c7bbb84 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypesArraysTuples.js.diff +++ b/testdata/baselines/reference/submodule/conformance/mappedTypesArraysTuples.js.diff @@ -7,29 +7,4 @@ -"use strict"; let y10 = unboxify(x10); let y11 = unboxify(x11); - let y12 = unboxify(x12); -@@= skipped -94, +93 lines =@@ - declare function all(...values: T): Promise>; - declare function f1(a: number, b: Promise, c: string[], d: Promise): void; - declare function f2(a: Boxified): void; -+// Repro from #26163 - type ElementType = T extends Array ? U : never; - type Mapped = { - [K in keyof T]: T[K]; - }; - type F = ElementType>; --type R1 = F<[string, number, boolean]>; --type R2 = ElementType>; -+type R1 = F<[string, number, boolean]>; // string | number | boolean -+type R2 = ElementType>; // string | number | boolean -+// Repro from #26163 - declare function acceptArray(arr: any[]): void; - declare function mapArray(arr: T): Mapped; - declare function acceptMappedArray(arr: T): void; -+// Repro from #26163 - type Unconstrained = ElementType>; --type T1 = Unconstrained<[string, number, boolean]>; -+type T1 = Unconstrained<[string, number, boolean]>; // string | number | boolean - type Constrained = ElementType>; --type T2 = Constrained<[string, number, boolean]>; -+type T2 = Constrained<[string, number, boolean]>; // string | number | boolean \ No newline at end of file + let y12 = unboxify(x12); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mergedClassInterface.js b/testdata/baselines/reference/submodule/conformance/mergedClassInterface.js index 878ed8b42a..d1d00e2b1b 100644 --- a/testdata/baselines/reference/submodule/conformance/mergedClassInterface.js +++ b/testdata/baselines/reference/submodule/conformance/mergedClassInterface.js @@ -94,7 +94,6 @@ interface C5 { interface C5 { x4: number; } -// checks if properties actually were merged declare var c5: C5; //// [file2.d.ts] declare class C6 { diff --git a/testdata/baselines/reference/submodule/conformance/mergedClassInterface.js.diff b/testdata/baselines/reference/submodule/conformance/mergedClassInterface.js.diff deleted file mode 100644 index f0c9d39ac1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/mergedClassInterface.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.mergedClassInterface.js -+++ new.mergedClassInterface.js -@@= skipped -93, +93 lines =@@ - interface C5 { - x4: number; - } -+// checks if properties actually were merged - declare var c5: C5; - //// [file2.d.ts] - declare class C6 { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mixinAbstractClasses.2.js b/testdata/baselines/reference/submodule/conformance/mixinAbstractClasses.2.js index 83ac7ac7d1..bc06f13c05 100644 --- a/testdata/baselines/reference/submodule/conformance/mixinAbstractClasses.2.js +++ b/testdata/baselines/reference/submodule/conformance/mixinAbstractClasses.2.js @@ -55,6 +55,5 @@ declare abstract class AbstractBase { abstract abstractBaseMethod(): void; } declare const MixedBase: typeof AbstractBase & (abstract new (...args: any) => Mixin); -// error expected: Non-abstract class 'DerivedFromAbstract' does not implement inherited abstract member 'abstractBaseMethod' from class 'AbstractBase & Mixin'. declare class DerivedFromAbstract extends MixedBase { } diff --git a/testdata/baselines/reference/submodule/conformance/mixinAbstractClasses.2.js.diff b/testdata/baselines/reference/submodule/conformance/mixinAbstractClasses.2.js.diff deleted file mode 100644 index cc011d041d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/mixinAbstractClasses.2.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.mixinAbstractClasses.2.js -+++ new.mixinAbstractClasses.2.js -@@= skipped -54, +54 lines =@@ - abstract abstractBaseMethod(): void; - } - declare const MixedBase: typeof AbstractBase & (abstract new (...args: any) => Mixin); -+// error expected: Non-abstract class 'DerivedFromAbstract' does not implement inherited abstract member 'abstractBaseMethod' from class 'AbstractBase & Mixin'. - declare class DerivedFromAbstract extends MixedBase { - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mixinAccessModifiers.js b/testdata/baselines/reference/submodule/conformance/mixinAccessModifiers.js index 9939989f26..76df246d70 100644 --- a/testdata/baselines/reference/submodule/conformance/mixinAccessModifiers.js +++ b/testdata/baselines/reference/submodule/conformance/mixinAccessModifiers.js @@ -284,7 +284,6 @@ declare function f5(x: Protected & Public): void; declare function f6(x: Public & Public2): void; declare function Mix(c1: T, c2: U): T & U; declare const C1_base: typeof Private & typeof Private2; -// Can't derive from type with inaccessible properties declare class C1 extends C1_base { } declare const C2_base: typeof Private & typeof Protected; diff --git a/testdata/baselines/reference/submodule/conformance/mixinAccessModifiers.js.diff b/testdata/baselines/reference/submodule/conformance/mixinAccessModifiers.js.diff index 1f5983c7cf..ef1343323b 100644 --- a/testdata/baselines/reference/submodule/conformance/mixinAccessModifiers.js.diff +++ b/testdata/baselines/reference/submodule/conformance/mixinAccessModifiers.js.diff @@ -31,12 +31,4 @@ + static s; } function f1(x) { - x.p; // Error, private constituent makes property inaccessible -@@= skipped -137, +147 lines =@@ - declare function f6(x: Public & Public2): void; - declare function Mix(c1: T, c2: U): T & U; - declare const C1_base: typeof Private & typeof Private2; -+// Can't derive from type with inaccessible properties - declare class C1 extends C1_base { - } - declare const C2_base: typeof Private & typeof Protected; \ No newline at end of file + x.p; // Error, private constituent makes property inaccessible \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js index 1f0669fe78..184cf4cb72 100644 --- a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js +++ b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js @@ -21,7 +21,6 @@ exports["Does not work yet"] = D; //// [moduleExportAliasElementAccessExpression.d.ts] export var D = D; -// (the only package I could find that uses spaces in identifiers is webidl-conversions) export var Does not work yet = D; export {}; @@ -29,14 +28,13 @@ export {}; //// [DtsFileErrors] -out/moduleExportAliasElementAccessExpression.d.ts(3,17): error TS1005: ',' expected. -out/moduleExportAliasElementAccessExpression.d.ts(3,21): error TS1005: ',' expected. -out/moduleExportAliasElementAccessExpression.d.ts(3,26): error TS1005: ',' expected. +out/moduleExportAliasElementAccessExpression.d.ts(2,17): error TS1005: ',' expected. +out/moduleExportAliasElementAccessExpression.d.ts(2,21): error TS1005: ',' expected. +out/moduleExportAliasElementAccessExpression.d.ts(2,26): error TS1005: ',' expected. ==== out/moduleExportAliasElementAccessExpression.d.ts (3 errors) ==== export var D = D; - // (the only package I could find that uses spaces in identifiers is webidl-conversions) export var Does not work yet = D; ~~~ !!! error TS1005: ',' expected. diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff index 4131ddf196..7783a7eb3e 100644 --- a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff +++ b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff @@ -19,7 +19,6 @@ -export function D(): void; -export { D as _Does_not_work_yet }; +export var D = D; -+// (the only package I could find that uses spaces in identifiers is webidl-conversions) +export var Does not work yet = D; +export {}; + @@ -27,14 +26,13 @@ +//// [DtsFileErrors] + + -+out/moduleExportAliasElementAccessExpression.d.ts(3,17): error TS1005: ',' expected. -+out/moduleExportAliasElementAccessExpression.d.ts(3,21): error TS1005: ',' expected. -+out/moduleExportAliasElementAccessExpression.d.ts(3,26): error TS1005: ',' expected. ++out/moduleExportAliasElementAccessExpression.d.ts(2,17): error TS1005: ',' expected. ++out/moduleExportAliasElementAccessExpression.d.ts(2,21): error TS1005: ',' expected. ++out/moduleExportAliasElementAccessExpression.d.ts(2,26): error TS1005: ',' expected. + + +==== out/moduleExportAliasElementAccessExpression.d.ts (3 errors) ==== + export var D = D; -+ // (the only package I could find that uses spaces in identifiers is webidl-conversions) + export var Does not work yet = D; + ~~~ +!!! error TS1005: ',' expected. diff --git a/testdata/baselines/reference/submodule/conformance/namedTupleMembers.js b/testdata/baselines/reference/submodule/conformance/namedTupleMembers.js index 4d0ea30dda..0cfdfb73dd 100644 --- a/testdata/baselines/reference/submodule/conformance/namedTupleMembers.js +++ b/testdata/baselines/reference/submodule/conformance/namedTupleMembers.js @@ -131,11 +131,10 @@ export declare const func: Func; export declare function useState(initial: T): [value: T, setter: (T: any) => void]; export type Iter = Func<[step: number, iterations: number]>; export declare function readSegment([length, count]: [number, number]): void; -// documenting binding pattern behavior (currently does _not_ generate tuple names) export declare const val: [number, number]; export type RecursiveTupleA = [initial: string, next: RecursiveTupleA]; export type RecursiveTupleB = [first: string, ptr: RecursiveTupleB]; export type RecusiveRest = [first: string, ...rest: RecusiveRest[]]; export type RecusiveRest2 = [string, ...RecusiveRest2[]]; -export declare const argumentsOfGAsFirstArgument: [[elem: object, index: number]]; // one tuple with captures arguments as first member -export declare const argumentsOfG: [elem: object, index: number]; // captured arguments list re-spread +export declare const argumentsOfGAsFirstArgument: [[elem: object, index: number]]; +export declare const argumentsOfG: [elem: object, index: number]; diff --git a/testdata/baselines/reference/submodule/conformance/namedTupleMembers.js.diff b/testdata/baselines/reference/submodule/conformance/namedTupleMembers.js.diff index 6326395ec6..72132602e5 100644 --- a/testdata/baselines/reference/submodule/conformance/namedTupleMembers.js.diff +++ b/testdata/baselines/reference/submodule/conformance/namedTupleMembers.js.diff @@ -5,13 +5,7 @@ export type Iter = Func<[step: number, iterations: number]>; export declare function readSegment([length, count]: [number, number]): void; -export declare const val: Parameters[0]; -+// documenting binding pattern behavior (currently does _not_ generate tuple names) +export declare const val: [number, number]; export type RecursiveTupleA = [initial: string, next: RecursiveTupleA]; export type RecursiveTupleB = [first: string, ptr: RecursiveTupleB]; - export type RecusiveRest = [first: string, ...rest: RecusiveRest[]]; - export type RecusiveRest2 = [string, ...RecusiveRest2[]]; --export declare const argumentsOfGAsFirstArgument: [[elem: object, index: number]]; --export declare const argumentsOfG: [elem: object, index: number]; -+export declare const argumentsOfGAsFirstArgument: [[elem: object, index: number]]; // one tuple with captures arguments as first member -+export declare const argumentsOfG: [elem: object, index: number]; // captured arguments list re-spread \ No newline at end of file + export type RecusiveRest = [first: string, ...rest: RecusiveRest[]]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/namedTupleMembersErrors.js b/testdata/baselines/reference/submodule/conformance/namedTupleMembersErrors.js index 2cf4cdce22..2ce6b4fba3 100644 --- a/testdata/baselines/reference/submodule/conformance/namedTupleMembersErrors.js +++ b/testdata/baselines/reference/submodule/conformance/namedTupleMembersErrors.js @@ -36,10 +36,10 @@ export type List = [item: any, ...any]; export type List2 = [any, ...remainder: any]; export type Pair = [item: any, any?]; export type Pair2 = [any, last?: any]; -export type Opt = [element: string?]; // question mark on element disallowed -export type Trailing = [first: string, rest: ...string[]]; // dots on element disallowed -export type OptTrailing = [first: string, rest: ...string[] | null]; // dots+question on element disallowed -export type OptRest = [first: string, ...rest?: string[]]; // rest+optional disallowed -export type NonArrayRest = [first: string, ...rest: number]; // non-arraylike rest, disallowed +export type Opt = [element: string?]; +export type Trailing = [first: string, rest: ...string[]]; +export type OptTrailing = [first: string, rest: ...string[] | null]; +export type OptRest = [first: string, ...rest?: string[]]; +export type NonArrayRest = [first: string, ...rest: number]; export type RecusiveRestUnlabeled = [string, ...RecusiveRestUnlabeled]; -export type RecusiveRest = [first: string, ...rest: RecusiveRest]; // marked as incorrect, same as above +export type RecusiveRest = [first: string, ...rest: RecusiveRest]; diff --git a/testdata/baselines/reference/submodule/conformance/namedTupleMembersErrors.js.diff b/testdata/baselines/reference/submodule/conformance/namedTupleMembersErrors.js.diff index 1fb4d99556..f98cff48d6 100644 --- a/testdata/baselines/reference/submodule/conformance/namedTupleMembersErrors.js.diff +++ b/testdata/baselines/reference/submodule/conformance/namedTupleMembersErrors.js.diff @@ -1,19 +1,11 @@ --- old.namedTupleMembersErrors.js +++ new.namedTupleMembersErrors.js -@@= skipped -35, +35 lines =@@ - export type List2 = [any, ...remainder: any]; - export type Pair = [item: any, any?]; +@@= skipped -37, +37 lines =@@ export type Pair2 = [any, last?: any]; --export type Opt = [element: string?]; --export type Trailing = [first: string, rest: ...string[]]; + export type Opt = [element: string?]; + export type Trailing = [first: string, rest: ...string[]]; -export type OptTrailing = [first: string, rest: ...?string[]]; --export type OptRest = [first: string, ...rest?: string[]]; --export type NonArrayRest = [first: string, ...rest: number]; -+export type Opt = [element: string?]; // question mark on element disallowed -+export type Trailing = [first: string, rest: ...string[]]; // dots on element disallowed -+export type OptTrailing = [first: string, rest: ...string[] | null]; // dots+question on element disallowed -+export type OptRest = [first: string, ...rest?: string[]]; // rest+optional disallowed -+export type NonArrayRest = [first: string, ...rest: number]; // non-arraylike rest, disallowed - export type RecusiveRestUnlabeled = [string, ...RecusiveRestUnlabeled]; --export type RecusiveRest = [first: string, ...rest: RecusiveRest]; -+export type RecusiveRest = [first: string, ...rest: RecusiveRest]; // marked as incorrect, same as above \ No newline at end of file ++export type OptTrailing = [first: string, rest: ...string[] | null]; + export type OptRest = [first: string, ...rest?: string[]]; + export type NonArrayRest = [first: string, ...rest: number]; + export type RecusiveRestUnlabeled = [string, ...RecusiveRestUnlabeled]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/neverReturningFunctions1.js b/testdata/baselines/reference/submodule/conformance/neverReturningFunctions1.js index 246d34818e..36b7ade380 100644 --- a/testdata/baselines/reference/submodule/conformance/neverReturningFunctions1.js +++ b/testdata/baselines/reference/submodule/conformance/neverReturningFunctions1.js @@ -470,7 +470,6 @@ function foo(services, s) { //// [neverReturningFunctions1.d.ts] -// Repro from #33582 export interface Component { attrName?: string; data: T; diff --git a/testdata/baselines/reference/submodule/conformance/neverReturningFunctions1.js.diff b/testdata/baselines/reference/submodule/conformance/neverReturningFunctions1.js.diff deleted file mode 100644 index 6018a551dc..0000000000 --- a/testdata/baselines/reference/submodule/conformance/neverReturningFunctions1.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.neverReturningFunctions1.js -+++ new.neverReturningFunctions1.js -@@= skipped -469, +469 lines =@@ - - - //// [neverReturningFunctions1.d.ts] -+// Repro from #33582 - export interface Component { - attrName?: string; - data: T; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/noInfer.js b/testdata/baselines/reference/submodule/conformance/noInfer.js index 630ce18936..864ce352ba 100644 --- a/testdata/baselines/reference/submodule/conformance/noInfer.js +++ b/testdata/baselines/reference/submodule/conformance/noInfer.js @@ -124,7 +124,6 @@ class OkClass2 { //// [noInfer.d.ts] -// NoInfer is erased for primitives type T00 = NoInfer; type T01 = NoInfer; type T02 = NoInfer; @@ -132,16 +131,13 @@ type T03 = NoInfer<"foo">; type T04 = NoInfer<`foo${string}`>; type T05 = NoInfer<`foo${string}` & `${string}bar`>; type T06 = NoInfer<{}>; -// NoInfer is preserved for object types type T10 = NoInfer; type T11 = NoInfer<{ x: string; }>; -// NoInfer is erased if it has no effect type T20 = NoInfer>; type T21 = NoInfer & string>; type T22 = NoInfer & string[]>; -// keyof NoInfer is transformed into NoInfer type T30 = keyof NoInfer<{ a: string; b: string; diff --git a/testdata/baselines/reference/submodule/conformance/noInfer.js.diff b/testdata/baselines/reference/submodule/conformance/noInfer.js.diff index cd07c8c1a8..d7a313019d 100644 --- a/testdata/baselines/reference/submodule/conformance/noInfer.js.diff +++ b/testdata/baselines/reference/submodule/conformance/noInfer.js.diff @@ -26,29 +26,4 @@ + _value; constructor(clazz, _value) { this.clazz = clazz; - this._value = _value; -@@= skipped -8, +10 lines =@@ - - - //// [noInfer.d.ts] -+// NoInfer is erased for primitives - type T00 = NoInfer; - type T01 = NoInfer; - type T02 = NoInfer; -@@= skipped -7, +8 lines =@@ - type T04 = NoInfer<`foo${string}`>; - type T05 = NoInfer<`foo${string}` & `${string}bar`>; - type T06 = NoInfer<{}>; -+// NoInfer is preserved for object types - type T10 = NoInfer; - type T11 = NoInfer<{ - x: string; - }>; -+// NoInfer is erased if it has no effect - type T20 = NoInfer>; - type T21 = NoInfer & string>; - type T22 = NoInfer & string[]>; -+// keyof NoInfer is transformed into NoInfer - type T30 = keyof NoInfer<{ - a: string; - b: string; \ No newline at end of file + this._value = _value; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js index 4806948856..bfebc4d12e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js @@ -673,50 +673,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js.diff deleted file mode 100644 index 78b232c8d4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js.diff +++ /dev/null @@ -1,86 +0,0 @@ ---- old.nodeModules1(module=node16).js -+++ new.nodeModules1(module=node16).js -@@= skipped -672, +672 lines =@@ - - - //// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.mts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file - declare const x = 1; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js index 4806948856..bfebc4d12e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js @@ -673,50 +673,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff deleted file mode 100644 index b24928753d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff +++ /dev/null @@ -1,86 +0,0 @@ ---- old.nodeModules1(module=node18).js -+++ new.nodeModules1(module=node18).js -@@= skipped -672, +672 lines =@@ - - - //// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.mts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file - declare const x = 1; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js index 4806948856..bfebc4d12e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js @@ -673,50 +673,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js.diff deleted file mode 100644 index 7b41670edd..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js.diff +++ /dev/null @@ -1,86 +0,0 @@ ---- old.nodeModules1(module=nodenext).js -+++ new.nodeModules1(module=nodenext).js -@@= skipped -672, +672 lines =@@ - - - //// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.mts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.cts] --declare const x = 1; --export { x }; --//// [index.d.ts] --declare const x = 1; --export { x }; --//// [index.d.mts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x = 1; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x = 1; -+export { x }; -+//// [index.d.mts] -+// esm format file - declare const x = 1; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js index 3ce5147557..c06a907294 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js @@ -673,50 +673,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js.diff index dc8b4cc91f..2f32f7346d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node16).js.diff @@ -27,50 +27,38 @@ -export const x: 1; -//// [index.d.ts] -export const x: 1; -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// esm format file +declare const x = 1; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js index 3ce5147557..c06a907294 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js @@ -673,50 +673,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff index 9c35f7212d..da41dde877 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff @@ -27,50 +27,38 @@ -export const x: 1; -//// [index.d.ts] -export const x: 1; -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// esm format file +declare const x = 1; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js index 3ce5147557..c06a907294 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js @@ -673,50 +673,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.cts] -// cjs format file declare const x = 1; export { x }; //// [index.d.mts] -// esm format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js.diff index 6022234b81..19e413d0a7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=nodenext).js.diff @@ -27,50 +27,38 @@ -export const x: 1; -//// [index.d.ts] -export const x: 1; -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.cts] -+// cjs format file +declare const x = 1; +export { x }; +//// [index.d.mts] -+// esm format file +declare const x = 1; +export { x }; +//// [index.d.ts] -+// esm format file +declare const x = 1; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js index 59027fbfed..b5d9166a68 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js @@ -39,8 +39,6 @@ export async function main() { //// [index.d.ts] -// cjs format file export declare function main(): Promise; //// [index.d.ts] -// esm format file export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js.diff index 4cf1cec59b..a719098e2b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node16).js.diff @@ -5,9 +5,7 @@ //// [index.d.ts] -export function main(): Promise; -+// cjs format file +export declare function main(): Promise; //// [index.d.ts] -export function main(): Promise; -+// esm format file +export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js index 59027fbfed..b5d9166a68 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js @@ -39,8 +39,6 @@ export async function main() { //// [index.d.ts] -// cjs format file export declare function main(): Promise; //// [index.d.ts] -// esm format file export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff index 0c460481a8..b8344857b7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff @@ -5,9 +5,7 @@ //// [index.d.ts] -export function main(): Promise; -+// cjs format file +export declare function main(): Promise; //// [index.d.ts] -export function main(): Promise; -+// esm format file +export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js index 59027fbfed..b5d9166a68 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js @@ -39,8 +39,6 @@ export async function main() { //// [index.d.ts] -// cjs format file export declare function main(): Promise; //// [index.d.ts] -// esm format file export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js.diff index 0833f73a55..552ecaf390 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=nodenext).js.diff @@ -5,9 +5,7 @@ //// [index.d.ts] -export function main(): Promise; -+// cjs format file +export declare function main(): Promise; //// [index.d.ts] -export function main(): Promise; -+// esm format file +export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js index a624f440af..dd51eb1722 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js @@ -53,16 +53,13 @@ module.exports = a; //// [index.d.ts] -// cjs format file declare const a: {}; export = a; //// [file.d.ts] export = a; //// [index.d.ts] -// esm format file declare const a: {}; export = a; //// [file.d.ts] -// esm format file import "fs"; export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js.diff index cca093433d..87ec4bc527 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).js.diff @@ -21,7 +21,6 @@ //// [index.d.ts] -export = a; -+// cjs format file declare const a: {}; +export = a; //// [file.d.ts] @@ -29,11 +28,9 @@ -declare const a: {}; //// [index.d.ts] -export = a; -+// esm format file declare const a: {}; +export = a; //// [file.d.ts] -export {}; -+// esm format file +import "fs"; +export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js index 91ecea6d0b..6007d9749d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js @@ -51,16 +51,13 @@ module.exports = a; //// [index.d.ts] -// cjs format file declare const a: {}; export = a; //// [file.d.ts] export = a; //// [index.d.ts] -// esm format file declare const a: {}; export = a; //// [file.d.ts] -// esm format file import "fs"; export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff index 4cf48c8e26..cecf6ef084 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff @@ -21,7 +21,6 @@ //// [index.d.ts] -export = a; -+// cjs format file declare const a: {}; +export = a; //// [file.d.ts] @@ -29,11 +28,9 @@ -declare const a: {}; //// [index.d.ts] -export = a; -+// esm format file declare const a: {}; +export = a; //// [file.d.ts] -export {}; -+// esm format file +import "fs"; +export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js index a624f440af..dd51eb1722 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js @@ -53,16 +53,13 @@ module.exports = a; //// [index.d.ts] -// cjs format file declare const a: {}; export = a; //// [file.d.ts] export = a; //// [index.d.ts] -// esm format file declare const a: {}; export = a; //// [file.d.ts] -// esm format file import "fs"; export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js.diff index d5a87b21a9..3ecaf4c8a6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).js.diff @@ -21,7 +21,6 @@ //// [index.d.ts] -export = a; -+// cjs format file declare const a: {}; +export = a; //// [file.d.ts] @@ -29,11 +28,9 @@ -declare const a: {}; //// [index.d.ts] -export = a; -+// esm format file declare const a: {}; +export = a; //// [file.d.ts] -export {}; -+// esm format file +import "fs"; +export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js index 847c8e47c2..4048da5b4f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js @@ -49,7 +49,6 @@ export { require, exports, Object }; //// [index.d.ts] -// cjs format file declare function require(): void; declare const exports: {}; declare class Object { @@ -57,7 +56,6 @@ declare class Object { export declare const __esModule = false; export { require, exports, Object }; //// [index.d.ts] -// esm format file declare function require(): void; declare const exports: {}; declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js.diff index c57c88e9ff..0c1f1981c3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).js.diff @@ -8,7 +8,6 @@ -export function require(): void; -export const exports: {}; -export class Object { -+// cjs format file +declare function require(): void; +declare const exports: {}; +declare class Object { @@ -20,7 +19,6 @@ -export function require(): void; -export const exports: {}; -export class Object { -+// esm format file +declare function require(): void; +declare const exports: {}; +declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js index 847c8e47c2..4048da5b4f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js @@ -49,7 +49,6 @@ export { require, exports, Object }; //// [index.d.ts] -// cjs format file declare function require(): void; declare const exports: {}; declare class Object { @@ -57,7 +56,6 @@ declare class Object { export declare const __esModule = false; export { require, exports, Object }; //// [index.d.ts] -// esm format file declare function require(): void; declare const exports: {}; declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff index 2c197aef27..afbfbf16ed 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff @@ -8,7 +8,6 @@ -export function require(): void; -export const exports: {}; -export class Object { -+// cjs format file +declare function require(): void; +declare const exports: {}; +declare class Object { @@ -20,7 +19,6 @@ -export function require(): void; -export const exports: {}; -export class Object { -+// esm format file +declare function require(): void; +declare const exports: {}; +declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js index 847c8e47c2..4048da5b4f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js @@ -49,7 +49,6 @@ export { require, exports, Object }; //// [index.d.ts] -// cjs format file declare function require(): void; declare const exports: {}; declare class Object { @@ -57,7 +56,6 @@ declare class Object { export declare const __esModule = false; export { require, exports, Object }; //// [index.d.ts] -// esm format file declare function require(): void; declare const exports: {}; declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js.diff index d644e1712a..3a06e76438 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).js.diff @@ -8,7 +8,6 @@ -export function require(): void; -export const exports: {}; -export class Object { -+// cjs format file +declare function require(): void; +declare const exports: {}; +declare class Object { @@ -20,7 +19,6 @@ -export function require(): void; -export const exports: {}; -export class Object { -+// esm format file +declare function require(): void; +declare const exports: {}; +declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js index 2cfc0e98c6..1960ba0103 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js @@ -40,10 +40,8 @@ export * as fs from "fs"; //// [index.d.ts] -// cjs format file export * from "fs"; export * as fs from "fs"; //// [index.d.ts] -// esm format file export * from "fs"; export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js.diff deleted file mode 100644 index b0d37b2a38..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node16).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesAllowJsImportHelpersCollisions2(module=node16).js -+++ new.nodeModulesAllowJsImportHelpersCollisions2(module=node16).js -@@= skipped -39, +39 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export * from "fs"; - export * as fs from "fs"; - //// [index.d.ts] -+// esm format file - export * from "fs"; - export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js index 2cfc0e98c6..1960ba0103 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js @@ -40,10 +40,8 @@ export * as fs from "fs"; //// [index.d.ts] -// cjs format file export * from "fs"; export * as fs from "fs"; //// [index.d.ts] -// esm format file export * from "fs"; export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff deleted file mode 100644 index 5bb394090c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesAllowJsImportHelpersCollisions2(module=node18).js -+++ new.nodeModulesAllowJsImportHelpersCollisions2(module=node18).js -@@= skipped -39, +39 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export * from "fs"; - export * as fs from "fs"; - //// [index.d.ts] -+// esm format file - export * from "fs"; - export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js index 2cfc0e98c6..1960ba0103 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js @@ -40,10 +40,8 @@ export * as fs from "fs"; //// [index.d.ts] -// cjs format file export * from "fs"; export * as fs from "fs"; //// [index.d.ts] -// esm format file export * from "fs"; export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js.diff deleted file mode 100644 index 9472ffe90e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js -+++ new.nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js -@@= skipped -39, +39 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export * from "fs"; - export * as fs from "fs"; - //// [index.d.ts] -+// esm format file - export * from "fs"; - export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js index d6f712d5f9..9401cb9084 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js @@ -47,12 +47,10 @@ export { bar as baz } from "fs"; //// [index.d.ts] -// cjs format file export { default } from "fs"; export { default as foo } from "fs"; export { bar as baz } from "fs"; //// [index.d.ts] -// esm format file export { default } from "fs"; export { default as foo } from "fs"; export { bar as baz } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js.diff index 7b9973e0c5..f09168ab08 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node16).js.diff @@ -23,13 +23,11 @@ //// [index.d.ts] -export { default, default as foo, bar as baz } from "fs"; -+// cjs format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; //// [index.d.ts] -export { default, default as foo, bar as baz } from "fs"; -+// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js index d6f712d5f9..9401cb9084 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js @@ -47,12 +47,10 @@ export { bar as baz } from "fs"; //// [index.d.ts] -// cjs format file export { default } from "fs"; export { default as foo } from "fs"; export { bar as baz } from "fs"; //// [index.d.ts] -// esm format file export { default } from "fs"; export { default as foo } from "fs"; export { bar as baz } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff index 97d2c6cc29..c00c45a199 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff @@ -23,13 +23,11 @@ //// [index.d.ts] -export { default, default as foo, bar as baz } from "fs"; -+// cjs format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; //// [index.d.ts] -export { default, default as foo, bar as baz } from "fs"; -+// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js index d6f712d5f9..9401cb9084 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js @@ -47,12 +47,10 @@ export { bar as baz } from "fs"; //// [index.d.ts] -// cjs format file export { default } from "fs"; export { default as foo } from "fs"; export { bar as baz } from "fs"; //// [index.d.ts] -// esm format file export { default } from "fs"; export { default as foo } from "fs"; export { bar as baz } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js.diff index 7ded5e07fa..fa16b4aa68 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=nodenext).js.diff @@ -23,13 +23,11 @@ //// [index.d.ts] -export { default, default as foo, bar as baz } from "fs"; -+// cjs format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; //// [index.d.ts] -export { default, default as foo, bar as baz } from "fs"; -+// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js index 23c6e47c50..6ac9f8052f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js @@ -33,10 +33,8 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: string; export { x }; //// [index.d.ts] -// esm format file declare const x: string; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js.diff index 02c632ad26..45bcaf0139 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node16).js.diff @@ -5,11 +5,9 @@ //// [index.d.ts] -export const x: string; -+// cjs format file +declare const x: string; +export { x }; //// [index.d.ts] -export const x: string; -+// esm format file +declare const x: string; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js index 23c6e47c50..6ac9f8052f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js @@ -33,10 +33,8 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: string; export { x }; //// [index.d.ts] -// esm format file declare const x: string; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff index e8e3f59b89..f9b69bfaaa 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff @@ -5,11 +5,9 @@ //// [index.d.ts] -export const x: string; -+// cjs format file +declare const x: string; +export { x }; //// [index.d.ts] -export const x: string; -+// esm format file +declare const x: string; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js index 23c6e47c50..6ac9f8052f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js @@ -33,10 +33,8 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: string; export { x }; //// [index.d.ts] -// esm format file declare const x: string; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js.diff index 8667bb6938..a4a43c4d15 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=nodenext).js.diff @@ -5,11 +5,9 @@ //// [index.d.ts] -export const x: string; -+// cjs format file +declare const x: string; +export { x }; //// [index.d.ts] -export const x: string; -+// esm format file +declare const x: string; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js index d7e534e7c4..69fdcac5a2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js @@ -37,10 +37,8 @@ for await (const y of []) { } //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js.diff index 873e3df6c7..e3f5577501 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).js.diff @@ -5,11 +5,9 @@ //// [index.d.ts] -export const x: 1; -+// cjs format file +declare const x = 1; +export { x }; //// [index.d.ts] -export const x: 1; -+// esm format file +declare const x = 1; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js index d7e534e7c4..69fdcac5a2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js @@ -37,10 +37,8 @@ for await (const y of []) { } //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff index 01f87ccf86..268d79e9ca 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff @@ -5,11 +5,9 @@ //// [index.d.ts] -export const x: 1; -+// cjs format file +declare const x = 1; +export { x }; //// [index.d.ts] -export const x: 1; -+// esm format file +declare const x = 1; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js index d7e534e7c4..69fdcac5a2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js @@ -37,10 +37,8 @@ for await (const y of []) { } //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js.diff index 4499e86013..37d9e28d50 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).js.diff @@ -5,11 +5,9 @@ //// [index.d.ts] -export const x: 1; -+// cjs format file +declare const x = 1; +export { x }; //// [index.d.ts] -export const x: 1; -+// esm format file +declare const x = 1; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js index 5653139603..f0c9198a51 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js @@ -31,7 +31,6 @@ mod; //// [index.d.ts] -// cjs format file export declare const a = 1; //// [index.d.ts] export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js.diff deleted file mode 100644 index 73ab0733d2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js -+++ new.nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js -@@= skipped -30, +30 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export declare const a = 1; - //// [index.d.ts] - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js index 5653139603..f0c9198a51 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js @@ -31,7 +31,6 @@ mod; //// [index.d.ts] -// cjs format file export declare const a = 1; //// [index.d.ts] export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff deleted file mode 100644 index 10fc6b270b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js -+++ new.nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js -@@= skipped -30, +30 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export declare const a = 1; - //// [index.d.ts] - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js index 5653139603..f0c9198a51 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js @@ -31,7 +31,6 @@ mod; //// [index.d.ts] -// cjs format file export declare const a = 1; //// [index.d.ts] export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js.diff deleted file mode 100644 index 9bb0c13502..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js -+++ new.nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js -@@= skipped -30, +30 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export declare const a = 1; - //// [index.d.ts] - export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js index bd8213279f..2f6a5a512f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js @@ -116,16 +116,12 @@ exports.e = import("inner/mjs"); //// [index.d.ts] -// esm format file export {}; //// [index.d.mts] -// esm format file export {}; //// [index.d.cts] -// cjs format file export {}; //// [other.d.ts] -// esm format file export declare const a: { default: typeof import("package/cjs"); }; @@ -136,14 +132,12 @@ export declare const f: { default: typeof import("inner"); }; //// [other2.d.ts] -// esm format file export declare const d: { cjsNonmain: true; default: typeof import("inner/cjs"); }; export declare const e: typeof import("inner/mjs"); //// [other.d.mts] -// esm format file export declare const a: { default: typeof import("package/cjs"); }; @@ -154,14 +148,12 @@ export declare const f: { default: typeof import("inner"); }; //// [other2.d.mts] -// esm format file export declare const d: { cjsNonmain: true; default: typeof import("inner/cjs"); }; export declare const e: typeof import("inner/mjs"); //// [other.d.cts] -// cjs format file, no TLA export declare const a: Promise<{ default: typeof import("./index.cts"); }>; @@ -172,7 +164,6 @@ export declare const f: Promise<{ default: typeof import("inner"); }>; //// [other2.d.cts] -// cjs format file, no TLA export declare const d: Promise<{ cjsNonmain: true; default: typeof import("inner/cjs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff index 3985ca9bf4..ae7cbd8bb8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff @@ -1,60 +1,11 @@ --- old.nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js +++ new.nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js -@@= skipped -115, +115 lines =@@ - - - //// [index.d.ts] -+// esm format file - export {}; - //// [index.d.mts] -+// esm format file - export {}; - //// [index.d.cts] -+// cjs format file - export {}; - //// [other.d.ts] -+// esm format file - export declare const a: { - default: typeof import("package/cjs"); - }; -@@= skipped -16, +20 lines =@@ - default: typeof import("inner"); - }; - //// [other2.d.ts] -+// esm format file - export declare const d: { - cjsNonmain: true; - default: typeof import("inner/cjs"); - }; - export declare const e: typeof import("inner/mjs"); - //// [other.d.mts] -+// esm format file - export declare const a: { - default: typeof import("package/cjs"); - }; -@@= skipped -16, +18 lines =@@ - default: typeof import("inner"); - }; - //// [other2.d.mts] -+// esm format file - export declare const d: { - cjsNonmain: true; - default: typeof import("inner/cjs"); - }; +@@= skipped -154, +154 lines =@@ export declare const e: typeof import("inner/mjs"); //// [other.d.cts] -+// cjs format file, no TLA export declare const a: Promise<{ - default: typeof import("./index.cjs"); + default: typeof import("./index.cts"); }>; export declare const b: Promise; - export declare const c: Promise; -@@= skipped -16, +18 lines =@@ - default: typeof import("inner"); - }>; - //// [other2.d.cts] -+// cjs format file, no TLA - export declare const d: Promise<{ - cjsNonmain: true; - default: typeof import("inner/cjs"); \ No newline at end of file + export declare const c: Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js index bd8213279f..2f6a5a512f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js @@ -116,16 +116,12 @@ exports.e = import("inner/mjs"); //// [index.d.ts] -// esm format file export {}; //// [index.d.mts] -// esm format file export {}; //// [index.d.cts] -// cjs format file export {}; //// [other.d.ts] -// esm format file export declare const a: { default: typeof import("package/cjs"); }; @@ -136,14 +132,12 @@ export declare const f: { default: typeof import("inner"); }; //// [other2.d.ts] -// esm format file export declare const d: { cjsNonmain: true; default: typeof import("inner/cjs"); }; export declare const e: typeof import("inner/mjs"); //// [other.d.mts] -// esm format file export declare const a: { default: typeof import("package/cjs"); }; @@ -154,14 +148,12 @@ export declare const f: { default: typeof import("inner"); }; //// [other2.d.mts] -// esm format file export declare const d: { cjsNonmain: true; default: typeof import("inner/cjs"); }; export declare const e: typeof import("inner/mjs"); //// [other.d.cts] -// cjs format file, no TLA export declare const a: Promise<{ default: typeof import("./index.cts"); }>; @@ -172,7 +164,6 @@ export declare const f: Promise<{ default: typeof import("inner"); }>; //// [other2.d.cts] -// cjs format file, no TLA export declare const d: Promise<{ cjsNonmain: true; default: typeof import("inner/cjs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js.diff index 3ca428bb36..d60f696654 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js.diff @@ -1,60 +1,11 @@ --- old.nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js +++ new.nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=nodenext).js -@@= skipped -115, +115 lines =@@ - - - //// [index.d.ts] -+// esm format file - export {}; - //// [index.d.mts] -+// esm format file - export {}; - //// [index.d.cts] -+// cjs format file - export {}; - //// [other.d.ts] -+// esm format file - export declare const a: { - default: typeof import("package/cjs"); - }; -@@= skipped -16, +20 lines =@@ - default: typeof import("inner"); - }; - //// [other2.d.ts] -+// esm format file - export declare const d: { - cjsNonmain: true; - default: typeof import("inner/cjs"); - }; - export declare const e: typeof import("inner/mjs"); - //// [other.d.mts] -+// esm format file - export declare const a: { - default: typeof import("package/cjs"); - }; -@@= skipped -16, +18 lines =@@ - default: typeof import("inner"); - }; - //// [other2.d.mts] -+// esm format file - export declare const d: { - cjsNonmain: true; - default: typeof import("inner/cjs"); - }; +@@= skipped -154, +154 lines =@@ export declare const e: typeof import("inner/mjs"); //// [other.d.cts] -+// cjs format file, no TLA export declare const a: Promise<{ - default: typeof import("./index.cjs"); + default: typeof import("./index.cts"); }>; export declare const b: Promise; - export declare const c: Promise; -@@= skipped -16, +18 lines =@@ - default: typeof import("inner"); - }>; - //// [other2.d.cts] -+// cjs format file, no TLA - export declare const d: Promise<{ - cjsNonmain: true; - default: typeof import("inner/cjs"); \ No newline at end of file + export declare const c: Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js index 2c495b6d6f..378a054d25 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js @@ -39,8 +39,6 @@ export async function main() { //// [index.d.ts] -// cjs format file export declare function main(): Promise; //// [index.d.ts] -// esm format file export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js.diff deleted file mode 100644 index ecfc8e4cf4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.nodeModulesDynamicImport(module=node16).js -+++ new.nodeModulesDynamicImport(module=node16).js -@@= skipped -38, +38 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export declare function main(): Promise; - //// [index.d.ts] -+// esm format file - export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js index 2c495b6d6f..378a054d25 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js @@ -39,8 +39,6 @@ export async function main() { //// [index.d.ts] -// cjs format file export declare function main(): Promise; //// [index.d.ts] -// esm format file export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff deleted file mode 100644 index 6aa2977844..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.nodeModulesDynamicImport(module=node18).js -+++ new.nodeModulesDynamicImport(module=node18).js -@@= skipped -38, +38 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export declare function main(): Promise; - //// [index.d.ts] -+// esm format file - export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js index 2c495b6d6f..378a054d25 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js @@ -39,8 +39,6 @@ export async function main() { //// [index.d.ts] -// cjs format file export declare function main(): Promise; //// [index.d.ts] -// esm format file export declare function main(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js.diff deleted file mode 100644 index 40cd3f7134..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.nodeModulesDynamicImport(module=nodenext).js -+++ new.nodeModulesDynamicImport(module=nodenext).js -@@= skipped -38, +38 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export declare function main(): Promise; - //// [index.d.ts] -+// esm format file - export declare function main(): Promise; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js index c313c5a4e3..2d09438ae7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js @@ -31,10 +31,8 @@ export {}; //// [index.d.ts] -// cjs format file declare const a: {}; export = a; //// [index.d.ts] -// esm format file declare const a: {}; export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js.diff deleted file mode 100644 index 96ef8c2c5e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesExportAssignments(module=node16).js -+++ new.nodeModulesExportAssignments(module=node16).js -@@= skipped -30, +30 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const a: {}; - export = a; - //// [index.d.ts] -+// esm format file - declare const a: {}; - export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js index c313c5a4e3..2d09438ae7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js @@ -31,10 +31,8 @@ export {}; //// [index.d.ts] -// cjs format file declare const a: {}; export = a; //// [index.d.ts] -// esm format file declare const a: {}; export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff deleted file mode 100644 index 6039080c15..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesExportAssignments(module=node18).js -+++ new.nodeModulesExportAssignments(module=node18).js -@@= skipped -30, +30 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const a: {}; - export = a; - //// [index.d.ts] -+// esm format file - declare const a: {}; - export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js index c313c5a4e3..2d09438ae7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js @@ -31,10 +31,8 @@ export {}; //// [index.d.ts] -// cjs format file declare const a: {}; export = a; //// [index.d.ts] -// esm format file declare const a: {}; export = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js.diff deleted file mode 100644 index 025c050cab..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesExportAssignments(module=nodenext).js -+++ new.nodeModulesExportAssignments(module=nodenext).js -@@= skipped -30, +30 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const a: {}; - export = a; - //// [index.d.ts] -+// esm format file - declare const a: {}; - export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js index 40ad0b0219..be568de76d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js @@ -37,12 +37,10 @@ export const a = (await import("inner")).x(); //// [other.d.ts] -// esm format file export interface Thing { } export declare const x: () => Thing; //// [index.d.ts] -// esm format file export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff index 92d3bf86a9..4d30f84cfc 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff @@ -1,15 +1,8 @@ --- old.nodeModulesExportsSourceTs(module=node16).js +++ new.nodeModulesExportsSourceTs(module=node16).js -@@= skipped -36, +36 lines =@@ - - - //// [other.d.ts] -+// esm format file - export interface Thing { - } +@@= skipped -41, +41 lines =@@ export declare const x: () => Thing; //// [index.d.ts] -+// esm format file export { x } from "./other.js"; +//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js index 40ad0b0219..be568de76d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js @@ -37,12 +37,10 @@ export const a = (await import("inner")).x(); //// [other.d.ts] -// esm format file export interface Thing { } export declare const x: () => Thing; //// [index.d.ts] -// esm format file export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff index 01e4bdcd4a..4591a406a6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff @@ -1,15 +1,8 @@ --- old.nodeModulesExportsSourceTs(module=node18).js +++ new.nodeModulesExportsSourceTs(module=node18).js -@@= skipped -36, +36 lines =@@ - - - //// [other.d.ts] -+// esm format file - export interface Thing { - } +@@= skipped -41, +41 lines =@@ export declare const x: () => Thing; //// [index.d.ts] -+// esm format file export { x } from "./other.js"; +//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js index 40ad0b0219..be568de76d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js @@ -37,12 +37,10 @@ export const a = (await import("inner")).x(); //// [other.d.ts] -// esm format file export interface Thing { } export declare const x: () => Thing; //// [index.d.ts] -// esm format file export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff index b5a19f47ad..a122a5bc12 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff @@ -1,15 +1,8 @@ --- old.nodeModulesExportsSourceTs(module=nodenext).js +++ new.nodeModulesExportsSourceTs(module=nodenext).js -@@= skipped -36, +36 lines =@@ - - - //// [other.d.ts] -+// esm format file - export interface Thing { - } +@@= skipped -41, +41 lines =@@ export declare const x: () => Thing; //// [index.d.ts] -+// esm format file export { x } from "./other.js"; +//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js index 6971e6bd1f..4cca6af5a5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js @@ -135,50 +135,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.ts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.ts] -// esm format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.ts] -// esm format file declare const x: () => T; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js.diff deleted file mode 100644 index 09aa016855..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js.diff +++ /dev/null @@ -1,86 +0,0 @@ ---- old.nodeModulesForbidenSyntax(module=node16).js -+++ new.nodeModulesForbidenSyntax(module=node16).js -@@= skipped -134, +134 lines =@@ - - - //// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.ts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// esm format file - declare const x: () => T; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js index 6971e6bd1f..4cca6af5a5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js @@ -135,50 +135,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.ts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.ts] -// esm format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.ts] -// esm format file declare const x: () => T; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff deleted file mode 100644 index 2f8d7ce15b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff +++ /dev/null @@ -1,86 +0,0 @@ ---- old.nodeModulesForbidenSyntax(module=node18).js -+++ new.nodeModulesForbidenSyntax(module=node18).js -@@= skipped -134, +134 lines =@@ - - - //// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.ts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// esm format file - declare const x: () => T; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js index 6971e6bd1f..4cca6af5a5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js @@ -135,50 +135,38 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.ts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.ts] -// esm format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.mts] -// esm format file declare const x: () => T; export { x }; //// [index.d.cts] -// cjs format file declare const x: () => T; export { x }; //// [index.d.ts] -// esm format file declare const x: () => T; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js.diff deleted file mode 100644 index 9da15aabda..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js.diff +++ /dev/null @@ -1,86 +0,0 @@ ---- old.nodeModulesForbidenSyntax(module=nodenext).js -+++ new.nodeModulesForbidenSyntax(module=nodenext).js -@@= skipped -134, +134 lines =@@ - - - //// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.ts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.mts] --declare const x: () => T; --export { x }; --//// [index.d.cts] --declare const x: () => T; --export { x }; --//// [index.d.ts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.mts] -+// esm format file -+declare const x: () => T; -+export { x }; -+//// [index.d.cts] -+// cjs format file -+declare const x: () => T; -+export { x }; -+//// [index.d.ts] -+// esm format file - declare const x: () => T; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js index f6d7e91e77..3b196cd32c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js @@ -49,7 +49,6 @@ export { require, exports, Object }; //// [index.d.ts] -// cjs format file declare function require(): void; declare const exports: {}; declare class Object { @@ -57,7 +56,6 @@ declare class Object { export declare const __esModule = false; export { require, exports, Object }; //// [index.d.ts] -// esm format file declare function require(): void; declare const exports: {}; declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js.diff deleted file mode 100644 index cca2aa185f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.nodeModulesGeneratedNameCollisions(module=node16).js -+++ new.nodeModulesGeneratedNameCollisions(module=node16).js -@@= skipped -48, +48 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare function require(): void; - declare const exports: {}; - declare class Object { -@@= skipped -7, +8 lines =@@ - export declare const __esModule = false; - export { require, exports, Object }; - //// [index.d.ts] -+// esm format file - declare function require(): void; - declare const exports: {}; - declare class Object { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js index f6d7e91e77..3b196cd32c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js @@ -49,7 +49,6 @@ export { require, exports, Object }; //// [index.d.ts] -// cjs format file declare function require(): void; declare const exports: {}; declare class Object { @@ -57,7 +56,6 @@ declare class Object { export declare const __esModule = false; export { require, exports, Object }; //// [index.d.ts] -// esm format file declare function require(): void; declare const exports: {}; declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff deleted file mode 100644 index 77e75ace75..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.nodeModulesGeneratedNameCollisions(module=node18).js -+++ new.nodeModulesGeneratedNameCollisions(module=node18).js -@@= skipped -48, +48 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare function require(): void; - declare const exports: {}; - declare class Object { -@@= skipped -7, +8 lines =@@ - export declare const __esModule = false; - export { require, exports, Object }; - //// [index.d.ts] -+// esm format file - declare function require(): void; - declare const exports: {}; - declare class Object { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js index f6d7e91e77..3b196cd32c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js @@ -49,7 +49,6 @@ export { require, exports, Object }; //// [index.d.ts] -// cjs format file declare function require(): void; declare const exports: {}; declare class Object { @@ -57,7 +56,6 @@ declare class Object { export declare const __esModule = false; export { require, exports, Object }; //// [index.d.ts] -// esm format file declare function require(): void; declare const exports: {}; declare class Object { diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js.diff deleted file mode 100644 index fa90937fe6..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.nodeModulesGeneratedNameCollisions(module=nodenext).js -+++ new.nodeModulesGeneratedNameCollisions(module=nodenext).js -@@= skipped -48, +48 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare function require(): void; - declare const exports: {}; - declare class Object { -@@= skipped -7, +8 lines =@@ - export declare const __esModule = false; - export { require, exports, Object }; - //// [index.d.ts] -+// esm format file - declare function require(): void; - declare const exports: {}; - declare class Object { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node16).js index 9dc7d510ed..9d1ac26649 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node16).js @@ -35,9 +35,7 @@ require("pkg"); //// [index.d.ts] -// incorrect mode import type { RequireInterface } from "pkg"; -// not type-only import { ImportInterface } from "pkg" with { "resolution-mode": "import" }; export interface LocalInterface extends RequireInterface, ImportInterface { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node16).js.diff index efeec602e6..d8de5a5e71 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node16).js.diff @@ -8,10 +8,4 @@ +require("pkg"); - //// [index.d.ts] -+// incorrect mode - import type { RequireInterface } from "pkg"; -+// not type-only - import { ImportInterface } from "pkg" with { "resolution-mode": "import" }; - export interface LocalInterface extends RequireInterface, ImportInterface { - } \ No newline at end of file + //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node18).js index 9dc7d510ed..9d1ac26649 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node18).js @@ -35,9 +35,7 @@ require("pkg"); //// [index.d.ts] -// incorrect mode import type { RequireInterface } from "pkg"; -// not type-only import { ImportInterface } from "pkg" with { "resolution-mode": "import" }; export interface LocalInterface extends RequireInterface, ImportInterface { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node18).js.diff index 0ea15b8f6b..b59663c102 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=node18).js.diff @@ -8,10 +8,4 @@ +require("pkg"); - //// [index.d.ts] -+// incorrect mode - import type { RequireInterface } from "pkg"; -+// not type-only - import { ImportInterface } from "pkg" with { "resolution-mode": "import" }; - export interface LocalInterface extends RequireInterface, ImportInterface { - } \ No newline at end of file + //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=nodenext).js index 9dc7d510ed..9d1ac26649 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=nodenext).js @@ -35,9 +35,7 @@ require("pkg"); //// [index.d.ts] -// incorrect mode import type { RequireInterface } from "pkg"; -// not type-only import { ImportInterface } from "pkg" with { "resolution-mode": "import" }; export interface LocalInterface extends RequireInterface, ImportInterface { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=nodenext).js.diff index 28db179cf8..f07a514c7e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmitErrors(module=nodenext).js.diff @@ -8,10 +8,4 @@ +require("pkg"); - //// [index.d.ts] -+// incorrect mode - import type { RequireInterface } from "pkg"; -+// not type-only - import { ImportInterface } from "pkg" with { "resolution-mode": "import" }; - export interface LocalInterface extends RequireInterface, ImportInterface { - } \ No newline at end of file + //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node16).js index e8308c808a..63b333fded 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node16).js @@ -130,17 +130,14 @@ export type LocalInterface = import("pkg", { with: { "resolution-mode": "foobar" export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -// missing with: export type LocalInterface = import("pkg", { with: {} }); export declare const a: any; export declare const b: any; //// [other2.d.ts] -// wrong attribute key export type LocalInterface = import("pkg", { with: { "bad": "require" } }).RequireInterface & import("pkg", { with: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; export declare const b: any; //// [other3.d.ts] -// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; }]; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node16).js.diff index 73d8b0a39c..cf12cb68c7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node16).js.diff @@ -8,25 +8,21 @@ +export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -+// missing with: export type LocalInterface = import("pkg", { with: {} }); -export declare const a: import("pkg", { with: {} }); -export declare const b: import("pkg", { with: {} }); +export declare const a: any; +export declare const b: any; //// [other2.d.ts] -+// wrong attribute key export type LocalInterface = import("pkg", { with: { "bad": "require" } }).RequireInterface & import("pkg", { with: { "bad": "import" } }).ImportInterface; -export declare const a: import("pkg", { with: { "bad": "require" } }).RequireInterface; -export declare const b: import("pkg", { with: { "bad": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: any; //// [other3.d.ts] -+// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; - }]; -@@= skipped -18, +21 lines =@@ +@@= skipped -18, +18 lines =@@ export declare const b: any; //// [other4.d.ts] export type LocalInterface = import("pkg", { with: {} }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node18).js index e8308c808a..63b333fded 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node18).js @@ -130,17 +130,14 @@ export type LocalInterface = import("pkg", { with: { "resolution-mode": "foobar" export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -// missing with: export type LocalInterface = import("pkg", { with: {} }); export declare const a: any; export declare const b: any; //// [other2.d.ts] -// wrong attribute key export type LocalInterface = import("pkg", { with: { "bad": "require" } }).RequireInterface & import("pkg", { with: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; export declare const b: any; //// [other3.d.ts] -// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; }]; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node18).js.diff index 1ec7d4cb31..2a74d95227 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=node18).js.diff @@ -8,25 +8,21 @@ +export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -+// missing with: export type LocalInterface = import("pkg", { with: {} }); -export declare const a: import("pkg", { with: {} }); -export declare const b: import("pkg", { with: {} }); +export declare const a: any; +export declare const b: any; //// [other2.d.ts] -+// wrong attribute key export type LocalInterface = import("pkg", { with: { "bad": "require" } }).RequireInterface & import("pkg", { with: { "bad": "import" } }).ImportInterface; -export declare const a: import("pkg", { with: { "bad": "require" } }).RequireInterface; -export declare const b: import("pkg", { with: { "bad": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: any; //// [other3.d.ts] -+// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; - }]; -@@= skipped -18, +21 lines =@@ +@@= skipped -18, +18 lines =@@ export declare const b: any; //// [other4.d.ts] export type LocalInterface = import("pkg", { with: {} }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=nodenext).js index e8308c808a..63b333fded 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=nodenext).js @@ -130,17 +130,14 @@ export type LocalInterface = import("pkg", { with: { "resolution-mode": "foobar" export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -// missing with: export type LocalInterface = import("pkg", { with: {} }); export declare const a: any; export declare const b: any; //// [other2.d.ts] -// wrong attribute key export type LocalInterface = import("pkg", { with: { "bad": "require" } }).RequireInterface & import("pkg", { with: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; export declare const b: any; //// [other3.d.ts] -// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; }]; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=nodenext).js.diff index 89f55162e5..b656e3fd63 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesTypeModeDeclarationEmitErrors(module=nodenext).js.diff @@ -8,25 +8,21 @@ +export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -+// missing with: export type LocalInterface = import("pkg", { with: {} }); -export declare const a: import("pkg", { with: {} }); -export declare const b: import("pkg", { with: {} }); +export declare const a: any; +export declare const b: any; //// [other2.d.ts] -+// wrong attribute key export type LocalInterface = import("pkg", { with: { "bad": "require" } }).RequireInterface & import("pkg", { with: { "bad": "import" } }).ImportInterface; -export declare const a: import("pkg", { with: { "bad": "require" } }).RequireInterface; -export declare const b: import("pkg", { with: { "bad": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: any; //// [other3.d.ts] -+// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; - }]; -@@= skipped -18, +21 lines =@@ +@@= skipped -18, +18 lines =@@ export declare const b: any; //// [other4.d.ts] export type LocalInterface = import("pkg", { with: {} }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js index 11894ac648..c058d00e21 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js @@ -40,10 +40,8 @@ export * as fs from "fs"; //// [index.d.ts] -// cjs format file export * from "fs"; export * as fs from "fs"; //// [index.d.ts] -// esm format file export * from "fs"; export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js.diff deleted file mode 100644 index 5bf9ccd23d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesImportHelpersCollisions2(module=node16).js -+++ new.nodeModulesImportHelpersCollisions2(module=node16).js -@@= skipped -39, +39 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export * from "fs"; - export * as fs from "fs"; - //// [index.d.ts] -+// esm format file - export * from "fs"; - export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js index 11894ac648..c058d00e21 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js @@ -40,10 +40,8 @@ export * as fs from "fs"; //// [index.d.ts] -// cjs format file export * from "fs"; export * as fs from "fs"; //// [index.d.ts] -// esm format file export * from "fs"; export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff deleted file mode 100644 index dcb9d3892e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesImportHelpersCollisions2(module=node18).js -+++ new.nodeModulesImportHelpersCollisions2(module=node18).js -@@= skipped -39, +39 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export * from "fs"; - export * as fs from "fs"; - //// [index.d.ts] -+// esm format file - export * from "fs"; - export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js index 11894ac648..c058d00e21 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js @@ -40,10 +40,8 @@ export * as fs from "fs"; //// [index.d.ts] -// cjs format file export * from "fs"; export * as fs from "fs"; //// [index.d.ts] -// esm format file export * from "fs"; export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js.diff deleted file mode 100644 index 8ad883959c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesImportHelpersCollisions2(module=nodenext).js -+++ new.nodeModulesImportHelpersCollisions2(module=nodenext).js -@@= skipped -39, +39 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export * from "fs"; - export * as fs from "fs"; - //// [index.d.ts] -+// esm format file - export * from "fs"; - export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js index 8a5f661da0..f0c393ef76 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js @@ -37,8 +37,6 @@ export { default } from "fs"; //// [index.d.ts] -// cjs format file export { default } from "fs"; //// [index.d.ts] -// esm format file export { default } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js.diff index 46175474c9..ad229d0497 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js.diff @@ -11,13 +11,4 @@ +const fs_1 = require("fs"); Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); //// [index.js] - // esm format file -@@= skipped -10, +10 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export { default } from "fs"; - //// [index.d.ts] -+// esm format file - export { default } from "fs"; \ No newline at end of file + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js index 8a5f661da0..f0c393ef76 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js @@ -37,8 +37,6 @@ export { default } from "fs"; //// [index.d.ts] -// cjs format file export { default } from "fs"; //// [index.d.ts] -// esm format file export { default } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff index 8da158eeac..291ef074b7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff @@ -11,13 +11,4 @@ +const fs_1 = require("fs"); Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); //// [index.js] - // esm format file -@@= skipped -10, +10 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export { default } from "fs"; - //// [index.d.ts] -+// esm format file - export { default } from "fs"; \ No newline at end of file + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js index 8a5f661da0..f0c393ef76 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js @@ -37,8 +37,6 @@ export { default } from "fs"; //// [index.d.ts] -// cjs format file export { default } from "fs"; //// [index.d.ts] -// esm format file export { default } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js.diff index 6df39f19ec..f0ba5b138d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js.diff @@ -11,13 +11,4 @@ +const fs_1 = require("fs"); Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); //// [index.js] - // esm format file -@@= skipped -10, +10 lines =@@ - - - //// [index.d.ts] -+// cjs format file - export { default } from "fs"; - //// [index.d.ts] -+// esm format file - export { default } from "fs"; \ No newline at end of file + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js index 1a527e246c..aa962a90bd 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js @@ -33,10 +33,8 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: string; export { x }; //// [index.d.ts] -// esm format file declare const x: string; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js.diff deleted file mode 100644 index f1de6492ac..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesImportMeta(module=node16).js -+++ new.nodeModulesImportMeta(module=node16).js -@@= skipped -32, +32 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const x: string; - export { x }; - //// [index.d.ts] -+// esm format file - declare const x: string; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js index 1a527e246c..aa962a90bd 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js @@ -33,10 +33,8 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: string; export { x }; //// [index.d.ts] -// esm format file declare const x: string; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff deleted file mode 100644 index 4fcb37cf58..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesImportMeta(module=node18).js -+++ new.nodeModulesImportMeta(module=node18).js -@@= skipped -32, +32 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const x: string; - export { x }; - //// [index.d.ts] -+// esm format file - declare const x: string; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js index 1a527e246c..aa962a90bd 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js @@ -33,10 +33,8 @@ export { x }; //// [index.d.ts] -// cjs format file declare const x: string; export { x }; //// [index.d.ts] -// esm format file declare const x: string; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js.diff deleted file mode 100644 index 7777415a44..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesImportMeta(module=nodenext).js -+++ new.nodeModulesImportMeta(module=nodenext).js -@@= skipped -32, +32 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const x: string; - export { x }; - //// [index.d.ts] -+// esm format file - declare const x: string; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node16).js index 37ccbc9d6d..d036a9af60 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node16).js @@ -35,9 +35,7 @@ require("pkg"); //// [index.d.ts] -// incorrect mode import type { RequireInterface } from "pkg"; -// not type-only import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; export interface LocalInterface extends RequireInterface, ImportInterface { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node16).js.diff index 9283a25e00..fe0234b6b8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node16).js.diff @@ -8,10 +8,4 @@ +require("pkg"); - //// [index.d.ts] -+// incorrect mode - import type { RequireInterface } from "pkg"; -+// not type-only - import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; - export interface LocalInterface extends RequireInterface, ImportInterface { - } \ No newline at end of file + //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node18).js index 37ccbc9d6d..d036a9af60 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node18).js @@ -35,9 +35,7 @@ require("pkg"); //// [index.d.ts] -// incorrect mode import type { RequireInterface } from "pkg"; -// not type-only import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; export interface LocalInterface extends RequireInterface, ImportInterface { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node18).js.diff index f50fe14b9f..28700d7fd1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=node18).js.diff @@ -8,10 +8,4 @@ +require("pkg"); - //// [index.d.ts] -+// incorrect mode - import type { RequireInterface } from "pkg"; -+// not type-only - import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; - export interface LocalInterface extends RequireInterface, ImportInterface { - } \ No newline at end of file + //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js index 37ccbc9d6d..d036a9af60 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js @@ -35,9 +35,7 @@ require("pkg"); //// [index.d.ts] -// incorrect mode import type { RequireInterface } from "pkg"; -// not type-only import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; export interface LocalInterface extends RequireInterface, ImportInterface { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js.diff index b1a94eeae7..4b93d9af95 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js.diff @@ -8,10 +8,4 @@ +require("pkg"); - //// [index.d.ts] -+// incorrect mode - import type { RequireInterface } from "pkg"; -+// not type-only - import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; - export interface LocalInterface extends RequireInterface, ImportInterface { - } \ No newline at end of file + //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js index c18dc767f6..061f57d2e6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js @@ -124,17 +124,14 @@ export type LocalInterface = import("pkg", { assert: { "resolution-mode": "fooba export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -// missing assert: export type LocalInterface = import("pkg", { with: {} }); export declare const a: any; export declare const b: any; //// [other2.d.ts] -// wrong assertion key export type LocalInterface = import("pkg", { assert: { "bad": "require" } }).RequireInterface & import("pkg", { assert: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; export declare const b: any; //// [other3.d.ts] -// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; }]; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js.diff index 7da7d1c2a9..0599c823f5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js.diff @@ -1,26 +1,17 @@ --- old.nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js +++ new.nodeModulesImportTypeModeDeclarationEmitErrors1(module=node16).js -@@= skipped -123, +123 lines =@@ - export declare const a: import("pkg").RequireInterface; +@@= skipped -124, +124 lines =@@ export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -+// missing assert: export type LocalInterface = import("pkg", { with: {} }); -export declare const a: import("pkg", { with: {} }); -export declare const b: import("pkg", { with: {} }); +export declare const a: any; +export declare const b: any; //// [other2.d.ts] -+// wrong assertion key export type LocalInterface = import("pkg", { assert: { "bad": "require" } }).RequireInterface & import("pkg", { assert: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; - export declare const b: any; - //// [other3.d.ts] -+// Array instead of object-y thing - export type LocalInterface = import("pkg", { with: {} })[{ - "resolution-mode": "require"; - }]; -@@= skipped -15, +18 lines =@@ +@@= skipped -14, +14 lines =@@ export declare const b: any; //// [other4.d.ts] export type LocalInterface = import("pkg", { with: {} }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js index c18dc767f6..061f57d2e6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js @@ -124,17 +124,14 @@ export type LocalInterface = import("pkg", { assert: { "resolution-mode": "fooba export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -// missing assert: export type LocalInterface = import("pkg", { with: {} }); export declare const a: any; export declare const b: any; //// [other2.d.ts] -// wrong assertion key export type LocalInterface = import("pkg", { assert: { "bad": "require" } }).RequireInterface & import("pkg", { assert: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; export declare const b: any; //// [other3.d.ts] -// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; }]; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js.diff index c1f5274063..7fc88b2c9e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js.diff @@ -1,26 +1,17 @@ --- old.nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js +++ new.nodeModulesImportTypeModeDeclarationEmitErrors1(module=node18).js -@@= skipped -123, +123 lines =@@ - export declare const a: import("pkg").RequireInterface; +@@= skipped -124, +124 lines =@@ export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -+// missing assert: export type LocalInterface = import("pkg", { with: {} }); -export declare const a: import("pkg", { with: {} }); -export declare const b: import("pkg", { with: {} }); +export declare const a: any; +export declare const b: any; //// [other2.d.ts] -+// wrong assertion key export type LocalInterface = import("pkg", { assert: { "bad": "require" } }).RequireInterface & import("pkg", { assert: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; - export declare const b: any; - //// [other3.d.ts] -+// Array instead of object-y thing - export type LocalInterface = import("pkg", { with: {} })[{ - "resolution-mode": "require"; - }]; -@@= skipped -15, +18 lines =@@ +@@= skipped -14, +14 lines =@@ export declare const b: any; //// [other4.d.ts] export type LocalInterface = import("pkg", { with: {} }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js index c18dc767f6..061f57d2e6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js @@ -124,17 +124,14 @@ export type LocalInterface = import("pkg", { assert: { "resolution-mode": "fooba export declare const a: import("pkg").RequireInterface; export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -// missing assert: export type LocalInterface = import("pkg", { with: {} }); export declare const a: any; export declare const b: any; //// [other2.d.ts] -// wrong assertion key export type LocalInterface = import("pkg", { assert: { "bad": "require" } }).RequireInterface & import("pkg", { assert: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; export declare const b: any; //// [other3.d.ts] -// Array instead of object-y thing export type LocalInterface = import("pkg", { with: {} })[{ "resolution-mode": "require"; }]; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js.diff index bcf01af0be..042b94d8b9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js.diff @@ -1,26 +1,17 @@ --- old.nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js +++ new.nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js -@@= skipped -123, +123 lines =@@ - export declare const a: import("pkg").RequireInterface; +@@= skipped -124, +124 lines =@@ export declare const b: import("pkg", { with: { "resolution-mode": "import" } }).ImportInterface; //// [other.d.ts] -+// missing assert: export type LocalInterface = import("pkg", { with: {} }); -export declare const a: import("pkg", { with: {} }); -export declare const b: import("pkg", { with: {} }); +export declare const a: any; +export declare const b: any; //// [other2.d.ts] -+// wrong assertion key export type LocalInterface = import("pkg", { assert: { "bad": "require" } }).RequireInterface & import("pkg", { assert: { "bad": "import" } }).ImportInterface; export declare const a: import("pkg").RequireInterface; - export declare const b: any; - //// [other3.d.ts] -+// Array instead of object-y thing - export type LocalInterface = import("pkg", { with: {} })[{ - "resolution-mode": "require"; - }]; -@@= skipped -15, +18 lines =@@ +@@= skipped -14, +14 lines =@@ export declare const b: any; //// [other4.d.ts] export type LocalInterface = import("pkg", { with: {} }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js index 322d38627a..8d33777f0c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js @@ -37,10 +37,8 @@ for await (const y of []) { } //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js.diff deleted file mode 100644 index 81589deef1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesTopLevelAwait(module=node16).js -+++ new.nodeModulesTopLevelAwait(module=node16).js -@@= skipped -36, +36 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const x = 1; - export { x }; - //// [index.d.ts] -+// esm format file - declare const x = 1; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js index 322d38627a..8d33777f0c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js @@ -37,10 +37,8 @@ for await (const y of []) { } //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff deleted file mode 100644 index 0f17fbb0a0..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesTopLevelAwait(module=node18).js -+++ new.nodeModulesTopLevelAwait(module=node18).js -@@= skipped -36, +36 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const x = 1; - export { x }; - //// [index.d.ts] -+// esm format file - declare const x = 1; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js index 322d38627a..8d33777f0c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js @@ -37,10 +37,8 @@ for await (const y of []) { } //// [index.d.ts] -// cjs format file declare const x = 1; export { x }; //// [index.d.ts] -// esm format file declare const x = 1; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js.diff deleted file mode 100644 index f894ad5ffe..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.nodeModulesTopLevelAwait(module=nodenext).js -+++ new.nodeModulesTopLevelAwait(module=nodenext).js -@@= skipped -36, +36 lines =@@ - - - //// [index.d.ts] -+// cjs format file - declare const x = 1; - export { x }; - //// [index.d.ts] -+// esm format file - declare const x = 1; - export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.js b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.js index 437de8fac0..9fc3f29fb3 100644 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.js +++ b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.js @@ -25,7 +25,6 @@ fooProps.barProp; //// [nonPrimitiveAndEmptyObject.d.ts] -// Repro from #49480 export interface BarProps { barProp?: string; } diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.js.diff b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.js.diff index aff1572966..37c126bde1 100644 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.js.diff +++ b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAndEmptyObject.js.diff @@ -7,11 +7,4 @@ -// Repro from #49480 Object.defineProperty(exports, "__esModule", { value: true }); const { fooProps = {} } = foo; - fooProps.barProp; - - - //// [nonPrimitiveAndEmptyObject.d.ts] -+// Repro from #49480 - export interface BarProps { - barProp?: string; - } \ No newline at end of file + fooProps.barProp; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAsProperty.js b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAsProperty.js index f43b33d51d..9a9ff081b2 100644 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAsProperty.js +++ b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAsProperty.js @@ -20,4 +20,4 @@ interface WithNonPrimitive { foo: object; } declare var a: WithNonPrimitive; -declare var b: WithNonPrimitive; // expect error +declare var b: WithNonPrimitive; diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAsProperty.js.diff b/testdata/baselines/reference/submodule/conformance/nonPrimitiveAsProperty.js.diff deleted file mode 100644 index 0297377343..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveAsProperty.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.nonPrimitiveAsProperty.js -+++ new.nonPrimitiveAsProperty.js -@@= skipped -19, +19 lines =@@ - foo: object; - } - declare var a: WithNonPrimitive; --declare var b: WithNonPrimitive; -+declare var b: WithNonPrimitive; // expect error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveInGeneric.js b/testdata/baselines/reference/submodule/conformance/nonPrimitiveInGeneric.js index d10ddd61a3..9cc6c93b2c 100644 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveInGeneric.js +++ b/testdata/baselines/reference/submodule/conformance/nonPrimitiveInGeneric.js @@ -86,10 +86,10 @@ declare function bound2(): void; declare function bound3(t: T): void; interface Proxy { } -declare var x: Proxy; // error -declare var y: Proxy; // ok -declare var z: Proxy; // ok +declare var x: Proxy; +declare var y: Proxy; +declare var z: Proxy; interface Blah { foo: number; } -declare var u: Proxy; // ok +declare var u: Proxy; diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveInGeneric.js.diff b/testdata/baselines/reference/submodule/conformance/nonPrimitiveInGeneric.js.diff deleted file mode 100644 index e524f77ddb..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveInGeneric.js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.nonPrimitiveInGeneric.js -+++ new.nonPrimitiveInGeneric.js -@@= skipped -85, +85 lines =@@ - declare function bound3(t: T): void; - interface Proxy { - } --declare var x: Proxy; --declare var y: Proxy; --declare var z: Proxy; -+declare var x: Proxy; // error -+declare var y: Proxy; // ok -+declare var z: Proxy; // ok - interface Blah { - foo: number; - } --declare var u: Proxy; -+declare var u: Proxy; // ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveUnionIntersection.js b/testdata/baselines/reference/submodule/conformance/nonPrimitiveUnionIntersection.js index b3088f78a6..df27babfbe 100644 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveUnionIntersection.js +++ b/testdata/baselines/reference/submodule/conformance/nonPrimitiveUnionIntersection.js @@ -22,10 +22,10 @@ const bar = { bar: 'bar' }; // error //// [nonPrimitiveUnionIntersection.d.ts] -declare var a: object & string; // error -declare var b: object | string; // ok -declare var c: object & {}; // error -declare const foo: object & {}; // ok +declare var a: object & string; +declare var b: object | string; +declare var c: object & {}; +declare const foo: object & {}; declare const bar: object & { err: string; -}; // error +}; diff --git a/testdata/baselines/reference/submodule/conformance/nonPrimitiveUnionIntersection.js.diff b/testdata/baselines/reference/submodule/conformance/nonPrimitiveUnionIntersection.js.diff deleted file mode 100644 index 08e9378a54..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nonPrimitiveUnionIntersection.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.nonPrimitiveUnionIntersection.js -+++ new.nonPrimitiveUnionIntersection.js -@@= skipped -21, +21 lines =@@ - - - //// [nonPrimitiveUnionIntersection.d.ts] --declare var a: object & string; --declare var b: object | string; --declare var c: object & {}; --declare const foo: object & {}; -+declare var a: object & string; // error -+declare var b: object | string; // ok -+declare var c: object & {}; // error -+declare const foo: object & {}; // ok - declare const bar: object & { - err: string; --}; -+}; // error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/numericStringLiteralTypes.js b/testdata/baselines/reference/submodule/conformance/numericStringLiteralTypes.js index 647bf7c811..fee2fee04f 100644 --- a/testdata/baselines/reference/submodule/conformance/numericStringLiteralTypes.js +++ b/testdata/baselines/reference/submodule/conformance/numericStringLiteralTypes.js @@ -56,15 +56,15 @@ f([container1, container2], (value1, value2) => { //// [numericStringLiteralTypes.d.ts] -type T0 = string & `${string}`; // string -type T1 = string & `${number}`; // `${number} -type T2 = string & `${bigint}`; // `${bigint} -type T3 = string & `${T}`; // `${T} -type T4 = string & `${Capitalize<`${T}`>}`; // `${Capitalize}` +type T0 = string & `${string}`; +type T1 = string & `${number}`; +type T2 = string & `${bigint}`; +type T3 = string & `${T}`; +type T4 = string & `${Capitalize<`${T}`>}`; declare function f1(a: boolean[], x: `${number}`): void; declare function f2(a: boolean[], x: number | `${number}`): void; -type T10 = boolean[][`${number}`]; // boolean -type T11 = boolean[][number | `${number}`]; // boolean +type T10 = boolean[][`${number}`]; +type T11 = boolean[][number | `${number}`]; type T20 = T; type T21 = { [K in keyof T]: T20; diff --git a/testdata/baselines/reference/submodule/conformance/numericStringLiteralTypes.js.diff b/testdata/baselines/reference/submodule/conformance/numericStringLiteralTypes.js.diff index 3046565526..77f96663fe 100644 --- a/testdata/baselines/reference/submodule/conformance/numericStringLiteralTypes.js.diff +++ b/testdata/baselines/reference/submodule/conformance/numericStringLiteralTypes.js.diff @@ -7,27 +7,4 @@ -"use strict"; function f1(a, x) { let s = a[x]; // boolean - } -@@= skipped -16, +15 lines =@@ - - - //// [numericStringLiteralTypes.d.ts] --type T0 = string & `${string}`; --type T1 = string & `${number}`; --type T2 = string & `${bigint}`; --type T3 = string & `${T}`; --type T4 = string & `${Capitalize<`${T}`>}`; -+type T0 = string & `${string}`; // string -+type T1 = string & `${number}`; // `${number} -+type T2 = string & `${bigint}`; // `${bigint} -+type T3 = string & `${T}`; // `${T} -+type T4 = string & `${Capitalize<`${T}`>}`; // `${Capitalize}` - declare function f1(a: boolean[], x: `${number}`): void; - declare function f2(a: boolean[], x: number | `${number}`): void; --type T10 = boolean[][`${number}`]; --type T11 = boolean[][number | `${number}`]; -+type T10 = boolean[][`${number}`]; // boolean -+type T11 = boolean[][number | `${number}`]; // boolean - type T20 = T; - type T21 = { - [K in keyof T]: T20; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/objectLiteralNormalization.js b/testdata/baselines/reference/submodule/conformance/objectLiteralNormalization.js index d84e8bb11b..5e9b81376c 100644 --- a/testdata/baselines/reference/submodule/conformance/objectLiteralNormalization.js +++ b/testdata/baselines/reference/submodule/conformance/objectLiteralNormalization.js @@ -103,7 +103,6 @@ let e4 = f({ a: 2 }, data); //// [objectLiteralNormalization.d.ts] -// Object literals in unions are normalized upon widening declare let a1: { a: number; b?: undefined; @@ -127,7 +126,6 @@ declare let a2: { b?: undefined; a?: undefined; }; -// Object literals containing spreads are not normalized declare let b1: { a: string; b: string; @@ -153,8 +151,6 @@ declare let b3: { c: string; z: number; }; -// Before widening {} acts like { [x: string]: undefined }, which is a -// subtype of types with all optional properties declare let opts: { foo?: string; bar?: string; @@ -184,7 +180,6 @@ declare let c4: { a: number; b: number; }; -// Normalization applies to nested properties declare let d1: { kind: string; pos: { @@ -213,7 +208,6 @@ declare let data: { b: "abc"; c: true; }; -// Object literals are inferred as a single normalized union type declare let e1: { a: number; b: number; diff --git a/testdata/baselines/reference/submodule/conformance/objectLiteralNormalization.js.diff b/testdata/baselines/reference/submodule/conformance/objectLiteralNormalization.js.diff index 3680df2e6d..a1e10a3e8f 100644 --- a/testdata/baselines/reference/submodule/conformance/objectLiteralNormalization.js.diff +++ b/testdata/baselines/reference/submodule/conformance/objectLiteralNormalization.js.diff @@ -8,31 +8,7 @@ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { -@@= skipped -51, +50 lines =@@ - - - //// [objectLiteralNormalization.d.ts] -+// Object literals in unions are normalized upon widening - declare let a1: { - a: number; - b?: undefined; -@@= skipped -23, +24 lines =@@ - b?: undefined; - a?: undefined; - }; -+// Object literals containing spreads are not normalized - declare let b1: { - a: string; - b: string; -@@= skipped -25, +26 lines =@@ - c: string; - z: number; - }; -+// Before widening {} acts like { [x: string]: undefined }, which is a -+// subtype of types with all optional properties - declare let opts: { - foo?: string; - bar?: string; +@@= skipped -105, +104 lines =@@ baz?: boolean; }; declare let c1: { @@ -52,20 +28,4 @@ + baz?: boolean | undefined; }; declare let c3: { - a: number; -@@= skipped -29, +31 lines =@@ - a: number; - b: number; - }; -+// Normalization applies to nested properties - declare let d1: { - kind: string; - pos: { -@@= skipped -28, +29 lines =@@ - b: "abc"; - c: true; - }; -+// Object literals are inferred as a single normalized union type - declare let e1: { - a: number; - b: number; \ No newline at end of file + a: number; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/optionalMethods.js b/testdata/baselines/reference/submodule/conformance/optionalMethods.js index 765b6fd046..2e15b334e8 100644 --- a/testdata/baselines/reference/submodule/conformance/optionalMethods.js +++ b/testdata/baselines/reference/submodule/conformance/optionalMethods.js @@ -124,7 +124,7 @@ declare class Bar { c?: number | undefined; constructor(d?: number | undefined, e?: number); f(): number; - g?(): number; // Body of optional method can be omitted + g?(): number; h?(): number; } declare function test2(x: Bar): void; diff --git a/testdata/baselines/reference/submodule/conformance/optionalMethods.js.diff b/testdata/baselines/reference/submodule/conformance/optionalMethods.js.diff index e239f412d4..8e5485bb02 100644 --- a/testdata/baselines/reference/submodule/conformance/optionalMethods.js.diff +++ b/testdata/baselines/reference/submodule/conformance/optionalMethods.js.diff @@ -30,13 +30,3 @@ + a = 1; f() { return 1; } } - -@@= skipped -26, +24 lines =@@ - c?: number | undefined; - constructor(d?: number | undefined, e?: number); - f(): number; -- g?(): number; -+ g?(): number; // Body of optional method can be omitted - h?(): number; - } - declare function test2(x: Bar): void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/optionalTupleElements1.js b/testdata/baselines/reference/submodule/conformance/optionalTupleElements1.js index d1712c4b55..b3d5a74cd8 100644 --- a/testdata/baselines/reference/submodule/conformance/optionalTupleElements1.js +++ b/testdata/baselines/reference/submodule/conformance/optionalTupleElements1.js @@ -89,7 +89,7 @@ type L1 = T1["length"]; type L2 = T2["length"]; type L3 = T3["length"]; type L4 = T4["length"]; -type T5 = [number, string?, boolean]; // Error +type T5 = [number, string?, boolean]; declare function f1(t1: T1, t2: T2, t3: T3, t4: T4): void; declare let t2: T2; declare let t3: T3; diff --git a/testdata/baselines/reference/submodule/conformance/optionalTupleElements1.js.diff b/testdata/baselines/reference/submodule/conformance/optionalTupleElements1.js.diff index bf33a193d9..f5a8e43133 100644 --- a/testdata/baselines/reference/submodule/conformance/optionalTupleElements1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/optionalTupleElements1.js.diff @@ -7,13 +7,4 @@ -"use strict"; function f1(t1, t2, t3, t4) { t1 = t1; - t1 = t2; // Error -@@= skipped -42, +41 lines =@@ - type L2 = T2["length"]; - type L3 = T3["length"]; - type L4 = T4["length"]; --type T5 = [number, string?, boolean]; -+type T5 = [number, string?, boolean]; // Error - declare function f1(t1: T1, t2: T2, t3: T3, t4: T4): void; - declare let t2: T2; - declare let t3: T3; \ No newline at end of file + t1 = t2; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/override2.js b/testdata/baselines/reference/submodule/conformance/override2.js index 705d8234df..c453901d79 100644 --- a/testdata/baselines/reference/submodule/conformance/override2.js +++ b/testdata/baselines/reference/submodule/conformance/override2.js @@ -55,10 +55,10 @@ declare abstract class AB { declare abstract class AD1 extends AB { } declare abstract class AD2 extends AB { - abstract foo(v: ''): void; // need override? + abstract foo(v: ''): void; } declare abstract class AD3 extends AB { - foo(v: ''): void; // need override? + foo(v: ''): void; abstract bar(): void; baz(): void; } diff --git a/testdata/baselines/reference/submodule/conformance/override2.js.diff b/testdata/baselines/reference/submodule/conformance/override2.js.diff deleted file mode 100644 index b9e7ae23ae..0000000000 --- a/testdata/baselines/reference/submodule/conformance/override2.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.override2.js -+++ new.override2.js -@@= skipped -54, +54 lines =@@ - declare abstract class AD1 extends AB { - } - declare abstract class AD2 extends AB { -- abstract foo(v: ''): void; -+ abstract foo(v: ''): void; // need override? - } - declare abstract class AD3 extends AB { -- foo(v: ''): void; -+ foo(v: ''): void; // need override? - abstract bar(): void; - baz(): void; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples.js b/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples.js index 6bc84d3e30..4452ca285a 100644 --- a/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples.js +++ b/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples.js @@ -70,9 +70,9 @@ type T12 = readonly string[]; type T13 = ReadonlyArray; type T20 = [number, number]; type T21 = readonly [number, number]; -type T30 = readonly string; // Error -type T31 = readonly T; // Error -type T32 = readonly (readonly string[]); // Error -type T33 = readonly Array; // Error +type T30 = readonly string; +type T31 = readonly T; +type T32 = readonly (readonly string[]); +type T33 = readonly Array; declare function f1(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]): void; declare var v: readonly [number, number, ...number[]]; diff --git a/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples.js.diff b/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples.js.diff index e617f7d5ec..31b94cceea 100644 --- a/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples.js.diff +++ b/testdata/baselines/reference/submodule/conformance/readonlyArraysAndTuples.js.diff @@ -8,17 +8,12 @@ function f1(ma, ra, mt, rt) { ma = ra; // Error ma = mt; -@@= skipped -31, +30 lines =@@ - type T13 = ReadonlyArray; - type T20 = [number, number]; +@@= skipped -33, +32 lines =@@ type T21 = readonly [number, number]; --type T30 = readonly string; --type T31 = readonly T; + type T30 = readonly string; + type T31 = readonly T; -type T32 = readonly readonly string[]; --type T33 = readonly Array; -+type T30 = readonly string; // Error -+type T31 = readonly T; // Error -+type T32 = readonly (readonly string[]); // Error -+type T33 = readonly Array; // Error ++type T32 = readonly (readonly string[]); + type T33 = readonly Array; declare function f1(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]): void; declare var v: readonly [number, number, ...number[]]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/recursiveMappedTypes.js b/testdata/baselines/reference/submodule/conformance/recursiveMappedTypes.js index 97b5985de2..11ab3176df 100644 --- a/testdata/baselines/reference/submodule/conformance/recursiveMappedTypes.js +++ b/testdata/baselines/reference/submodule/conformance/recursiveMappedTypes.js @@ -105,11 +105,9 @@ x.type; //// [recursiveMappedTypes.d.ts] -// Repro from #27881 export type Circular = { [P in keyof T]: Circular; }; -// Repro from #29992 type NonOptionalKeys = { [P in keyof T]: undefined extends T[P] ? never : P; }[keyof T]; @@ -120,10 +118,9 @@ export interface ListWidget { "type": "list"; "minimum_count": number; "maximum_count": number; - "collapsable"?: boolean; //default to false, means all expanded + "collapsable"?: boolean; "each": Child; } -// Repros from #41790 export type TV = T[K] extends Record ? E : never; export type ObjectOrArray = T[] | Record | T[]>; export type ThemeValue = ThemeType[K] extends TVal[] ? number : ThemeType[K] extends Record ? E : ThemeType[K] extends ObjectOrArray ? F : never; diff --git a/testdata/baselines/reference/submodule/conformance/recursiveMappedTypes.js.diff b/testdata/baselines/reference/submodule/conformance/recursiveMappedTypes.js.diff index f3a3b2026d..31d84e94fc 100644 --- a/testdata/baselines/reference/submodule/conformance/recursiveMappedTypes.js.diff +++ b/testdata/baselines/reference/submodule/conformance/recursiveMappedTypes.js.diff @@ -7,28 +7,4 @@ -// Recursive mapped types simply appear empty Object.defineProperty(exports, "__esModule", { value: true }); function foo(arg) { - return arg; -@@= skipped -10, +9 lines =@@ - - - //// [recursiveMappedTypes.d.ts] -+// Repro from #27881 - export type Circular = { - [P in keyof T]: Circular; - }; -+// Repro from #29992 - type NonOptionalKeys = { - [P in keyof T]: undefined extends T[P] ? never : P; - }[keyof T]; -@@= skipped -13, +15 lines =@@ - "type": "list"; - "minimum_count": number; - "maximum_count": number; -- "collapsable"?: boolean; -+ "collapsable"?: boolean; //default to false, means all expanded - "each": Child; - } -+// Repros from #41790 - export type TV = T[K] extends Record ? E : never; - export type ObjectOrArray = T[] | Record | T[]>; - export type ThemeValue = ThemeType[K] extends TVal[] ? number : ThemeType[K] extends Record ? E : ThemeType[K] extends ObjectOrArray ? F : never; \ No newline at end of file + return arg; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences1.js b/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences1.js index 623322fa98..b3b7058e4b 100644 --- a/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences1.js +++ b/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences1.js @@ -228,7 +228,7 @@ declare const b10: Box1; declare const b11: Box1; declare const b12: Box1; type Box2 = Box; -declare const b20: Box2; // Error +declare const b20: Box2; declare const b21: Box2; declare const b22: Box2; type RecArray = Array>; @@ -247,13 +247,12 @@ type ValueOrArray1 = T | ValueOrArray1[]; type ValueOrArray2 = T | ValueOrArray2[]; declare function foo1(a: ValueOrArray1): T; declare let ra1: ValueOrArray2; -declare let x1: string; // Boom! +declare let x1: string; type NumberOrArray1 = T | ValueOrArray1[]; type NumberOrArray2 = T | ValueOrArray2[]; declare function foo2(a: ValueOrArray1): T; declare let ra2: ValueOrArray2; -declare let x2: string; // Boom! -// Repro from #33617 (errors are expected) +declare let x2: string; type Tree = [HTMLHeadingElement, Tree][]; declare function parse(node: Tree, index?: number[]): HTMLUListElement; declare function cons(hs: HTMLHeadingElement[]): Tree; diff --git a/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences1.js.diff b/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences1.js.diff index 9487225418..9fd34c28f6 100644 --- a/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/recursiveTypeReferences1.js.diff @@ -7,29 +7,4 @@ -"use strict"; const a0 = 1; const a1 = [1, [2, 3], [4, [5, [6, 7]]]]; - const hypertextNode = ["div", { id: "parent" }, -@@= skipped -96, +95 lines =@@ - declare const b11: Box1; - declare const b12: Box1; - type Box2 = Box; --declare const b20: Box2; -+declare const b20: Box2; // Error - declare const b21: Box2; - declare const b22: Box2; - type RecArray = Array>; -@@= skipped -19, +19 lines =@@ - type ValueOrArray2 = T | ValueOrArray2[]; - declare function foo1(a: ValueOrArray1): T; - declare let ra1: ValueOrArray2; --declare let x1: string; -+declare let x1: string; // Boom! - type NumberOrArray1 = T | ValueOrArray1[]; - type NumberOrArray2 = T | ValueOrArray2[]; - declare function foo2(a: ValueOrArray1): T; - declare let ra2: ValueOrArray2; --declare let x2: string; -+declare let x2: string; // Boom! -+// Repro from #33617 (errors are expected) - type Tree = [HTMLHeadingElement, Tree][]; - declare function parse(node: Tree, index?: number[]): HTMLUListElement; - declare function cons(hs: HTMLHeadingElement[]): Tree; \ No newline at end of file + const hypertextNode = ["div", { id: "parent" }, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=bundler).js b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=bundler).js index 5984a007dd..961512bfab 100644 --- a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=bundler).js +++ b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=bundler).js @@ -55,7 +55,6 @@ import type { x as Require } from "foo" assert { "resolution-mode": "require" }; type _Default = typeof Default; type _Import = typeof Import; type _Require = typeof Require; -// resolution-mode does not enforce file extension in `bundler`, just sets conditions import type { x as ImportRelative } from "./other" assert { "resolution-mode": "import" }; import type { x as RequireRelative } from "./other" assert { "resolution-mode": "require" }; type _ImportRelative = typeof ImportRelative; diff --git a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=bundler).js.diff b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=bundler).js.diff deleted file mode 100644 index 6ca14297a2..0000000000 --- a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=bundler).js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.resolutionModeTypeOnlyImport1(moduleresolution=bundler).js -+++ new.resolutionModeTypeOnlyImport1(moduleresolution=bundler).js -@@= skipped -54, +54 lines =@@ - type _Default = typeof Default; - type _Import = typeof Import; - type _Require = typeof Require; -+// resolution-mode does not enforce file extension in `bundler`, just sets conditions - import type { x as ImportRelative } from "./other" assert { "resolution-mode": "import" }; - import type { x as RequireRelative } from "./other" assert { "resolution-mode": "require" }; - type _ImportRelative = typeof ImportRelative; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=classic).js b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=classic).js index 5984a007dd..961512bfab 100644 --- a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=classic).js +++ b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=classic).js @@ -55,7 +55,6 @@ import type { x as Require } from "foo" assert { "resolution-mode": "require" }; type _Default = typeof Default; type _Import = typeof Import; type _Require = typeof Require; -// resolution-mode does not enforce file extension in `bundler`, just sets conditions import type { x as ImportRelative } from "./other" assert { "resolution-mode": "import" }; import type { x as RequireRelative } from "./other" assert { "resolution-mode": "require" }; type _ImportRelative = typeof ImportRelative; diff --git a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=classic).js.diff b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=classic).js.diff deleted file mode 100644 index 6c5a2b44fd..0000000000 --- a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=classic).js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.resolutionModeTypeOnlyImport1(moduleresolution=classic).js -+++ new.resolutionModeTypeOnlyImport1(moduleresolution=classic).js -@@= skipped -54, +54 lines =@@ - type _Default = typeof Default; - type _Import = typeof Import; - type _Require = typeof Require; -+// resolution-mode does not enforce file extension in `bundler`, just sets conditions - import type { x as ImportRelative } from "./other" assert { "resolution-mode": "import" }; - import type { x as RequireRelative } from "./other" assert { "resolution-mode": "require" }; - type _ImportRelative = typeof ImportRelative; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=node10).js b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=node10).js index 5984a007dd..961512bfab 100644 --- a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=node10).js +++ b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=node10).js @@ -55,7 +55,6 @@ import type { x as Require } from "foo" assert { "resolution-mode": "require" }; type _Default = typeof Default; type _Import = typeof Import; type _Require = typeof Require; -// resolution-mode does not enforce file extension in `bundler`, just sets conditions import type { x as ImportRelative } from "./other" assert { "resolution-mode": "import" }; import type { x as RequireRelative } from "./other" assert { "resolution-mode": "require" }; type _ImportRelative = typeof ImportRelative; diff --git a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=node10).js.diff b/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=node10).js.diff deleted file mode 100644 index 9864cf9273..0000000000 --- a/testdata/baselines/reference/submodule/conformance/resolutionModeTypeOnlyImport1(moduleresolution=node10).js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.resolutionModeTypeOnlyImport1(moduleresolution=node10).js -+++ new.resolutionModeTypeOnlyImport1(moduleresolution=node10).js -@@= skipped -54, +54 lines =@@ - type _Default = typeof Default; - type _Import = typeof Import; - type _Require = typeof Require; -+// resolution-mode does not enforce file extension in `bundler`, just sets conditions - import type { x as ImportRelative } from "./other" assert { "resolution-mode": "import" }; - import type { x as RequireRelative } from "./other" assert { "resolution-mode": "require" }; - type _ImportRelative = typeof ImportRelative; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/restTupleElements1.js b/testdata/baselines/reference/submodule/conformance/restTupleElements1.js index 510d8cc6cf..dae75d0b14 100644 --- a/testdata/baselines/reference/submodule/conformance/restTupleElements1.js +++ b/testdata/baselines/reference/submodule/conformance/restTupleElements1.js @@ -102,18 +102,18 @@ f2(x => x * 2, x => x.length, x => x.charCodeAt(0)); //// [restTupleElements1.d.ts] type T00 = [string?]; type T01 = [string, string?]; -type T02 = [string?, string]; // Error +type T02 = [string?, string]; type T03 = [...string[]]; type T04 = [...[...string[]]]; type T05 = [...[...[...string[]]]]; type T06 = [string, ...string[]]; -type T07 = [...string[], string]; // Error -type T08 = [...string]; // Error -type T09 = [...string | null]; // Error +type T07 = [...string[], string]; +type T08 = [...string]; +type T09 = [...string | null]; type T10 = [string, ...[...string[]]]; type T11 = [string, ...[...[...string[]]]]; type T15 = [boolean, number, ...string[]]; -type L15 = T15["length"]; // number +type L15 = T15["length"]; declare function assign(): void; type T20 = [number, string, ...boolean[]]; type T21 = T20[0]; @@ -126,11 +126,11 @@ type T27 = T20[3]; type T28 = T20[number]; declare const t: T20; declare const x: number; -declare let e0: number; // number -declare let e1: string; // string -declare let e2: boolean; // boolean -declare let e3: boolean; // boolean -declare let ex: string | number | boolean; // number | string | boolean +declare let e0: number; +declare let e1: string; +declare let e2: boolean; +declare let e3: boolean; +declare let ex: string | number | boolean; declare function f0(x: [T, ...U[]]): [T, U]; declare function f1(a: [(x: number) => number, ...((x: string) => number)[]]): void; declare function f2(...a: [(x: number) => number, ...((x: string) => number)[]]): void; diff --git a/testdata/baselines/reference/submodule/conformance/restTupleElements1.js.diff b/testdata/baselines/reference/submodule/conformance/restTupleElements1.js.diff index ab3fa80c5e..52f515d906 100644 --- a/testdata/baselines/reference/submodule/conformance/restTupleElements1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/restTupleElements1.js.diff @@ -8,44 +8,12 @@ assign(); assign(); assign(); -@@= skipped -31, +30 lines =@@ - //// [restTupleElements1.d.ts] - type T00 = [string?]; - type T01 = [string, string?]; --type T02 = [string?, string]; -+type T02 = [string?, string]; // Error - type T03 = [...string[]]; - type T04 = [...[...string[]]]; - type T05 = [...[...[...string[]]]]; +@@= skipped -38, +37 lines =@@ type T06 = [string, ...string[]]; --type T07 = [...string[], string]; --type T08 = [...string]; + type T07 = [...string[], string]; + type T08 = [...string]; -type T09 = [...?string]; -+type T07 = [...string[], string]; // Error -+type T08 = [...string]; // Error -+type T09 = [...string | null]; // Error ++type T09 = [...string | null]; type T10 = [string, ...[...string[]]]; type T11 = [string, ...[...[...string[]]]]; - type T15 = [boolean, number, ...string[]]; --type L15 = T15["length"]; -+type L15 = T15["length"]; // number - declare function assign(): void; - type T20 = [number, string, ...boolean[]]; - type T21 = T20[0]; -@@= skipped -24, +24 lines =@@ - type T28 = T20[number]; - declare const t: T20; - declare const x: number; --declare let e0: number; --declare let e1: string; --declare let e2: boolean; --declare let e3: boolean; --declare let ex: string | number | boolean; -+declare let e0: number; // number -+declare let e1: string; // string -+declare let e2: boolean; // boolean -+declare let e3: boolean; // boolean -+declare let ex: string | number | boolean; // number | string | boolean - declare function f0(x: [T, ...U[]]): [T, U]; - declare function f1(a: [(x: number) => number, ...((x: string) => number)[]]): void; - declare function f2(...a: [(x: number) => number, ...((x: string) => number)[]]): void; \ No newline at end of file + type T15 = [boolean, number, ...string[]]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/restTuplesFromContextualTypes.js b/testdata/baselines/reference/submodule/conformance/restTuplesFromContextualTypes.js index 99c846a3b1..718351bbcc 100644 --- a/testdata/baselines/reference/submodule/conformance/restTuplesFromContextualTypes.js +++ b/testdata/baselines/reference/submodule/conformance/restTuplesFromContextualTypes.js @@ -181,11 +181,8 @@ declare let g5: () => number; declare let g6: (x: any) => number; declare let g7: (x: any, y: any) => string; declare let g8: (x: number, y: string) => string; -// Repro from #25288 declare var tuple: [number, string]; -// Repro from #25289 declare function take(cb: (a: number, b: string) => void): void; -// Repro from #29833 type ArgsUnion = [number, string] | [number, Error]; type TupleUnionFunc = (...params: ArgsUnion) => number; declare const funcUnionTupleNoRest: TupleUnionFunc; diff --git a/testdata/baselines/reference/submodule/conformance/restTuplesFromContextualTypes.js.diff b/testdata/baselines/reference/submodule/conformance/restTuplesFromContextualTypes.js.diff index a072408db9..38d5a7fc74 100644 --- a/testdata/baselines/reference/submodule/conformance/restTuplesFromContextualTypes.js.diff +++ b/testdata/baselines/reference/submodule/conformance/restTuplesFromContextualTypes.js.diff @@ -7,16 +7,4 @@ -"use strict"; (function (a, b, c) { })(...t1); (function (...x) { })(...t1); - (function (a, ...x) { })(...t1); -@@= skipped -80, +79 lines =@@ - declare let g6: (x: any) => number; - declare let g7: (x: any, y: any) => string; - declare let g8: (x: number, y: string) => string; -+// Repro from #25288 - declare var tuple: [number, string]; -+// Repro from #25289 - declare function take(cb: (a: number, b: string) => void): void; -+// Repro from #29833 - type ArgsUnion = [number, string] | [number, Error]; - type TupleUnionFunc = (...params: ArgsUnion) => number; - declare const funcUnionTupleNoRest: TupleUnionFunc; \ No newline at end of file + (function (a, ...x) { })(...t1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/spreadDuplicate.js b/testdata/baselines/reference/submodule/conformance/spreadDuplicate.js index 22c70bbd70..e094a66cce 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadDuplicate.js +++ b/testdata/baselines/reference/submodule/conformance/spreadDuplicate.js @@ -44,7 +44,6 @@ let d2 = __assign({ a: 123 }, (t ? d : {})); // string | number //// [spreadDuplicate.d.ts] -// Repro from #44438 declare let a: { a: string; }; @@ -60,25 +59,25 @@ declare let d: { declare let t: boolean; declare let a1: { a: string; -}; // string (Error) +}; declare let b1: { a: string | number; -}; // string | number +}; declare let c1: { a: string | undefined; -}; // string | undefined (Error) +}; declare let d1: { a: string | number; -}; // string | number +}; declare let a2: { a: string | number; -}; // string | number +}; declare let b2: { a: string | number; -}; // string | number +}; declare let c2: { a: string | number; -}; // string | number +}; declare let d2: { a: string | number; -}; // string | number +}; diff --git a/testdata/baselines/reference/submodule/conformance/spreadDuplicate.js.diff b/testdata/baselines/reference/submodule/conformance/spreadDuplicate.js.diff index 0f68da2259..ff13e09385 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadDuplicate.js.diff +++ b/testdata/baselines/reference/submodule/conformance/spreadDuplicate.js.diff @@ -8,46 +8,4 @@ -// Repro from #44438 var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { -@@= skipped -24, +22 lines =@@ - - - //// [spreadDuplicate.d.ts] -+// Repro from #44438 - declare let a: { - a: string; - }; -@@= skipped -15, +16 lines =@@ - declare let t: boolean; - declare let a1: { - a: string; --}; -+}; // string (Error) - declare let b1: { - a: string | number; --}; -+}; // string | number - declare let c1: { - a: string | undefined; --}; -+}; // string | undefined (Error) - declare let d1: { - a: string | number; --}; -+}; // string | number - declare let a2: { - a: string | number; --}; -+}; // string | number - declare let b2: { - a: string | number; --}; -+}; // string | number - declare let c2: { - a: string | number; --}; -+}; // string | number - declare let d2: { - a: string | number; --}; -+}; // string | number \ No newline at end of file + for (var s, i = 1, n = arguments.length; i < n; i++) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/spreadDuplicateExact.js b/testdata/baselines/reference/submodule/conformance/spreadDuplicateExact.js index d1e0079cb8..5c1a0311a0 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadDuplicateExact.js +++ b/testdata/baselines/reference/submodule/conformance/spreadDuplicateExact.js @@ -44,7 +44,6 @@ let d2 = __assign({ a: 123 }, (t ? d : {})); // string | number | undefined //// [spreadDuplicateExact.d.ts] -// Repro from #44438 declare let a: { a: string; }; @@ -60,25 +59,25 @@ declare let d: { declare let t: boolean; declare let a1: { a: string; -}; // string (Error) +}; declare let b1: { a: string | number; -}; // string | number +}; declare let c1: { a: string | undefined; -}; // string | undefined (Error) +}; declare let d1: { a: string | number | undefined; -}; // string | number | undefined +}; declare let a2: { a: string | number; -}; // string | number +}; declare let b2: { a: string | number; -}; // string | number +}; declare let c2: { a: string | number | undefined; -}; // string | number | undefined +}; declare let d2: { a: string | number | undefined; -}; // string | number | undefined +}; diff --git a/testdata/baselines/reference/submodule/conformance/spreadDuplicateExact.js.diff b/testdata/baselines/reference/submodule/conformance/spreadDuplicateExact.js.diff index e966f9295f..aa802b8d05 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadDuplicateExact.js.diff +++ b/testdata/baselines/reference/submodule/conformance/spreadDuplicateExact.js.diff @@ -8,46 +8,4 @@ -// Repro from #44438 var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { -@@= skipped -24, +22 lines =@@ - - - //// [spreadDuplicateExact.d.ts] -+// Repro from #44438 - declare let a: { - a: string; - }; -@@= skipped -15, +16 lines =@@ - declare let t: boolean; - declare let a1: { - a: string; --}; -+}; // string (Error) - declare let b1: { - a: string | number; --}; -+}; // string | number - declare let c1: { - a: string | undefined; --}; -+}; // string | undefined (Error) - declare let d1: { - a: string | number | undefined; --}; -+}; // string | number | undefined - declare let a2: { - a: string | number; --}; -+}; // string | number - declare let b2: { - a: string | number; --}; -+}; // string | number - declare let c2: { - a: string | number | undefined; --}; -+}; // string | number | undefined - declare let d2: { - a: string | number | undefined; --}; -+}; // string | number | undefined \ No newline at end of file + for (var s, i = 1, n = arguments.length; i < n; i++) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js index 37e964da53..09b916cea8 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js +++ b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js @@ -108,11 +108,9 @@ declare function f3(a: T): any; declare function f4(a: object | T): {}; declare function f5(a: S | T): S | T; declare function f6(a: T): T; -// Repro from #46976 declare function g1(a: A): T; -// Repro from #47028 interface DatafulFoo { data: T; } diff --git a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js.diff b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js.diff index 18d5b1d590..931cfcb0bb 100644 --- a/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js.diff +++ b/testdata/baselines/reference/submodule/conformance/spreadObjectOrFalsy.js.diff @@ -24,13 +24,4 @@ +declare function f2(a: T | (T & undefined)): T | (T & undefined); declare function f3(a: T): any; declare function f4(a: object | T): {}; - declare function f5(a: S | T): S | T; - declare function f6(a: T): T; -+// Repro from #46976 - declare function g1(a: A): T; -+// Repro from #47028 - interface DatafulFoo { - data: T; - } \ No newline at end of file + declare function f5(a: S | T): S | T; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.js b/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.js index 37af274c84..6d50015503 100644 --- a/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.js +++ b/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.js @@ -287,15 +287,13 @@ class C13 { //// [strictPropertyInitialization.d.ts] -// Properties with non-undefined types require initialization declare class C1 { #private; - a: number; // Error + a: number; b: number | undefined; - c: number | null; // Error + c: number | null; d?: number; } -// No strict initialization checks in ambient contexts declare class C2 { #private; a: number; @@ -303,30 +301,26 @@ declare class C2 { c: number | null; d?: number; } -// No strict initialization checks for static members declare class C3 { static a: number; static b: number | undefined; static c: number | null; static d?: number; } -// Initializer satisfies strict initialization check declare class C4 { #private; a: number; b: number; c: string; } -// Assignment in constructor satisfies strict initialization check declare class C5 { #private; a: number; constructor(); } -// All code paths must contain assignment declare class C6 { #private; - a: number; // Error + a: number; constructor(cond: boolean); } declare class C7 { @@ -334,21 +328,17 @@ declare class C7 { a: number; constructor(cond: boolean); } -// Properties with string literal names aren't checked declare class C8 { - a: number; // Error + a: number; "b": number; 0: number; } -// No strict initialization checks for abstract members declare abstract class C9 { abstract a: number; abstract b: number | undefined; abstract c: number | null; abstract d?: number; } -// Properties with non-undefined types must be assigned before they can be accessed -// within their constructor declare class C10 { #private; a: number; @@ -356,7 +346,6 @@ declare class C10 { c?: number; constructor(); } -// Property is considered initialized by type any even though value could be undefined declare function someValue(): any; declare class C11 { #private; diff --git a/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.js.diff b/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.js.diff index be32773553..2050975f6d 100644 --- a/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.js.diff +++ b/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.js.diff @@ -169,81 +169,4 @@ -E.A; - //// [strictPropertyInitialization.d.ts] -+// Properties with non-undefined types require initialization - declare class C1 { - #private; -- a: number; -+ a: number; // Error - b: number | undefined; -- c: number | null; -+ c: number | null; // Error - d?: number; - } -+// No strict initialization checks in ambient contexts - declare class C2 { - #private; - a: number; -@@= skipped -22, +24 lines =@@ - c: number | null; - d?: number; - } -+// No strict initialization checks for static members - declare class C3 { - static a: number; - static b: number | undefined; - static c: number | null; - static d?: number; - } -+// Initializer satisfies strict initialization check - declare class C4 { - #private; - a: number; - b: number; - c: string; - } -+// Assignment in constructor satisfies strict initialization check - declare class C5 { - #private; - a: number; - constructor(); - } -+// All code paths must contain assignment - declare class C6 { - #private; -- a: number; -+ a: number; // Error - constructor(cond: boolean); - } - declare class C7 { -@@= skipped -27, +31 lines =@@ - a: number; - constructor(cond: boolean); - } -+// Properties with string literal names aren't checked - declare class C8 { -- a: number; -+ a: number; // Error - "b": number; - 0: number; - } -+// No strict initialization checks for abstract members - declare abstract class C9 { - abstract a: number; - abstract b: number | undefined; - abstract c: number | null; - abstract d?: number; - } -+// Properties with non-undefined types must be assigned before they can be accessed -+// within their constructor - declare class C10 { - #private; - a: number; -@@= skipped -18, +22 lines =@@ - c?: number; - constructor(); - } -+// Property is considered initialized by type any even though value could be undefined - declare function someValue(): any; - declare class C11 { - #private; \ No newline at end of file + //// [strictPropertyInitialization.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAndTuples01.js b/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAndTuples01.js index af45f86313..7ea6e69978 100644 --- a/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAndTuples01.js +++ b/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAndTuples01.js @@ -37,7 +37,6 @@ function rawr(dino) { //// [stringLiteralTypesAndTuples01.d.ts] -// Should all be strings. declare let hello: string, brave: string, newish: string, world: string; type RexOrRaptor = "t-rex" | "raptor"; declare let im: "I'm", a: "a", dinosaur: RexOrRaptor; diff --git a/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAndTuples01.js.diff b/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAndTuples01.js.diff deleted file mode 100644 index ffda737658..0000000000 --- a/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAndTuples01.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.stringLiteralTypesAndTuples01.js -+++ new.stringLiteralTypesAndTuples01.js -@@= skipped -36, +36 lines =@@ - - - //// [stringLiteralTypesAndTuples01.d.ts] -+// Should all be strings. - declare let hello: string, brave: string, newish: string, world: string; - type RexOrRaptor = "t-rex" | "raptor"; - declare let im: "I'm", a: "a", dinosaur: RexOrRaptor; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAsTags03.js b/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAsTags03.js index eeeb690a50..a02a4693cb 100644 --- a/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAsTags03.js +++ b/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAsTags03.js @@ -81,10 +81,6 @@ interface B extends Entity { kind: "B"; b: string; } -// Currently (2015-12-14), we write '"A" | "A"' and '"B" | "B"' to avoid -// interpreting respective overloads as "specialized" signatures. -// That way, we can avoid the need to look for a compatible overload -// signature and simply check compatibility with the implementation. declare function hasKind(entity: Entity, kind: "A" | "A"): entity is A; declare function hasKind(entity: Entity, kind: "B" | "B"): entity is B; declare let x: A; diff --git a/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAsTags03.js.diff b/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAsTags03.js.diff deleted file mode 100644 index c544f9e692..0000000000 --- a/testdata/baselines/reference/submodule/conformance/stringLiteralTypesAsTags03.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.stringLiteralTypesAsTags03.js -+++ new.stringLiteralTypesAsTags03.js -@@= skipped -80, +80 lines =@@ - kind: "B"; - b: string; - } -+// Currently (2015-12-14), we write '"A" | "A"' and '"B" | "B"' to avoid -+// interpreting respective overloads as "specialized" signatures. -+// That way, we can avoid the need to look for a compatible overload -+// signature and simply check compatibility with the implementation. - declare function hasKind(entity: Entity, kind: "A" | "A"): entity is A; - declare function hasKind(entity: Entity, kind: "B" | "B"): entity is B; - declare let x: A; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes1.js b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes1.js index a751db65e7..f3c59f192d 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes1.js +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes1.js @@ -300,6 +300,5 @@ const test1 = "0 0 0"; //// [templateLiteralTypes1.d.ts] -// Repro from #46480 export type Spacing = `0` | `${number}px` | `${number}rem` | `s${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20}`; export type SpacingShorthand = `${Spacing} ${Spacing}` | `${Spacing} ${Spacing} ${Spacing}` | `${Spacing} ${Spacing} ${Spacing} ${Spacing}`; diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes1.js.diff b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes1.js.diff index c16a677a19..b058b3edad 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes1.js.diff @@ -9,11 +9,4 @@ +// Template types example from #12754 const createScopedActionType = (scope) => (type) => `${scope}/${type}`; const createActionInMyScope = createScopedActionType("MyScope"); // (type: T) => `MyScope/${T}` - const MY_ACTION = createActionInMyScope("MY_ACTION"); // 'MyScope/MY_ACTION' -@@= skipped -41, +41 lines =@@ - - - //// [templateLiteralTypes1.d.ts] -+// Repro from #46480 - export type Spacing = `0` | `${number}px` | `${number}rem` | `s${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20}`; - export type SpacingShorthand = `${Spacing} ${Spacing}` | `${Spacing} ${Spacing} ${Spacing}` | `${Spacing} ${Spacing} ${Spacing} ${Spacing}`; \ No newline at end of file + const MY_ACTION = createActionInMyScope("MY_ACTION"); // 'MyScope/MY_ACTION' \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.js b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.js index 8415736d55..e120e73972 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.js +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.js @@ -221,25 +221,21 @@ declare function ft14(t: `foo${number}`): void; declare function g1(x: T): T; declare function g2(x: T): T; declare function ft20(s: string): void; -// Repro from #41631 declare function takesLiteral(literal: T): T extends `foo.bar.${infer R}` ? R : unknown; -declare const t1: "baz"; // "baz" +declare const t1: "baz"; declare const id2 = "foo.bar.baz"; -declare const t2: "baz"; // "baz" +declare const t2: "baz"; declare const someString: string; -declare const t3: string; // string +declare const t3: string; declare const id4: string; -declare const t4: unknown; // unknown +declare const t4: unknown; declare const someUnion: 'abc' | 'def' | 'ghi'; -declare const t5: "abc" | "def" | "ghi"; // "abc" | "def" | "ghi" -// Repro from #41732 +declare const t5: "abc" | "def" | "ghi"; declare const pixelValue: number; type PixelValueType = `${number}px`; declare const pixelString: PixelValueType; declare const pixelStringWithTemplate: PixelValueType; -// Repro from #43143 declare function getCardTitle(title: string): `test-${string}`; -// Repro from #43424 declare const interpolatedStyle: { rotate: number; }; diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.js.diff b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.js.diff index eec2019088..c73545d827 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes2.js.diff @@ -7,35 +7,4 @@ -"use strict"; function ft1(s, n, u, t) { const c1 = `abc${s}`; - const c2 = `abc${n}`; -@@= skipped -100, +99 lines =@@ - declare function g1(x: T): T; - declare function g2(x: T): T; - declare function ft20(s: string): void; -+// Repro from #41631 - declare function takesLiteral(literal: T): T extends `foo.bar.${infer R}` ? R : unknown; --declare const t1: "baz"; -+declare const t1: "baz"; // "baz" - declare const id2 = "foo.bar.baz"; --declare const t2: "baz"; -+declare const t2: "baz"; // "baz" - declare const someString: string; --declare const t3: string; -+declare const t3: string; // string - declare const id4: string; --declare const t4: unknown; -+declare const t4: unknown; // unknown - declare const someUnion: 'abc' | 'def' | 'ghi'; --declare const t5: "abc" | "def" | "ghi"; -+declare const t5: "abc" | "def" | "ghi"; // "abc" | "def" | "ghi" -+// Repro from #41732 - declare const pixelValue: number; - type PixelValueType = `${number}px`; - declare const pixelString: PixelValueType; - declare const pixelStringWithTemplate: PixelValueType; -+// Repro from #43143 - declare function getCardTitle(title: string): `test-${string}`; -+// Repro from #43424 - declare const interpolatedStyle: { - rotate: number; - }; \ No newline at end of file + const c2 = `abc${n}`; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.js b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.js index 9ccc2f2790..768e99a359 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.js +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.js @@ -306,7 +306,6 @@ function a() { //// [templateLiteralTypes3.d.ts] -// Inference from template literal type to template literal type type Foo1 = T extends `*${infer U}*` ? U : never; type T01 = Foo1<'hello'>; type T02 = Foo1<'*hello*'>; @@ -321,8 +320,6 @@ type T10 = Foo1<`**${'a' | 'b' | 'c'}**`>; type T11 = Foo1<`**${boolean}**${boolean}**`>; declare function foo1(arg: `*${V}*`): V; declare function f1(s: string, n: number, b: boolean, t: T): void; -// Inference to a placeholder immediately followed by another placeholder infers a single -// character or placeholder from the source. type Parts = T extends '' ? [] : T extends `${infer Head}${infer Tail}` ? [Head, ...Parts] : never; type T20 = Parts<`abc`>; type T21 = Parts<`*${string}*`>; @@ -331,34 +328,29 @@ type T23 = Parts<`*${number}*${string}*${bigint}*`>; declare function f2(): void; declare function f3(s: string, n: number, b: boolean, t: T): void; declare function f4(s: string, n: number, b: boolean, t: T): void; -// Repro from #43060 type A = T extends `${infer U}.${infer V}` ? U | V : never; -type B = A<`test.1024`>; // "test" | "1024" -type C = A<`test.${number}`>; // "test" | `${number}` +type B = A<`test.1024`>; +type C = A<`test.${number}`>; type D = T extends `${infer U}.${number}` ? U : never; -type E = D<`test.1024`>; // "test" -type F = D<`test.${number}`>; // "test" +type E = D<`test.1024`>; +type F = D<`test.${number}`>; type G = T extends `${infer U}.${infer V}` ? U | V : never; -type H = G<`test.hoge`>; // "test" | "hoge" -type I = G<`test.${string}`>; // string ("test" | string reduces to string) +type H = G<`test.hoge`>; +type I = G<`test.${string}`>; type J = T extends `${infer U}.${string}` ? U : never; -type K = J<`test.hoge`>; // "test" -type L = J<`test.${string}`>; // "test"" -// Repro from #43243 +type K = J<`test.hoge`>; +type L = J<`test.${string}`>; type Templated = `${string} ${string}`; declare const value1: string; declare const templated1: Templated; -// Type '`${string} abc`' is not assignable to type '`${string} ${string}`'. declare const value2 = "abc"; declare const templated2: Templated; -// Repro from #43620 type Prefixes = "foo" | "bar"; type AllPrefixData = "foo:baz" | "bar:baz"; type PrefixData

= `${P}:baz`; interface ITest

> { blah: string; } -// Repro from #45906 type Schema = { a: { b: { @@ -367,12 +359,10 @@ type Schema = { }; }; declare function chain(field: F | `${F}.${F}`): void; -// Repro from #46125 declare function ff1(x: `foo-${string}`, y: `${string}-bar`, z: `baz-${string}`): void; declare function ff2(x: `foo-${T}`, y: `${T}-bar`, z: `baz-${T}`): void; declare function ff3(x: string, y: `foo-${string}` | 'bar'): void; declare function ff4(x: string, y: `foo-${string}`): void; -// Repro from #46045 type Action = { type: `${string}_REQUEST`; } | { @@ -380,14 +370,11 @@ type Action = { response: string; }; declare function reducer(action: Action): void; -// Repro from #46768 type DotString = `${string}.${string}.${string}`; declare function noSpread

(args: P[]): P; declare function spread

(...args: P[]): P; declare function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>): void; -// Repro from #52685 type Boom = 'abc' | 'def' | `a${string}` | Lowercase; -// Repro from #56582 declare function a(): void; diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.js.diff b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.js.diff index 11c85653e5..ca68512a55 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.js.diff +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes3.js.diff @@ -8,92 +8,4 @@ -// Inference from template literal type to template literal type function f1(s, n, b, t) { let x1 = foo1('hello'); // Error - let x2 = foo1('*hello*'); -@@= skipped -102, +100 lines =@@ - - - //// [templateLiteralTypes3.d.ts] -+// Inference from template literal type to template literal type - type Foo1 = T extends `*${infer U}*` ? U : never; - type T01 = Foo1<'hello'>; - type T02 = Foo1<'*hello*'>; -@@= skipped -14, +15 lines =@@ - type T11 = Foo1<`**${boolean}**${boolean}**`>; - declare function foo1(arg: `*${V}*`): V; - declare function f1(s: string, n: number, b: boolean, t: T): void; -+// Inference to a placeholder immediately followed by another placeholder infers a single -+// character or placeholder from the source. - type Parts = T extends '' ? [] : T extends `${infer Head}${infer Tail}` ? [Head, ...Parts] : never; - type T20 = Parts<`abc`>; - type T21 = Parts<`*${string}*`>; -@@= skipped -8, +10 lines =@@ - declare function f2(): void; - declare function f3(s: string, n: number, b: boolean, t: T): void; - declare function f4(s: string, n: number, b: boolean, t: T): void; -+// Repro from #43060 - type A = T extends `${infer U}.${infer V}` ? U | V : never; --type B = A<`test.1024`>; --type C = A<`test.${number}`>; -+type B = A<`test.1024`>; // "test" | "1024" -+type C = A<`test.${number}`>; // "test" | `${number}` - type D = T extends `${infer U}.${number}` ? U : never; --type E = D<`test.1024`>; --type F = D<`test.${number}`>; -+type E = D<`test.1024`>; // "test" -+type F = D<`test.${number}`>; // "test" - type G = T extends `${infer U}.${infer V}` ? U | V : never; --type H = G<`test.hoge`>; --type I = G<`test.${string}`>; -+type H = G<`test.hoge`>; // "test" | "hoge" -+type I = G<`test.${string}`>; // string ("test" | string reduces to string) - type J = T extends `${infer U}.${string}` ? U : never; --type K = J<`test.hoge`>; --type L = J<`test.${string}`>; -+type K = J<`test.hoge`>; // "test" -+type L = J<`test.${string}`>; // "test"" -+// Repro from #43243 - type Templated = `${string} ${string}`; - declare const value1: string; - declare const templated1: Templated; -+// Type '`${string} abc`' is not assignable to type '`${string} ${string}`'. - declare const value2 = "abc"; - declare const templated2: Templated; -+// Repro from #43620 - type Prefixes = "foo" | "bar"; - type AllPrefixData = "foo:baz" | "bar:baz"; - type PrefixData

= `${P}:baz`; - interface ITest

> { - blah: string; - } -+// Repro from #45906 - type Schema = { - a: { - b: { -@@= skipped -31, +36 lines =@@ - }; - }; - declare function chain(field: F | `${F}.${F}`): void; -+// Repro from #46125 - declare function ff1(x: `foo-${string}`, y: `${string}-bar`, z: `baz-${string}`): void; - declare function ff2(x: `foo-${T}`, y: `${T}-bar`, z: `baz-${T}`): void; - declare function ff3(x: string, y: `foo-${string}` | 'bar'): void; - declare function ff4(x: string, y: `foo-${string}`): void; -+// Repro from #46045 - type Action = { - type: `${string}_REQUEST`; - } | { -@@= skipped -11, +13 lines =@@ - response: string; - }; - declare function reducer(action: Action): void; -+// Repro from #46768 - type DotString = `${string}.${string}.${string}`; - declare function noSpread

(args: P[]): P; - declare function spread

(...args: P[]): P; - declare function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>): void; -+// Repro from #52685 - type Boom = 'abc' | 'def' | `a${string}` | Lowercase; -+// Repro from #56582 - declare function a(): void; \ No newline at end of file + let x2 = foo1('*hello*'); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes4.js b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes4.js index b24525dd0f..8651651d92 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes4.js +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes4.js @@ -321,36 +321,30 @@ f4("**false**"); // false | "false" //// [templateLiteralTypes4.d.ts] -// infer from number -type TNumber0 = "100" extends `${infer N extends number}` ? N : never; // 100 -type TNumber1 = "-100" extends `${infer N extends number}` ? N : never; // -100 -type TNumber2 = "1.1" extends `${infer N extends number}` ? N : never; // 1.1 -type TNumber3 = "8e-11" extends `${infer N extends number}` ? N : never; // 8e-11 (0.00000000008) -type TNumber4 = "0x10" extends `${infer N extends number}` ? N : never; // number (not round-trippable) -type TNumber5 = "0o10" extends `${infer N extends number}` ? N : never; // number (not round-trippable) -type TNumber6 = "0b10" extends `${infer N extends number}` ? N : never; // number (not round-trippable) -type TNumber7 = "10e2" extends `${infer N extends number}` ? N : never; // number (not round-trippable) -type TNumber8 = "abcd" extends `${infer N extends number}` ? N : never; // never -// infer from bigint -type TBigInt0 = "100" extends `${infer N extends bigint}` ? N : never; // 100n -type TBigInt1 = "-100" extends `${infer N extends bigint}` ? N : never; // -100n -type TBigInt2 = "0x10" extends `${infer N extends bigint}` ? N : never; // bigint (not round-trippable) -type TBigInt3 = "0o10" extends `${infer N extends bigint}` ? N : never; // bigint (not round-trippable) -type TBigInt4 = "0b10" extends `${infer N extends bigint}` ? N : never; // bigint (not round-trippable) -type TBigInt5 = "1.1" extends `${infer N extends bigint}` ? N : never; // never -type TBigInt6 = "10e2" extends `${infer N extends bigint}` ? N : never; // never -type TBigInt7 = "abcd" extends `${infer N extends bigint}` ? N : never; // never -// infer from boolean -type TBoolean0 = "true" extends `${infer T extends boolean}` ? T : never; // true -type TBoolean1 = "false" extends `${infer T extends boolean}` ? T : never; // false -type TBoolean2 = "abcd" extends `${infer T extends boolean}` ? T : never; // never -// infer from null -type TNull0 = "null" extends `${infer T extends null}` ? T : never; // null -type TNull1 = "abcd" extends `${infer T extends null}` ? T : never; // never -// infer from undefined -type TUndefined0 = "undefined" extends `${infer T extends undefined}` ? T : never; // undefined -type TUndefined1 = "abcd" extends `${infer T extends undefined}` ? T : never; // never -// infer from literal enums +type TNumber0 = "100" extends `${infer N extends number}` ? N : never; +type TNumber1 = "-100" extends `${infer N extends number}` ? N : never; +type TNumber2 = "1.1" extends `${infer N extends number}` ? N : never; +type TNumber3 = "8e-11" extends `${infer N extends number}` ? N : never; +type TNumber4 = "0x10" extends `${infer N extends number}` ? N : never; +type TNumber5 = "0o10" extends `${infer N extends number}` ? N : never; +type TNumber6 = "0b10" extends `${infer N extends number}` ? N : never; +type TNumber7 = "10e2" extends `${infer N extends number}` ? N : never; +type TNumber8 = "abcd" extends `${infer N extends number}` ? N : never; +type TBigInt0 = "100" extends `${infer N extends bigint}` ? N : never; +type TBigInt1 = "-100" extends `${infer N extends bigint}` ? N : never; +type TBigInt2 = "0x10" extends `${infer N extends bigint}` ? N : never; +type TBigInt3 = "0o10" extends `${infer N extends bigint}` ? N : never; +type TBigInt4 = "0b10" extends `${infer N extends bigint}` ? N : never; +type TBigInt5 = "1.1" extends `${infer N extends bigint}` ? N : never; +type TBigInt6 = "10e2" extends `${infer N extends bigint}` ? N : never; +type TBigInt7 = "abcd" extends `${infer N extends bigint}` ? N : never; +type TBoolean0 = "true" extends `${infer T extends boolean}` ? T : never; +type TBoolean1 = "false" extends `${infer T extends boolean}` ? T : never; +type TBoolean2 = "abcd" extends `${infer T extends boolean}` ? T : never; +type TNull0 = "null" extends `${infer T extends null}` ? T : never; +type TNull1 = "abcd" extends `${infer T extends null}` ? T : never; +type TUndefined0 = "undefined" extends `${infer T extends undefined}` ? T : never; +type TUndefined1 = "abcd" extends `${infer T extends undefined}` ? T : never; declare const enum StringLiteralEnum { Zero = "0", True = "true", @@ -358,188 +352,115 @@ declare const enum StringLiteralEnum { Undefined = "undefined", Null = "null" } -type TStringLiteralEnum0 = "0" extends `${infer T extends StringLiteralEnum}` ? T : never; // StringLiteralEnum.Zero +type TStringLiteralEnum0 = "0" extends `${infer T extends StringLiteralEnum}` ? T : never; declare const enum NumberLiteralEnum { Zero = 0, One = 1 } -type TNumberLiteralEnum0 = "0" extends `${infer T extends NumberLiteralEnum}` ? T : never; // NumberLiteralEnum.Zero -// infer from non-literal enums +type TNumberLiteralEnum0 = "0" extends `${infer T extends NumberLiteralEnum}` ? T : never; declare const enum NonLiteralEnum { Zero = 0, One = 1 } -type TNonLiteralEnum0 = "0" extends `${infer T extends NonLiteralEnum}` ? T : never; // 0 -// infer using priority: -// string > template-literal > (string-literal | string-literal-enum) > -// number > enum > (number-literal | number-literal-enum) > -// bigint > bigint-literal > -// boolean > (boolean-literal | undefined | null) -// #region string -// string > string-literal-enum -type PString00 = "0" extends `${infer T extends string | StringLiteralEnum}` ? T : never; // "0" -// string > number -type PString01 = "0" extends `${infer T extends string | number}` ? T : never; // "0" -// string > enum -type PString02 = "0" extends `${infer T extends string | NonLiteralEnum}` ? T : never; // "0" -// string > (number-literal | number-literal-enum) -type PString03 = "0" extends `${infer T extends string | 0}` ? T : never; // "0" -type PString04 = "0" extends `${infer T extends string | NumberLiteralEnum}` ? T : never; // "0" -// string > bigint -type PString05 = "0" extends `${infer T extends string | bigint}` ? T : never; // "0" -// string > bigint-literal -type PString06 = "0" extends `${infer T extends string | 0n}` ? T : never; // "0" -// string > boolean -type PString07 = "true" extends `${infer T extends string | boolean}` ? T : never; // "true" -type PString08 = "false" extends `${infer T extends string | boolean}` ? T : never; // "false" -// string > (boolean-literal | undefined | null) -type PString09 = "true" extends `${infer T extends string | true}` ? T : never; // "true" -type PString10 = "false" extends `${infer T extends string | false}` ? T : never; // "false" -type PString11 = "undefined" extends `${infer T extends string | undefined}` ? T : never; // "undefined" -type PString12 = "null" extends `${infer T extends string | null}` ? T : never; // "null" -// #endregion string -// #region template-literal -// template-literal > number -type PTemplate00 = "10" extends `${infer T extends `1${string}` | number}` ? T : never; // "10" -// template-literal > enum -type PTemplate01 = "10" extends `${infer T extends `1${string}` | NonLiteralEnum}` ? T : never; // "10" -// template-literal > (number-literal | number-literal-enum) -type PTemplate02 = "10" extends `${infer T extends `1${string}` | 10}` ? T : never; // "10" -type PTemplate03 = "10" extends `${infer T extends `1${string}` | NumberLiteralEnum}` ? T : never; // "10" -// template-literal > bigint -type PTemplate04 = "10" extends `${infer T extends `1${string}` | bigint}` ? T : never; // "10" -// template-literal > bigint-literal -type PTemplate05 = "10" extends `${infer T extends `1${string}` | 10n}` ? T : never; // "10" -// template-literal > boolean -type PTemplate06 = "true" extends `${infer T extends `${string}e` | boolean}` ? T : never; // "true" -type PTemplate07 = "false" extends `${infer T extends `${string}e` | boolean}` ? T : never; // "false" -// template-literal > (boolean-literal | undefined | null) -type PTemplate08 = "true" extends `${infer T extends `${"t"}${string}` | true}` ? T : never; // "true" -type PTemplate09 = "false" extends `${infer T extends `${"f"}${string}` | false}` ? T : never; // "false" -type PTemplate10 = "undefined" extends `${infer T extends `${"u"}${string}` | undefined}` ? T : never; // "undefined" -type PTemplate11 = "null" extends `${infer T extends `${"n"}${string}` | null}` ? T : never; // "null" -// #endregion template-literal -// #region string-literal -// string-literal > number -type PStringLiteral00 = "0" extends `${infer T extends "0" | number}` ? T : never; // "0" -// string-literal > enum -type PStringLiteral01 = "0" extends `${infer T extends "0" | NonLiteralEnum}` ? T : never; // "0" -// string-literal > (number-literal | number-literal-enum) -type PStringLiteral02 = "0" extends `${infer T extends "0" | 0}` ? T : never; // "0" -type PStringLiteral03 = "0" extends `${infer T extends "0" | NumberLiteralEnum}` ? T : never; // "0" -// string-literal > bigint -type PStringLiteral04 = "0" extends `${infer T extends "0" | bigint}` ? T : never; // "0" -// string-literal > bigint-literal -type PStringLiteral05 = "0" extends `${infer T extends "0" | 0n}` ? T : never; // "0" -// string-literal > boolean -type PStringLiteral06 = "true" extends `${infer T extends "true" | "false" | boolean}` ? T : never; // "true" -type PStringLiteral07 = "false" extends `${infer T extends "true" | "false" | boolean}` ? T : never; // "false" -// string-literal > (boolean-literal | undefined | null) -type PStringLiteral08 = "true" extends `${infer T extends "true" | true}` ? T : never; // "true" -type PStringLiteral09 = "false" extends `${infer T extends "false" | false}` ? T : never; // "false" -type PStringLiteral10 = "undefined" extends `${infer T extends "undefined" | undefined}` ? T : never; // "undefined" -type PStringLiteral11 = "null" extends `${infer T extends "null" | null}` ? T : never; // "null" -// #endregion string-literal -// #region string-literal-enum -// string-literal-enum > number -type PStringLiteralEnum00 = "0" extends `${infer T extends StringLiteralEnum | number}` ? T : never; // StringLiteralEnum.Zero -// string-literal-enum > enum -type PStringLiteralEnum01 = "0" extends `${infer T extends StringLiteralEnum | NonLiteralEnum}` ? T : never; // StringLiteralEnum.Zero -// string-literal-enum > (number-literal | number-literal-enum) -type PStringLiteralEnum02 = "0" extends `${infer T extends StringLiteralEnum | 0}` ? T : never; // StringLiteralEnum.Zero -type PStringLiteralEnum03 = "0" extends `${infer T extends StringLiteralEnum | NumberLiteralEnum}` ? T : never; // StringLiteralEnum.Zero -// string-literal-enum > bigint -type PStringLiteralEnum04 = "0" extends `${infer T extends StringLiteralEnum | bigint}` ? T : never; // StringLiteralEnum.Zero -// string-literal-enum > bigint-literal -type PStringLiteralEnum05 = "0" extends `${infer T extends StringLiteralEnum | 0n}` ? T : never; // StringLiteralEnum.Zero -// string-literal-enum > boolean -type PStringLiteralEnum06 = "true" extends `${infer T extends StringLiteralEnum | boolean}` ? T : never; // StringLiteralEnum.True -type PStringLiteralEnum07 = "false" extends `${infer T extends StringLiteralEnum | boolean}` ? T : never; // StringLiteralEnum.False -// string-literal-enum > (boolean-literal | undefined | null) -type PStringLiteralEnum08 = "true" extends `${infer T extends StringLiteralEnum | true}` ? T : never; // StringLiteralEnum.True -type PStringLiteralEnum09 = "false" extends `${infer T extends StringLiteralEnum | false}` ? T : never; // StringLiteralEnum.False -type PStringLiteralEnum10 = "undefined" extends `${infer T extends StringLiteralEnum | undefined}` ? T : never; // StringLiteralEnum.Undefined -type PStringLiteralEnum11 = "null" extends `${infer T extends StringLiteralEnum | null}` ? T : never; // StringLiteralEnum.Null -// #endregion string-literal-enum -// #region number -// number > enum -type PNumber0 = "0" extends `${infer T extends number | NonLiteralEnum}` ? T : never; // 0 -// number > number-literal-enum -type PNumber1 = "0" extends `${infer T extends number | NumberLiteralEnum}` ? T : never; // 0 -// number > bigint -type PNumber2 = "0" extends `${infer T extends number | bigint}` ? T : never; // 0 -// number > bigint-literal -type PNumber3 = "0" extends `${infer T extends number | 0n}` ? T : never; // 0 -// #endregion number -// #region enum -// enum > number-literal-enum -type PEnum0 = "0" extends `${infer T extends NonLiteralEnum | NumberLiteralEnum}` ? T : never; // 0 -// enum > bigint -type PEnum1 = "0" extends `${infer T extends NonLiteralEnum | bigint}` ? T : never; // 0 -// enum > bigint-literal -type PEnum2 = "0" extends `${infer T extends NonLiteralEnum | 0n}` ? T : never; // 0 -// #endregion enum -// #region number-literal -// number-literal > bigint -type PNumberLiteral0 = "0" extends `${infer T extends 0 | bigint}` ? T : never; // 0 -// number-literal > bigint-literal -type PNumberLiteral1 = "0" extends `${infer T extends 0 | 0n}` ? T : never; // 0 -// #endregion number-literal -// #region number-literal-enum -// number-literal-enum > bigint -type PNumberLiteralEnum0 = "0" extends `${infer T extends NumberLiteralEnum | bigint}` ? T : never; // NumberLiteralEnum.Zero -// number-literal-enum > bigint-literal -type PNumberLiteralEnum1 = "0" extends `${infer T extends NumberLiteralEnum | 0n}` ? T : never; // NumberLiteralEnum.Zero -// #endregion number-literal-enum -// non-matchable constituents are excluded -type PExclude0 = "0" extends `${infer T extends "1" | number}` ? T : never; // 0 -type PExclude1 = "0" extends `${infer T extends `1${string}` | number}` ? T : never; // 0 -type PExclude2 = "0" extends `${infer T extends 1 | bigint}` ? T : never; // 0n -type PExclude3 = "0" extends `${infer T extends NumberLiteralEnum.One | bigint}` ? T : never; // 0n -type PExclude4 = "100000000000000000000000" extends `${infer T extends number | bigint}` ? T : never; // 100000000000000000000000n -// infer to prefix from string -type TPrefix0 = "100" extends `${infer T extends number}${string}` ? T : never; // 1 -type TPrefix1 = "trueabc" extends `${infer T extends boolean}${string}` ? T : never; // boolean (T only receives 't', not the whole string) -type TPrefix2 = `100:${string}` extends `${infer T extends number}:${string}` ? T : never; // 100 (T receives '100' because it scans until ':') -// can use union w/multiple branches to extract each possibility +type TNonLiteralEnum0 = "0" extends `${infer T extends NonLiteralEnum}` ? T : never; +type PString00 = "0" extends `${infer T extends string | StringLiteralEnum}` ? T : never; +type PString01 = "0" extends `${infer T extends string | number}` ? T : never; +type PString02 = "0" extends `${infer T extends string | NonLiteralEnum}` ? T : never; +type PString03 = "0" extends `${infer T extends string | 0}` ? T : never; +type PString04 = "0" extends `${infer T extends string | NumberLiteralEnum}` ? T : never; +type PString05 = "0" extends `${infer T extends string | bigint}` ? T : never; +type PString06 = "0" extends `${infer T extends string | 0n}` ? T : never; +type PString07 = "true" extends `${infer T extends string | boolean}` ? T : never; +type PString08 = "false" extends `${infer T extends string | boolean}` ? T : never; +type PString09 = "true" extends `${infer T extends string | true}` ? T : never; +type PString10 = "false" extends `${infer T extends string | false}` ? T : never; +type PString11 = "undefined" extends `${infer T extends string | undefined}` ? T : never; +type PString12 = "null" extends `${infer T extends string | null}` ? T : never; +type PTemplate00 = "10" extends `${infer T extends `1${string}` | number}` ? T : never; +type PTemplate01 = "10" extends `${infer T extends `1${string}` | NonLiteralEnum}` ? T : never; +type PTemplate02 = "10" extends `${infer T extends `1${string}` | 10}` ? T : never; +type PTemplate03 = "10" extends `${infer T extends `1${string}` | NumberLiteralEnum}` ? T : never; +type PTemplate04 = "10" extends `${infer T extends `1${string}` | bigint}` ? T : never; +type PTemplate05 = "10" extends `${infer T extends `1${string}` | 10n}` ? T : never; +type PTemplate06 = "true" extends `${infer T extends `${string}e` | boolean}` ? T : never; +type PTemplate07 = "false" extends `${infer T extends `${string}e` | boolean}` ? T : never; +type PTemplate08 = "true" extends `${infer T extends `${"t"}${string}` | true}` ? T : never; +type PTemplate09 = "false" extends `${infer T extends `${"f"}${string}` | false}` ? T : never; +type PTemplate10 = "undefined" extends `${infer T extends `${"u"}${string}` | undefined}` ? T : never; +type PTemplate11 = "null" extends `${infer T extends `${"n"}${string}` | null}` ? T : never; +type PStringLiteral00 = "0" extends `${infer T extends "0" | number}` ? T : never; +type PStringLiteral01 = "0" extends `${infer T extends "0" | NonLiteralEnum}` ? T : never; +type PStringLiteral02 = "0" extends `${infer T extends "0" | 0}` ? T : never; +type PStringLiteral03 = "0" extends `${infer T extends "0" | NumberLiteralEnum}` ? T : never; +type PStringLiteral04 = "0" extends `${infer T extends "0" | bigint}` ? T : never; +type PStringLiteral05 = "0" extends `${infer T extends "0" | 0n}` ? T : never; +type PStringLiteral06 = "true" extends `${infer T extends "true" | "false" | boolean}` ? T : never; +type PStringLiteral07 = "false" extends `${infer T extends "true" | "false" | boolean}` ? T : never; +type PStringLiteral08 = "true" extends `${infer T extends "true" | true}` ? T : never; +type PStringLiteral09 = "false" extends `${infer T extends "false" | false}` ? T : never; +type PStringLiteral10 = "undefined" extends `${infer T extends "undefined" | undefined}` ? T : never; +type PStringLiteral11 = "null" extends `${infer T extends "null" | null}` ? T : never; +type PStringLiteralEnum00 = "0" extends `${infer T extends StringLiteralEnum | number}` ? T : never; +type PStringLiteralEnum01 = "0" extends `${infer T extends StringLiteralEnum | NonLiteralEnum}` ? T : never; +type PStringLiteralEnum02 = "0" extends `${infer T extends StringLiteralEnum | 0}` ? T : never; +type PStringLiteralEnum03 = "0" extends `${infer T extends StringLiteralEnum | NumberLiteralEnum}` ? T : never; +type PStringLiteralEnum04 = "0" extends `${infer T extends StringLiteralEnum | bigint}` ? T : never; +type PStringLiteralEnum05 = "0" extends `${infer T extends StringLiteralEnum | 0n}` ? T : never; +type PStringLiteralEnum06 = "true" extends `${infer T extends StringLiteralEnum | boolean}` ? T : never; +type PStringLiteralEnum07 = "false" extends `${infer T extends StringLiteralEnum | boolean}` ? T : never; +type PStringLiteralEnum08 = "true" extends `${infer T extends StringLiteralEnum | true}` ? T : never; +type PStringLiteralEnum09 = "false" extends `${infer T extends StringLiteralEnum | false}` ? T : never; +type PStringLiteralEnum10 = "undefined" extends `${infer T extends StringLiteralEnum | undefined}` ? T : never; +type PStringLiteralEnum11 = "null" extends `${infer T extends StringLiteralEnum | null}` ? T : never; +type PNumber0 = "0" extends `${infer T extends number | NonLiteralEnum}` ? T : never; +type PNumber1 = "0" extends `${infer T extends number | NumberLiteralEnum}` ? T : never; +type PNumber2 = "0" extends `${infer T extends number | bigint}` ? T : never; +type PNumber3 = "0" extends `${infer T extends number | 0n}` ? T : never; +type PEnum0 = "0" extends `${infer T extends NonLiteralEnum | NumberLiteralEnum}` ? T : never; +type PEnum1 = "0" extends `${infer T extends NonLiteralEnum | bigint}` ? T : never; +type PEnum2 = "0" extends `${infer T extends NonLiteralEnum | 0n}` ? T : never; +type PNumberLiteral0 = "0" extends `${infer T extends 0 | bigint}` ? T : never; +type PNumberLiteral1 = "0" extends `${infer T extends 0 | 0n}` ? T : never; +type PNumberLiteralEnum0 = "0" extends `${infer T extends NumberLiteralEnum | bigint}` ? T : never; +type PNumberLiteralEnum1 = "0" extends `${infer T extends NumberLiteralEnum | 0n}` ? T : never; +type PExclude0 = "0" extends `${infer T extends "1" | number}` ? T : never; +type PExclude1 = "0" extends `${infer T extends `1${string}` | number}` ? T : never; +type PExclude2 = "0" extends `${infer T extends 1 | bigint}` ? T : never; +type PExclude3 = "0" extends `${infer T extends NumberLiteralEnum.One | bigint}` ? T : never; +type PExclude4 = "100000000000000000000000" extends `${infer T extends number | bigint}` ? T : never; +type TPrefix0 = "100" extends `${infer T extends number}${string}` ? T : never; +type TPrefix1 = "trueabc" extends `${infer T extends boolean}${string}` ? T : never; +type TPrefix2 = `100:${string}` extends `${infer T extends number}:${string}` ? T : never; type ExtractPrimitives = T | (T extends `${infer U extends number}` ? U : never) | (T extends `${infer U extends bigint}` ? U : never) | (T extends `${infer U extends boolean | null | undefined}` ? U : never); -type TExtract0 = ExtractPrimitives<"100">; // "100" | 100 | 100n -type TExtract1 = ExtractPrimitives<"1.1">; // "1.1" | 1.1 -type TExtract2 = ExtractPrimitives<"true">; // "true" | true -// example use case (based on old TypedObjects proposal): -// Use constrained `infer` in template literal to get ordinal indices as numbers: +type TExtract0 = ExtractPrimitives<"100">; +type TExtract1 = ExtractPrimitives<"1.1">; +type TExtract2 = ExtractPrimitives<"true">; type IndexFor = S extends `${infer N extends number}` ? N : never; -type IndicesOf = IndexFor>; // ordinal indices as number literals +type IndicesOf = IndexFor>; interface FieldDefinition { readonly name: string; readonly type: "i8" | "i16" | "i32" | "i64" | "u8" | "u16" | "u32" | "u64" | "f32" | "f64"; } type FieldType = T extends "i8" | "i16" | "i32" | "u8" | "u16" | "u32" | "f32" | "f64" ? number : T extends "f32" | "f64" ? bigint : never; -// Generates named members like `{ x: number, y: bigint }` from `[{ name: "x", type: "i32" }, { name: "y", type: "i64" }]` type TypedObjectNamedMembers = { [P in TDef[number]["name"]]: FieldType["type"]>; }; -// Generates ordinal members like `{ 0: number, 1: bigint }` from `[{ name: "x", type: "i32" }, { name: "y", type: "i64" }]` type TypedObjectOrdinalMembers = { [I in Extract]: FieldType["type"]>; }; -// Default members interface TypedObjectMembers { - // get/set a field by name get(key: K): FieldType["type"]>; set(key: K, value: FieldType["type"]>): void; - // get/set a field by index getIndex>(index: I): FieldType["type"]>; setIndex>(index: I, value: FieldType["type"]>): void; } type TypedObject = TypedObjectMembers & TypedObjectNamedMembers & TypedObjectOrdinalMembers; -// NOTE: type would normally be created from something like `const Point = TypedObject([...])` from which we would infer the type type Point = TypedObject<[ { name: "x"; @@ -551,7 +472,6 @@ type Point = TypedObject<[ } ]>; declare const p: Point; -// function inference declare function f1(s: `**${T}**`): T; declare function f2(s: `**${T}**`): T; declare function f3(s: `**${T}**`): T; diff --git a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes4.js.diff b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes4.js.diff index 890c500641..c3cbe3d19f 100644 --- a/testdata/baselines/reference/submodule/conformance/templateLiteralTypes4.js.diff +++ b/testdata/baselines/reference/submodule/conformance/templateLiteralTypes4.js.diff @@ -7,337 +7,4 @@ -"use strict"; p.getIndex(0); // ok, 0 is a valid index p.getIndex(1); // ok, 1 is a valid index - p.getIndex(2); // error, 2 is not a valid index -@@= skipped -15, +14 lines =@@ - - - //// [templateLiteralTypes4.d.ts] --type TNumber0 = "100" extends `${infer N extends number}` ? N : never; --type TNumber1 = "-100" extends `${infer N extends number}` ? N : never; --type TNumber2 = "1.1" extends `${infer N extends number}` ? N : never; --type TNumber3 = "8e-11" extends `${infer N extends number}` ? N : never; --type TNumber4 = "0x10" extends `${infer N extends number}` ? N : never; --type TNumber5 = "0o10" extends `${infer N extends number}` ? N : never; --type TNumber6 = "0b10" extends `${infer N extends number}` ? N : never; --type TNumber7 = "10e2" extends `${infer N extends number}` ? N : never; --type TNumber8 = "abcd" extends `${infer N extends number}` ? N : never; --type TBigInt0 = "100" extends `${infer N extends bigint}` ? N : never; --type TBigInt1 = "-100" extends `${infer N extends bigint}` ? N : never; --type TBigInt2 = "0x10" extends `${infer N extends bigint}` ? N : never; --type TBigInt3 = "0o10" extends `${infer N extends bigint}` ? N : never; --type TBigInt4 = "0b10" extends `${infer N extends bigint}` ? N : never; --type TBigInt5 = "1.1" extends `${infer N extends bigint}` ? N : never; --type TBigInt6 = "10e2" extends `${infer N extends bigint}` ? N : never; --type TBigInt7 = "abcd" extends `${infer N extends bigint}` ? N : never; --type TBoolean0 = "true" extends `${infer T extends boolean}` ? T : never; --type TBoolean1 = "false" extends `${infer T extends boolean}` ? T : never; --type TBoolean2 = "abcd" extends `${infer T extends boolean}` ? T : never; --type TNull0 = "null" extends `${infer T extends null}` ? T : never; --type TNull1 = "abcd" extends `${infer T extends null}` ? T : never; --type TUndefined0 = "undefined" extends `${infer T extends undefined}` ? T : never; --type TUndefined1 = "abcd" extends `${infer T extends undefined}` ? T : never; -+// infer from number -+type TNumber0 = "100" extends `${infer N extends number}` ? N : never; // 100 -+type TNumber1 = "-100" extends `${infer N extends number}` ? N : never; // -100 -+type TNumber2 = "1.1" extends `${infer N extends number}` ? N : never; // 1.1 -+type TNumber3 = "8e-11" extends `${infer N extends number}` ? N : never; // 8e-11 (0.00000000008) -+type TNumber4 = "0x10" extends `${infer N extends number}` ? N : never; // number (not round-trippable) -+type TNumber5 = "0o10" extends `${infer N extends number}` ? N : never; // number (not round-trippable) -+type TNumber6 = "0b10" extends `${infer N extends number}` ? N : never; // number (not round-trippable) -+type TNumber7 = "10e2" extends `${infer N extends number}` ? N : never; // number (not round-trippable) -+type TNumber8 = "abcd" extends `${infer N extends number}` ? N : never; // never -+// infer from bigint -+type TBigInt0 = "100" extends `${infer N extends bigint}` ? N : never; // 100n -+type TBigInt1 = "-100" extends `${infer N extends bigint}` ? N : never; // -100n -+type TBigInt2 = "0x10" extends `${infer N extends bigint}` ? N : never; // bigint (not round-trippable) -+type TBigInt3 = "0o10" extends `${infer N extends bigint}` ? N : never; // bigint (not round-trippable) -+type TBigInt4 = "0b10" extends `${infer N extends bigint}` ? N : never; // bigint (not round-trippable) -+type TBigInt5 = "1.1" extends `${infer N extends bigint}` ? N : never; // never -+type TBigInt6 = "10e2" extends `${infer N extends bigint}` ? N : never; // never -+type TBigInt7 = "abcd" extends `${infer N extends bigint}` ? N : never; // never -+// infer from boolean -+type TBoolean0 = "true" extends `${infer T extends boolean}` ? T : never; // true -+type TBoolean1 = "false" extends `${infer T extends boolean}` ? T : never; // false -+type TBoolean2 = "abcd" extends `${infer T extends boolean}` ? T : never; // never -+// infer from null -+type TNull0 = "null" extends `${infer T extends null}` ? T : never; // null -+type TNull1 = "abcd" extends `${infer T extends null}` ? T : never; // never -+// infer from undefined -+type TUndefined0 = "undefined" extends `${infer T extends undefined}` ? T : never; // undefined -+type TUndefined1 = "abcd" extends `${infer T extends undefined}` ? T : never; // never -+// infer from literal enums - declare const enum StringLiteralEnum { - Zero = "0", - True = "true", -@@= skipped -31, +37 lines =@@ - Undefined = "undefined", - Null = "null" - } --type TStringLiteralEnum0 = "0" extends `${infer T extends StringLiteralEnum}` ? T : never; -+type TStringLiteralEnum0 = "0" extends `${infer T extends StringLiteralEnum}` ? T : never; // StringLiteralEnum.Zero - declare const enum NumberLiteralEnum { - Zero = 0, - One = 1 - } --type TNumberLiteralEnum0 = "0" extends `${infer T extends NumberLiteralEnum}` ? T : never; -+type TNumberLiteralEnum0 = "0" extends `${infer T extends NumberLiteralEnum}` ? T : never; // NumberLiteralEnum.Zero -+// infer from non-literal enums - declare const enum NonLiteralEnum { - Zero = 0, - One = 1 - } --type TNonLiteralEnum0 = "0" extends `${infer T extends NonLiteralEnum}` ? T : never; --type PString00 = "0" extends `${infer T extends string | StringLiteralEnum}` ? T : never; --type PString01 = "0" extends `${infer T extends string | number}` ? T : never; --type PString02 = "0" extends `${infer T extends string | NonLiteralEnum}` ? T : never; --type PString03 = "0" extends `${infer T extends string | 0}` ? T : never; --type PString04 = "0" extends `${infer T extends string | NumberLiteralEnum}` ? T : never; --type PString05 = "0" extends `${infer T extends string | bigint}` ? T : never; --type PString06 = "0" extends `${infer T extends string | 0n}` ? T : never; --type PString07 = "true" extends `${infer T extends string | boolean}` ? T : never; --type PString08 = "false" extends `${infer T extends string | boolean}` ? T : never; --type PString09 = "true" extends `${infer T extends string | true}` ? T : never; --type PString10 = "false" extends `${infer T extends string | false}` ? T : never; --type PString11 = "undefined" extends `${infer T extends string | undefined}` ? T : never; --type PString12 = "null" extends `${infer T extends string | null}` ? T : never; --type PTemplate00 = "10" extends `${infer T extends `1${string}` | number}` ? T : never; --type PTemplate01 = "10" extends `${infer T extends `1${string}` | NonLiteralEnum}` ? T : never; --type PTemplate02 = "10" extends `${infer T extends `1${string}` | 10}` ? T : never; --type PTemplate03 = "10" extends `${infer T extends `1${string}` | NumberLiteralEnum}` ? T : never; --type PTemplate04 = "10" extends `${infer T extends `1${string}` | bigint}` ? T : never; --type PTemplate05 = "10" extends `${infer T extends `1${string}` | 10n}` ? T : never; --type PTemplate06 = "true" extends `${infer T extends `${string}e` | boolean}` ? T : never; --type PTemplate07 = "false" extends `${infer T extends `${string}e` | boolean}` ? T : never; --type PTemplate08 = "true" extends `${infer T extends `${"t"}${string}` | true}` ? T : never; --type PTemplate09 = "false" extends `${infer T extends `${"f"}${string}` | false}` ? T : never; --type PTemplate10 = "undefined" extends `${infer T extends `${"u"}${string}` | undefined}` ? T : never; --type PTemplate11 = "null" extends `${infer T extends `${"n"}${string}` | null}` ? T : never; --type PStringLiteral00 = "0" extends `${infer T extends "0" | number}` ? T : never; --type PStringLiteral01 = "0" extends `${infer T extends "0" | NonLiteralEnum}` ? T : never; --type PStringLiteral02 = "0" extends `${infer T extends "0" | 0}` ? T : never; --type PStringLiteral03 = "0" extends `${infer T extends "0" | NumberLiteralEnum}` ? T : never; --type PStringLiteral04 = "0" extends `${infer T extends "0" | bigint}` ? T : never; --type PStringLiteral05 = "0" extends `${infer T extends "0" | 0n}` ? T : never; --type PStringLiteral06 = "true" extends `${infer T extends "true" | "false" | boolean}` ? T : never; --type PStringLiteral07 = "false" extends `${infer T extends "true" | "false" | boolean}` ? T : never; --type PStringLiteral08 = "true" extends `${infer T extends "true" | true}` ? T : never; --type PStringLiteral09 = "false" extends `${infer T extends "false" | false}` ? T : never; --type PStringLiteral10 = "undefined" extends `${infer T extends "undefined" | undefined}` ? T : never; --type PStringLiteral11 = "null" extends `${infer T extends "null" | null}` ? T : never; --type PStringLiteralEnum00 = "0" extends `${infer T extends StringLiteralEnum | number}` ? T : never; --type PStringLiteralEnum01 = "0" extends `${infer T extends StringLiteralEnum | NonLiteralEnum}` ? T : never; --type PStringLiteralEnum02 = "0" extends `${infer T extends StringLiteralEnum | 0}` ? T : never; --type PStringLiteralEnum03 = "0" extends `${infer T extends StringLiteralEnum | NumberLiteralEnum}` ? T : never; --type PStringLiteralEnum04 = "0" extends `${infer T extends StringLiteralEnum | bigint}` ? T : never; --type PStringLiteralEnum05 = "0" extends `${infer T extends StringLiteralEnum | 0n}` ? T : never; --type PStringLiteralEnum06 = "true" extends `${infer T extends StringLiteralEnum | boolean}` ? T : never; --type PStringLiteralEnum07 = "false" extends `${infer T extends StringLiteralEnum | boolean}` ? T : never; --type PStringLiteralEnum08 = "true" extends `${infer T extends StringLiteralEnum | true}` ? T : never; --type PStringLiteralEnum09 = "false" extends `${infer T extends StringLiteralEnum | false}` ? T : never; --type PStringLiteralEnum10 = "undefined" extends `${infer T extends StringLiteralEnum | undefined}` ? T : never; --type PStringLiteralEnum11 = "null" extends `${infer T extends StringLiteralEnum | null}` ? T : never; --type PNumber0 = "0" extends `${infer T extends number | NonLiteralEnum}` ? T : never; --type PNumber1 = "0" extends `${infer T extends number | NumberLiteralEnum}` ? T : never; --type PNumber2 = "0" extends `${infer T extends number | bigint}` ? T : never; --type PNumber3 = "0" extends `${infer T extends number | 0n}` ? T : never; --type PEnum0 = "0" extends `${infer T extends NonLiteralEnum | NumberLiteralEnum}` ? T : never; --type PEnum1 = "0" extends `${infer T extends NonLiteralEnum | bigint}` ? T : never; --type PEnum2 = "0" extends `${infer T extends NonLiteralEnum | 0n}` ? T : never; --type PNumberLiteral0 = "0" extends `${infer T extends 0 | bigint}` ? T : never; --type PNumberLiteral1 = "0" extends `${infer T extends 0 | 0n}` ? T : never; --type PNumberLiteralEnum0 = "0" extends `${infer T extends NumberLiteralEnum | bigint}` ? T : never; --type PNumberLiteralEnum1 = "0" extends `${infer T extends NumberLiteralEnum | 0n}` ? T : never; --type PExclude0 = "0" extends `${infer T extends "1" | number}` ? T : never; --type PExclude1 = "0" extends `${infer T extends `1${string}` | number}` ? T : never; --type PExclude2 = "0" extends `${infer T extends 1 | bigint}` ? T : never; --type PExclude3 = "0" extends `${infer T extends NumberLiteralEnum.One | bigint}` ? T : never; --type PExclude4 = "100000000000000000000000" extends `${infer T extends number | bigint}` ? T : never; --type TPrefix0 = "100" extends `${infer T extends number}${string}` ? T : never; --type TPrefix1 = "trueabc" extends `${infer T extends boolean}${string}` ? T : never; --type TPrefix2 = `100:${string}` extends `${infer T extends number}:${string}` ? T : never; -+type TNonLiteralEnum0 = "0" extends `${infer T extends NonLiteralEnum}` ? T : never; // 0 -+// infer using priority: -+// string > template-literal > (string-literal | string-literal-enum) > -+// number > enum > (number-literal | number-literal-enum) > -+// bigint > bigint-literal > -+// boolean > (boolean-literal | undefined | null) -+// #region string -+// string > string-literal-enum -+type PString00 = "0" extends `${infer T extends string | StringLiteralEnum}` ? T : never; // "0" -+// string > number -+type PString01 = "0" extends `${infer T extends string | number}` ? T : never; // "0" -+// string > enum -+type PString02 = "0" extends `${infer T extends string | NonLiteralEnum}` ? T : never; // "0" -+// string > (number-literal | number-literal-enum) -+type PString03 = "0" extends `${infer T extends string | 0}` ? T : never; // "0" -+type PString04 = "0" extends `${infer T extends string | NumberLiteralEnum}` ? T : never; // "0" -+// string > bigint -+type PString05 = "0" extends `${infer T extends string | bigint}` ? T : never; // "0" -+// string > bigint-literal -+type PString06 = "0" extends `${infer T extends string | 0n}` ? T : never; // "0" -+// string > boolean -+type PString07 = "true" extends `${infer T extends string | boolean}` ? T : never; // "true" -+type PString08 = "false" extends `${infer T extends string | boolean}` ? T : never; // "false" -+// string > (boolean-literal | undefined | null) -+type PString09 = "true" extends `${infer T extends string | true}` ? T : never; // "true" -+type PString10 = "false" extends `${infer T extends string | false}` ? T : never; // "false" -+type PString11 = "undefined" extends `${infer T extends string | undefined}` ? T : never; // "undefined" -+type PString12 = "null" extends `${infer T extends string | null}` ? T : never; // "null" -+// #endregion string -+// #region template-literal -+// template-literal > number -+type PTemplate00 = "10" extends `${infer T extends `1${string}` | number}` ? T : never; // "10" -+// template-literal > enum -+type PTemplate01 = "10" extends `${infer T extends `1${string}` | NonLiteralEnum}` ? T : never; // "10" -+// template-literal > (number-literal | number-literal-enum) -+type PTemplate02 = "10" extends `${infer T extends `1${string}` | 10}` ? T : never; // "10" -+type PTemplate03 = "10" extends `${infer T extends `1${string}` | NumberLiteralEnum}` ? T : never; // "10" -+// template-literal > bigint -+type PTemplate04 = "10" extends `${infer T extends `1${string}` | bigint}` ? T : never; // "10" -+// template-literal > bigint-literal -+type PTemplate05 = "10" extends `${infer T extends `1${string}` | 10n}` ? T : never; // "10" -+// template-literal > boolean -+type PTemplate06 = "true" extends `${infer T extends `${string}e` | boolean}` ? T : never; // "true" -+type PTemplate07 = "false" extends `${infer T extends `${string}e` | boolean}` ? T : never; // "false" -+// template-literal > (boolean-literal | undefined | null) -+type PTemplate08 = "true" extends `${infer T extends `${"t"}${string}` | true}` ? T : never; // "true" -+type PTemplate09 = "false" extends `${infer T extends `${"f"}${string}` | false}` ? T : never; // "false" -+type PTemplate10 = "undefined" extends `${infer T extends `${"u"}${string}` | undefined}` ? T : never; // "undefined" -+type PTemplate11 = "null" extends `${infer T extends `${"n"}${string}` | null}` ? T : never; // "null" -+// #endregion template-literal -+// #region string-literal -+// string-literal > number -+type PStringLiteral00 = "0" extends `${infer T extends "0" | number}` ? T : never; // "0" -+// string-literal > enum -+type PStringLiteral01 = "0" extends `${infer T extends "0" | NonLiteralEnum}` ? T : never; // "0" -+// string-literal > (number-literal | number-literal-enum) -+type PStringLiteral02 = "0" extends `${infer T extends "0" | 0}` ? T : never; // "0" -+type PStringLiteral03 = "0" extends `${infer T extends "0" | NumberLiteralEnum}` ? T : never; // "0" -+// string-literal > bigint -+type PStringLiteral04 = "0" extends `${infer T extends "0" | bigint}` ? T : never; // "0" -+// string-literal > bigint-literal -+type PStringLiteral05 = "0" extends `${infer T extends "0" | 0n}` ? T : never; // "0" -+// string-literal > boolean -+type PStringLiteral06 = "true" extends `${infer T extends "true" | "false" | boolean}` ? T : never; // "true" -+type PStringLiteral07 = "false" extends `${infer T extends "true" | "false" | boolean}` ? T : never; // "false" -+// string-literal > (boolean-literal | undefined | null) -+type PStringLiteral08 = "true" extends `${infer T extends "true" | true}` ? T : never; // "true" -+type PStringLiteral09 = "false" extends `${infer T extends "false" | false}` ? T : never; // "false" -+type PStringLiteral10 = "undefined" extends `${infer T extends "undefined" | undefined}` ? T : never; // "undefined" -+type PStringLiteral11 = "null" extends `${infer T extends "null" | null}` ? T : never; // "null" -+// #endregion string-literal -+// #region string-literal-enum -+// string-literal-enum > number -+type PStringLiteralEnum00 = "0" extends `${infer T extends StringLiteralEnum | number}` ? T : never; // StringLiteralEnum.Zero -+// string-literal-enum > enum -+type PStringLiteralEnum01 = "0" extends `${infer T extends StringLiteralEnum | NonLiteralEnum}` ? T : never; // StringLiteralEnum.Zero -+// string-literal-enum > (number-literal | number-literal-enum) -+type PStringLiteralEnum02 = "0" extends `${infer T extends StringLiteralEnum | 0}` ? T : never; // StringLiteralEnum.Zero -+type PStringLiteralEnum03 = "0" extends `${infer T extends StringLiteralEnum | NumberLiteralEnum}` ? T : never; // StringLiteralEnum.Zero -+// string-literal-enum > bigint -+type PStringLiteralEnum04 = "0" extends `${infer T extends StringLiteralEnum | bigint}` ? T : never; // StringLiteralEnum.Zero -+// string-literal-enum > bigint-literal -+type PStringLiteralEnum05 = "0" extends `${infer T extends StringLiteralEnum | 0n}` ? T : never; // StringLiteralEnum.Zero -+// string-literal-enum > boolean -+type PStringLiteralEnum06 = "true" extends `${infer T extends StringLiteralEnum | boolean}` ? T : never; // StringLiteralEnum.True -+type PStringLiteralEnum07 = "false" extends `${infer T extends StringLiteralEnum | boolean}` ? T : never; // StringLiteralEnum.False -+// string-literal-enum > (boolean-literal | undefined | null) -+type PStringLiteralEnum08 = "true" extends `${infer T extends StringLiteralEnum | true}` ? T : never; // StringLiteralEnum.True -+type PStringLiteralEnum09 = "false" extends `${infer T extends StringLiteralEnum | false}` ? T : never; // StringLiteralEnum.False -+type PStringLiteralEnum10 = "undefined" extends `${infer T extends StringLiteralEnum | undefined}` ? T : never; // StringLiteralEnum.Undefined -+type PStringLiteralEnum11 = "null" extends `${infer T extends StringLiteralEnum | null}` ? T : never; // StringLiteralEnum.Null -+// #endregion string-literal-enum -+// #region number -+// number > enum -+type PNumber0 = "0" extends `${infer T extends number | NonLiteralEnum}` ? T : never; // 0 -+// number > number-literal-enum -+type PNumber1 = "0" extends `${infer T extends number | NumberLiteralEnum}` ? T : never; // 0 -+// number > bigint -+type PNumber2 = "0" extends `${infer T extends number | bigint}` ? T : never; // 0 -+// number > bigint-literal -+type PNumber3 = "0" extends `${infer T extends number | 0n}` ? T : never; // 0 -+// #endregion number -+// #region enum -+// enum > number-literal-enum -+type PEnum0 = "0" extends `${infer T extends NonLiteralEnum | NumberLiteralEnum}` ? T : never; // 0 -+// enum > bigint -+type PEnum1 = "0" extends `${infer T extends NonLiteralEnum | bigint}` ? T : never; // 0 -+// enum > bigint-literal -+type PEnum2 = "0" extends `${infer T extends NonLiteralEnum | 0n}` ? T : never; // 0 -+// #endregion enum -+// #region number-literal -+// number-literal > bigint -+type PNumberLiteral0 = "0" extends `${infer T extends 0 | bigint}` ? T : never; // 0 -+// number-literal > bigint-literal -+type PNumberLiteral1 = "0" extends `${infer T extends 0 | 0n}` ? T : never; // 0 -+// #endregion number-literal -+// #region number-literal-enum -+// number-literal-enum > bigint -+type PNumberLiteralEnum0 = "0" extends `${infer T extends NumberLiteralEnum | bigint}` ? T : never; // NumberLiteralEnum.Zero -+// number-literal-enum > bigint-literal -+type PNumberLiteralEnum1 = "0" extends `${infer T extends NumberLiteralEnum | 0n}` ? T : never; // NumberLiteralEnum.Zero -+// #endregion number-literal-enum -+// non-matchable constituents are excluded -+type PExclude0 = "0" extends `${infer T extends "1" | number}` ? T : never; // 0 -+type PExclude1 = "0" extends `${infer T extends `1${string}` | number}` ? T : never; // 0 -+type PExclude2 = "0" extends `${infer T extends 1 | bigint}` ? T : never; // 0n -+type PExclude3 = "0" extends `${infer T extends NumberLiteralEnum.One | bigint}` ? T : never; // 0n -+type PExclude4 = "100000000000000000000000" extends `${infer T extends number | bigint}` ? T : never; // 100000000000000000000000n -+// infer to prefix from string -+type TPrefix0 = "100" extends `${infer T extends number}${string}` ? T : never; // 1 -+type TPrefix1 = "trueabc" extends `${infer T extends boolean}${string}` ? T : never; // boolean (T only receives 't', not the whole string) -+type TPrefix2 = `100:${string}` extends `${infer T extends number}:${string}` ? T : never; // 100 (T receives '100' because it scans until ':') -+// can use union w/multiple branches to extract each possibility - type ExtractPrimitives = T | (T extends `${infer U extends number}` ? U : never) | (T extends `${infer U extends bigint}` ? U : never) | (T extends `${infer U extends boolean | null | undefined}` ? U : never); --type TExtract0 = ExtractPrimitives<"100">; --type TExtract1 = ExtractPrimitives<"1.1">; --type TExtract2 = ExtractPrimitives<"true">; -+type TExtract0 = ExtractPrimitives<"100">; // "100" | 100 | 100n -+type TExtract1 = ExtractPrimitives<"1.1">; // "1.1" | 1.1 -+type TExtract2 = ExtractPrimitives<"true">; // "true" | true -+// example use case (based on old TypedObjects proposal): -+// Use constrained `infer` in template literal to get ordinal indices as numbers: - type IndexFor = S extends `${infer N extends number}` ? N : never; --type IndicesOf = IndexFor>; -+type IndicesOf = IndexFor>; // ordinal indices as number literals - interface FieldDefinition { - readonly name: string; - readonly type: "i8" | "i16" | "i32" | "i64" | "u8" | "u16" | "u32" | "u64" | "f32" | "f64"; - } - type FieldType = T extends "i8" | "i16" | "i32" | "u8" | "u16" | "u32" | "f32" | "f64" ? number : T extends "f32" | "f64" ? bigint : never; -+// Generates named members like `{ x: number, y: bigint }` from `[{ name: "x", type: "i32" }, { name: "y", type: "i64" }]` - type TypedObjectNamedMembers = { - [P in TDef[number]["name"]]: FieldType["type"]>; - }; -+// Generates ordinal members like `{ 0: number, 1: bigint }` from `[{ name: "x", type: "i32" }, { name: "y", type: "i64" }]` - type TypedObjectOrdinalMembers = { - [I in Extract]: FieldType["type"]>; - }; -+// Default members - interface TypedObjectMembers { -+ // get/set a field by name - get(key: K): FieldType["type"]>; - set(key: K, value: FieldType["type"]>): void; -+ // get/set a field by index - getIndex>(index: I): FieldType["type"]>; - setIndex>(index: I, value: FieldType["type"]>): void; - } - type TypedObject = TypedObjectMembers & TypedObjectNamedMembers & TypedObjectOrdinalMembers; -+// NOTE: type would normally be created from something like `const Point = TypedObject([...])` from which we would infer the type - type Point = TypedObject<[ - { - name: "x"; -@@= skipped -120, +193 lines =@@ - } - ]>; - declare const p: Point; -+// function inference - declare function f1(s: `**${T}**`): T; - declare function f2(s: `**${T}**`): T; - declare function f3(s: `**${T}**`): T; \ No newline at end of file + p.getIndex(2); // error, 2 is not a valid index \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.js b/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.js index 18657ae269..33289c8e9a 100644 --- a/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.js +++ b/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.js @@ -406,8 +406,6 @@ vue.hello; //// [thisTypeInObjectLiterals2.d.ts] -// In methods of an object literal with no contextual type, 'this' has the type -// of the object literal. declare let obj1: { a: number; f(): number; @@ -418,8 +416,6 @@ declare let obj1: { readonly d: number; e: string; }; -// In methods of an object literal with a contextual type, 'this' has the -// contextual type. type Point = { x: number; y: number; @@ -432,11 +428,9 @@ declare let p3: Point | undefined; declare let p4: Point | null | undefined; declare function f1(p: Point): void; declare function f2(p: Point | null | undefined): void; -// In methods of an object literal with a contextual type that includes some -// ThisType, 'this' is of type T. type ObjectDescriptor = { data?: D; - methods?: M & ThisType; // Type of 'this' in methods is D & M + methods?: M & ThisType; }; declare function makeObject(desc: ObjectDescriptor): D & M; declare let x1: { @@ -445,8 +439,6 @@ declare let x1: { } & { moveBy(dx: number, dy: number): void; }; -// In methods contained in an object literal with a contextual type that includes -// some ThisType, 'this' is of type T. type ObjectDescriptor2 = ThisType & { data?: D; methods?: M; @@ -458,7 +450,6 @@ declare let x2: { } & { moveBy(dx: number, dy: number): void; }; -// Check pattern similar to Object.defineProperty and Object.defineProperties type PropDesc = { value?: T; get?(): T; @@ -475,7 +466,6 @@ declare let p12: Point & { foo: number; bar: number; }; -// Proof of concept for typing of Vue.js type Accessors = { [K in keyof T]: (() => T[K]) | Computed; }; diff --git a/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.js.diff b/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.js.diff index bc4cb57929..91fd7b25de 100644 --- a/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/thisTypeInObjectLiterals2.js.diff @@ -7,60 +7,4 @@ -"use strict"; // In methods of an object literal with no contextual type, 'this' has the type // of the object literal. - let obj1 = { -@@= skipped -162, +161 lines =@@ - - - //// [thisTypeInObjectLiterals2.d.ts] -+// In methods of an object literal with no contextual type, 'this' has the type -+// of the object literal. - declare let obj1: { - a: number; - f(): number; -@@= skipped -10, +12 lines =@@ - readonly d: number; - e: string; - }; -+// In methods of an object literal with a contextual type, 'this' has the -+// contextual type. - type Point = { - x: number; - y: number; -@@= skipped -12, +14 lines =@@ - declare let p4: Point | null | undefined; - declare function f1(p: Point): void; - declare function f2(p: Point | null | undefined): void; -+// In methods of an object literal with a contextual type that includes some -+// ThisType, 'this' is of type T. - type ObjectDescriptor = { - data?: D; -- methods?: M & ThisType; -+ methods?: M & ThisType; // Type of 'this' in methods is D & M - }; - declare function makeObject(desc: ObjectDescriptor): D & M; - declare let x1: { -@@= skipped -11, +13 lines =@@ - } & { - moveBy(dx: number, dy: number): void; - }; -+// In methods contained in an object literal with a contextual type that includes -+// some ThisType, 'this' is of type T. - type ObjectDescriptor2 = ThisType & { - data?: D; - methods?: M; -@@= skipped -11, +13 lines =@@ - } & { - moveBy(dx: number, dy: number): void; - }; -+// Check pattern similar to Object.defineProperty and Object.defineProperties - type PropDesc = { - value?: T; - get?(): T; -@@= skipped -16, +17 lines =@@ - foo: number; - bar: number; - }; -+// Proof of concept for typing of Vue.js - type Accessors = { - [K in keyof T]: (() => T[K]) | Computed; - }; \ No newline at end of file + let obj1 = { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescript.js b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescript.js index 0fff8f89ac..7f4c10b98e 100644 --- a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescript.js +++ b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescript.js @@ -27,11 +27,31 @@ exports.Bet = Bet; //// [file.d.ts] -// @ts-nocheck -export declare const a: any; // This is an error, ofc, `Operator '+' cannot be applied to types '1' and '{}'`, which will be suppressed by the `nocheck` comment +export declare const a: any; export interface Aleph { q: number; } export declare class Bet implements Aleph { - q: string; // And so will this implements error + q: string; } + + +//// [DtsFileErrors] + + +file.d.ts(6,5): error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. + Type 'string' is not assignable to type 'number'. + + +==== file.d.ts (1 errors) ==== + export declare const a: any; + export interface Aleph { + q: number; + } + export declare class Bet implements Aleph { + q: string; + ~ +!!! error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. +!!! error TS2416: Type 'string' is not assignable to type 'number'. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescript.js.diff b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescript.js.diff index 1b9f95d87e..5d67fbc164 100644 --- a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescript.js.diff +++ b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescript.js.diff @@ -16,37 +16,3 @@ + q = "lol"; // And so will this implements error } exports.Bet = Bet; - - - //// [file.d.ts] --export declare const a: any; -+// @ts-nocheck -+export declare const a: any; // This is an error, ofc, `Operator '+' cannot be applied to types '1' and '{}'`, which will be suppressed by the `nocheck` comment - export interface Aleph { - q: number; - } - export declare class Bet implements Aleph { -- q: string; -+ q: string; // And so will this implements error - } -- -- --//// [DtsFileErrors] -- -- --file.d.ts(6,5): error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. -- Type 'string' is not assignable to type 'number'. -- -- --==== file.d.ts (1 errors) ==== -- export declare const a: any; -- export interface Aleph { -- q: number; -- } -- export declare class Bet implements Aleph { -- q: string; -- ~ --!!! error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. --!!! error TS2416: Type 'string' is not assignable to type 'number'. -- } -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments1.js b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments1.js index ef436592e6..248fb75544 100644 --- a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments1.js +++ b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments1.js @@ -27,11 +27,31 @@ exports.Bet = Bet; //// [file.d.ts] -// @ts-nocheck additional comments -export declare const a: any; // This is an error, ofc, `Operator '+' cannot be applied to types '1' and '{}'`, which will be suppressed by the `nocheck` comment +export declare const a: any; export interface Aleph { q: number; } export declare class Bet implements Aleph { - q: string; // And so will this implements error + q: string; } + + +//// [DtsFileErrors] + + +file.d.ts(6,5): error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. + Type 'string' is not assignable to type 'number'. + + +==== file.d.ts (1 errors) ==== + export declare const a: any; + export interface Aleph { + q: number; + } + export declare class Bet implements Aleph { + q: string; + ~ +!!! error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. +!!! error TS2416: Type 'string' is not assignable to type 'number'. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments1.js.diff b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments1.js.diff index bd395fde51..d859c333f5 100644 --- a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments1.js.diff @@ -16,37 +16,3 @@ + q = 'lol'; // And so will this implements error } exports.Bet = Bet; - - - //// [file.d.ts] --export declare const a: any; -+// @ts-nocheck additional comments -+export declare const a: any; // This is an error, ofc, `Operator '+' cannot be applied to types '1' and '{}'`, which will be suppressed by the `nocheck` comment - export interface Aleph { - q: number; - } - export declare class Bet implements Aleph { -- q: string; -+ q: string; // And so will this implements error - } -- -- --//// [DtsFileErrors] -- -- --file.d.ts(6,5): error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. -- Type 'string' is not assignable to type 'number'. -- -- --==== file.d.ts (1 errors) ==== -- export declare const a: any; -- export interface Aleph { -- q: number; -- } -- export declare class Bet implements Aleph { -- q: string; -- ~ --!!! error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. --!!! error TS2416: Type 'string' is not assignable to type 'number'. -- } -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments2.js b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments2.js index a0be094c97..73ef57b95c 100644 --- a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments2.js +++ b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments2.js @@ -27,11 +27,31 @@ exports.Bet = Bet; //// [file.d.ts] -// @ts-nocheck: additional comments -export declare const a: any; // This is an error, ofc, `Operator '+' cannot be applied to types '1' and '{}'`, which will be suppressed by the `nocheck` comment +export declare const a: any; export interface Aleph { q: number; } export declare class Bet implements Aleph { - q: string; // And so will this implements error + q: string; } + + +//// [DtsFileErrors] + + +file.d.ts(6,5): error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. + Type 'string' is not assignable to type 'number'. + + +==== file.d.ts (1 errors) ==== + export declare const a: any; + export interface Aleph { + q: number; + } + export declare class Bet implements Aleph { + q: string; + ~ +!!! error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. +!!! error TS2416: Type 'string' is not assignable to type 'number'. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments2.js.diff b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments2.js.diff index ff1ec52207..2d2b27a026 100644 --- a/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/tsNoCheckForTypescriptComments2.js.diff @@ -16,37 +16,3 @@ + q = "lol"; // And so will this implements error } exports.Bet = Bet; - - - //// [file.d.ts] --export declare const a: any; -+// @ts-nocheck: additional comments -+export declare const a: any; // This is an error, ofc, `Operator '+' cannot be applied to types '1' and '{}'`, which will be suppressed by the `nocheck` comment - export interface Aleph { - q: number; - } - export declare class Bet implements Aleph { -- q: string; -+ q: string; // And so will this implements error - } -- -- --//// [DtsFileErrors] -- -- --file.d.ts(6,5): error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. -- Type 'string' is not assignable to type 'number'. -- -- --==== file.d.ts (1 errors) ==== -- export declare const a: any; -- export interface Aleph { -- q: number; -- } -- export declare class Bet implements Aleph { -- q: string; -- ~ --!!! error TS2416: Property 'q' in type 'Bet' is not assignable to the same property in base type 'Aleph'. --!!! error TS2416: Type 'string' is not assignable to type 'number'. -- } -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeArgumentsWithStringLiteralTypes01.js b/testdata/baselines/reference/submodule/conformance/typeArgumentsWithStringLiteralTypes01.js index 045e07a2b3..7d189529de 100644 --- a/testdata/baselines/reference/submodule/conformance/typeArgumentsWithStringLiteralTypes01.js +++ b/testdata/baselines/reference/submodule/conformance/typeArgumentsWithStringLiteralTypes01.js @@ -219,9 +219,6 @@ declare function fun1(x: T, y: T): T; declare function fun2(x: T, y: U): T | U; declare function fun3(...args: T[]): T; declare namespace n1 { - // The following should all come back as strings. - // They should be assignable to/from something of a type 'string'. - // They should not be assignable to either "Hello" or "World". let a: string; let b: string; let c: string; @@ -229,8 +226,6 @@ declare namespace n1 { let e: string; } declare namespace n2 { - // The following (regardless of errors) should come back typed - // as "Hello" (or "Hello" | "Hello"). let a: "Hello"; let b: "Hello"; let c: "Hello"; @@ -238,8 +233,6 @@ declare namespace n2 { let e: "Hello"; } declare namespace n3 { - // The following (regardless of errors) should come back typed - // as "Hello" | "World" (or "World" | "Hello"). let a: "Hello" | "World"; let b: "Hello" | "World"; let c: "Hello" | "World"; diff --git a/testdata/baselines/reference/submodule/conformance/typeArgumentsWithStringLiteralTypes01.js.diff b/testdata/baselines/reference/submodule/conformance/typeArgumentsWithStringLiteralTypes01.js.diff deleted file mode 100644 index 807504fc5c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeArgumentsWithStringLiteralTypes01.js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.typeArgumentsWithStringLiteralTypes01.js -+++ new.typeArgumentsWithStringLiteralTypes01.js -@@= skipped -218, +218 lines =@@ - declare function fun2(x: T, y: U): T | U; - declare function fun3(...args: T[]): T; - declare namespace n1 { -+ // The following should all come back as strings. -+ // They should be assignable to/from something of a type 'string'. -+ // They should not be assignable to either "Hello" or "World". - let a: string; - let b: string; - let c: string; -@@= skipped -7, +10 lines =@@ - let e: string; - } - declare namespace n2 { -+ // The following (regardless of errors) should come back typed -+ // as "Hello" (or "Hello" | "Hello"). - let a: "Hello"; - let b: "Hello"; - let c: "Hello"; -@@= skipped -7, +9 lines =@@ - let e: "Hello"; - } - declare namespace n3 { -+ // The following (regardless of errors) should come back typed -+ // as "Hello" | "World" (or "World" | "Hello"). - let a: "Hello" | "World"; - let b: "Hello" | "World"; - let c: "Hello" | "World"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment29.js b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment29.js index 0939758bfb..2726349e59 100644 --- a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment29.js +++ b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment29.js @@ -205,15 +205,12 @@ declare namespace Ns { export function foo(): typeof ExpandoNamespace; export {}; } -// Should not work in Typescript -- must be const declare var ExpandoExpr2: (n: number) => string; declare var n: number; -// Should not work in typescript -- classes already have statics declare class ExpandoClass { n: number; } declare var n: number; -// Class expressions shouldn't work in typescript either declare var ExpandoExpr3: { new (): { n: number; diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment29.js.diff b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment29.js.diff index 4f9133b0df..ec27c63891 100644 --- a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment29.js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment29.js.diff @@ -80,16 +80,4 @@ - } export function foo(): typeof ExpandoNamespace; export {}; - } -+// Should not work in Typescript -- must be const - declare var ExpandoExpr2: (n: number) => string; - declare var n: number; -+// Should not work in typescript -- classes already have statics - declare class ExpandoClass { - n: number; - } - declare var n: number; -+// Class expressions shouldn't work in typescript either - declare var ExpandoExpr3: { - new (): { - n: number; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardFunctionOfFormThis.js b/testdata/baselines/reference/submodule/conformance/typeGuardFunctionOfFormThis.js index 15035c02aa..b9a158fdcb 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardFunctionOfFormThis.js +++ b/testdata/baselines/reference/submodule/conformance/typeGuardFunctionOfFormThis.js @@ -260,18 +260,6 @@ declare let a: RoyalGuard; interface GuardInterface extends RoyalGuard { } declare let b: GuardInterface; -// if (((a.isLeader)())) { -// a.lead(); -// } -// else if (((a).isFollower())) { -// a.follow(); -// } -// if (((a["isLeader"])())) { -// a.lead(); -// } -// else if (((a)["isFollower"]())) { -// a.follow(); -// } declare var holder2: { a: RoyalGuard; }; diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardFunctionOfFormThis.js.diff b/testdata/baselines/reference/submodule/conformance/typeGuardFunctionOfFormThis.js.diff index 0bde4cb964..43fd1873b8 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardFunctionOfFormThis.js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeGuardFunctionOfFormThis.js.diff @@ -20,23 +20,4 @@ + }; } class ArrowElite extends ArrowGuard { - defend() { } -@@= skipped -68, +66 lines =@@ - interface GuardInterface extends RoyalGuard { - } - declare let b: GuardInterface; -+// if (((a.isLeader)())) { -+// a.lead(); -+// } -+// else if (((a).isFollower())) { -+// a.follow(); -+// } -+// if (((a["isLeader"])())) { -+// a.lead(); -+// } -+// else if (((a)["isFollower"]())) { -+// a.follow(); -+// } - declare var holder2: { - a: RoyalGuard; - }; \ No newline at end of file + defend() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMember.js b/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMember.js index c53ac8ec6d..218a3c8f15 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMember.js +++ b/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMember.js @@ -151,7 +151,6 @@ var Test; //// [typeGuardOfFormThisMember.d.ts] -// There's a 'File' class in the stdlib, wrap with a namespace to avoid collision declare namespace Test { class FileSystemObject { path: string; diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMember.js.diff b/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMember.js.diff index 38ac42643a..f1c952b53c 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMember.js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMember.js.diff @@ -32,13 +32,7 @@ } Test.Directory = Directory; let file = new File("foo/bar.txt", "foo"); -@@= skipped -35, +36 lines =@@ - - - //// [typeGuardOfFormThisMember.d.ts] -+// There's a 'File' class in the stdlib, wrap with a namespace to avoid collision - declare namespace Test { - class FileSystemObject { +@@= skipped -40, +41 lines =@@ path: string; isFSO: this is FileSystemObject; get isFile(): this is File; diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMemberErrors.js b/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMemberErrors.js index e54a60c580..56b48c805a 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMemberErrors.js +++ b/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMemberErrors.js @@ -76,7 +76,6 @@ var Test; //// [typeGuardOfFormThisMemberErrors.d.ts] -// There's a 'File' class in the stdlib, wrap with a namespace to avoid collision declare namespace Test { class FileSystemObject { path: string; diff --git a/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMemberErrors.js.diff b/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMemberErrors.js.diff index 3fddf2c14e..70c3141970 100644 --- a/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMemberErrors.js.diff +++ b/testdata/baselines/reference/submodule/conformance/typeGuardOfFormThisMemberErrors.js.diff @@ -32,13 +32,7 @@ } Test.Directory = Directory; let file = new File("foo/bar.txt", "foo"); -@@= skipped -10, +11 lines =@@ - - - //// [typeGuardOfFormThisMemberErrors.d.ts] -+// There's a 'File' class in the stdlib, wrap with a namespace to avoid collision - declare namespace Test { - class FileSystemObject { +@@= skipped -15, +16 lines =@@ path: string; isFSO: this is FileSystemObject; get isFile(): this is File; diff --git a/testdata/baselines/reference/submodule/conformance/typesWithPrivateConstructor.js b/testdata/baselines/reference/submodule/conformance/typesWithPrivateConstructor.js index 8f8764e224..2451eec981 100644 --- a/testdata/baselines/reference/submodule/conformance/typesWithPrivateConstructor.js +++ b/testdata/baselines/reference/submodule/conformance/typesWithPrivateConstructor.js @@ -33,10 +33,10 @@ var r2 = c2.constructor; declare class C { private constructor(); } -declare var c: any; // error C is private +declare var c: any; declare var r: () => void; declare class C2 { private constructor(); } -declare var c2: any; // error C2 is private +declare var c2: any; declare var r2: (x: number) => void; diff --git a/testdata/baselines/reference/submodule/conformance/typesWithPrivateConstructor.js.diff b/testdata/baselines/reference/submodule/conformance/typesWithPrivateConstructor.js.diff deleted file mode 100644 index cdfaaf26bf..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typesWithPrivateConstructor.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.typesWithPrivateConstructor.js -+++ new.typesWithPrivateConstructor.js -@@= skipped -32, +32 lines =@@ - declare class C { - private constructor(); - } --declare var c: any; -+declare var c: any; // error C is private - declare var r: () => void; - declare class C2 { - private constructor(); - } --declare var c2: any; -+declare var c2: any; // error C2 is private - declare var r2: (x: number) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typesWithProtectedConstructor.js b/testdata/baselines/reference/submodule/conformance/typesWithProtectedConstructor.js index 0ece9d8780..5844039774 100644 --- a/testdata/baselines/reference/submodule/conformance/typesWithProtectedConstructor.js +++ b/testdata/baselines/reference/submodule/conformance/typesWithProtectedConstructor.js @@ -33,10 +33,10 @@ var r2 = c2.constructor; declare class C { protected constructor(); } -declare var c: any; // error C is protected +declare var c: any; declare var r: () => void; declare class C2 { protected constructor(x: number); } -declare var c2: any; // error C2 is protected +declare var c2: any; declare var r2: (x: number) => void; diff --git a/testdata/baselines/reference/submodule/conformance/typesWithProtectedConstructor.js.diff b/testdata/baselines/reference/submodule/conformance/typesWithProtectedConstructor.js.diff deleted file mode 100644 index 38ad84f7ff..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typesWithProtectedConstructor.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.typesWithProtectedConstructor.js -+++ new.typesWithProtectedConstructor.js -@@= skipped -32, +32 lines =@@ - declare class C { - protected constructor(); - } --declare var c: any; -+declare var c: any; // error C is protected - declare var r: () => void; - declare class C2 { - protected constructor(x: number); - } --declare var c2: any; -+declare var c2: any; // error C2 is protected - declare var r2: (x: number) => void; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarations.js b/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarations.js index 6892cb9a7f..433c059feb 100644 --- a/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarations.js +++ b/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarations.js @@ -409,15 +409,11 @@ const o4 = { //// [uniqueSymbolsDeclarations.d.ts] -// declarations with call initializer declare const constCall: unique symbol; declare let letCall: symbol; declare var varCall: symbol; -// ambient declaration with type declare const constType: unique symbol; -// declaration with type and call initializer declare const constTypeAndCall: unique symbol; -// declaration from initializer declare const constInitToConstCall: symbol; declare const constInitToLetCall: symbol; declare const constInitToVarCall: symbol; @@ -430,30 +426,22 @@ declare var varInitToConstCall: symbol; declare var varInitToLetCall: symbol; declare var varInitToVarCall: symbol; declare var varInitToConstDeclAmbient: symbol; -// declaration from initializer with type query declare const constInitToConstCallWithTypeQuery: typeof constCall; declare const constInitToConstDeclAmbientWithTypeQuery: typeof constType; -// function return inference declare function funcReturnConstCall(): symbol; declare function funcReturnLetCall(): symbol; declare function funcReturnVarCall(): symbol; -// function return value with type query declare function funcReturnConstCallWithTypeQuery(): typeof constCall; -// generator function yield inference declare function genFuncYieldConstCall(): Generator; declare function genFuncYieldLetCall(): Generator; declare function genFuncYieldVarCall(): Generator; -// generator function yield with return type query declare function genFuncYieldConstCallWithTypeQuery(): IterableIterator; -// async function return inference declare function asyncFuncReturnConstCall(): Promise; declare function asyncFuncReturnLetCall(): Promise; declare function asyncFuncReturnVarCall(): Promise; -// async generator function yield inference declare function asyncGenFuncYieldConstCall(): AsyncGenerator; declare function asyncGenFuncYieldLetCall(): AsyncGenerator; declare function asyncGenFuncYieldVarCall(): AsyncGenerator; -// classes declare class C { static readonly readonlyStaticCall: unique symbol; static readonly readonlyStaticType: unique symbol; @@ -477,7 +465,6 @@ declare const constInitToCReadonlyCallWithTypeQuery: typeof c.readonlyCall; declare const constInitToCReadwriteCallWithTypeQuery: typeof c.readwriteCall; declare const constInitToCReadonlyCallWithIndexedAccess: C["readonlyCall"]; declare const constInitToCReadwriteCallWithIndexedAccess: C["readwriteCall"]; -// interfaces interface I { readonly readonlyType: unique symbol; } @@ -485,7 +472,6 @@ declare const i: I; declare const constInitToIReadonlyType: symbol; declare const constInitToIReadonlyTypeWithTypeQuery: typeof i.readonlyType; declare const constInitToIReadonlyTypeWithIndexedAccess: I["readonlyType"]; -// type literals type L = { readonly readonlyType: unique symbol; nested: { @@ -499,10 +485,8 @@ declare const constInitToLReadonlyTypeWithTypeQuery: typeof l.readonlyType; declare const constInitToLReadonlyNestedTypeWithTypeQuery: typeof l.nested.readonlyNestedType; declare const constInitToLReadonlyTypeWithIndexedAccess: L["readonlyType"]; declare const constInitToLReadonlyNestedTypeWithIndexedAccess: L["nested"]["readonlyNestedType"]; -// type argument inference declare const promiseForConstCall: Promise; declare const arrayOfConstCall: symbol[]; -// unique symbol widening in expressions declare const s: unique symbol; declare namespace N { const s: unique symbol; @@ -514,7 +498,6 @@ declare const o: { declare function f(x: T): T; declare function g(x: typeof s): void; declare function g(x: typeof N.s): void; -// property assignments/methods declare const o2: { a: symbol; b: symbol; @@ -525,7 +508,6 @@ declare const o2: { method4(): Generator; method5(p?: symbol): symbol; }; -// property initializers declare class C0 { static readonly a: symbol; static readonly b: symbol; @@ -551,7 +533,6 @@ declare class C1 { [s]: "a"; [N.s]: "b"; } -// contextual types interface Context { method1(): typeof s; method2(): Promise; diff --git a/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarations.js.diff b/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarations.js.diff index a78fe1b590..0855a0314d 100644 --- a/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarations.js.diff +++ b/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarations.js.diff @@ -64,102 +64,4 @@ + [N.s]; } const o4 = { - method1() { -@@= skipped -22, +25 lines =@@ - - - //// [uniqueSymbolsDeclarations.d.ts] -+// declarations with call initializer - declare const constCall: unique symbol; - declare let letCall: symbol; - declare var varCall: symbol; -+// ambient declaration with type - declare const constType: unique symbol; -+// declaration with type and call initializer - declare const constTypeAndCall: unique symbol; -+// declaration from initializer - declare const constInitToConstCall: symbol; - declare const constInitToLetCall: symbol; - declare const constInitToVarCall: symbol; -@@= skipped -17, +21 lines =@@ - declare var varInitToLetCall: symbol; - declare var varInitToVarCall: symbol; - declare var varInitToConstDeclAmbient: symbol; -+// declaration from initializer with type query - declare const constInitToConstCallWithTypeQuery: typeof constCall; - declare const constInitToConstDeclAmbientWithTypeQuery: typeof constType; -+// function return inference - declare function funcReturnConstCall(): symbol; - declare function funcReturnLetCall(): symbol; - declare function funcReturnVarCall(): symbol; -+// function return value with type query - declare function funcReturnConstCallWithTypeQuery(): typeof constCall; -+// generator function yield inference - declare function genFuncYieldConstCall(): Generator; - declare function genFuncYieldLetCall(): Generator; - declare function genFuncYieldVarCall(): Generator; -+// generator function yield with return type query - declare function genFuncYieldConstCallWithTypeQuery(): IterableIterator; -+// async function return inference - declare function asyncFuncReturnConstCall(): Promise; - declare function asyncFuncReturnLetCall(): Promise; - declare function asyncFuncReturnVarCall(): Promise; -+// async generator function yield inference - declare function asyncGenFuncYieldConstCall(): AsyncGenerator; - declare function asyncGenFuncYieldLetCall(): AsyncGenerator; - declare function asyncGenFuncYieldVarCall(): AsyncGenerator; -+// classes - declare class C { - static readonly readonlyStaticCall: unique symbol; - static readonly readonlyStaticType: unique symbol; -@@= skipped -39, +47 lines =@@ - declare const constInitToCReadwriteCallWithTypeQuery: typeof c.readwriteCall; - declare const constInitToCReadonlyCallWithIndexedAccess: C["readonlyCall"]; - declare const constInitToCReadwriteCallWithIndexedAccess: C["readwriteCall"]; -+// interfaces - interface I { - readonly readonlyType: unique symbol; - } -@@= skipped -7, +8 lines =@@ - declare const constInitToIReadonlyType: symbol; - declare const constInitToIReadonlyTypeWithTypeQuery: typeof i.readonlyType; - declare const constInitToIReadonlyTypeWithIndexedAccess: I["readonlyType"]; -+// type literals - type L = { - readonly readonlyType: unique symbol; - nested: { -@@= skipped -13, +14 lines =@@ - declare const constInitToLReadonlyNestedTypeWithTypeQuery: typeof l.nested.readonlyNestedType; - declare const constInitToLReadonlyTypeWithIndexedAccess: L["readonlyType"]; - declare const constInitToLReadonlyNestedTypeWithIndexedAccess: L["nested"]["readonlyNestedType"]; -+// type argument inference - declare const promiseForConstCall: Promise; - declare const arrayOfConstCall: symbol[]; -+// unique symbol widening in expressions - declare const s: unique symbol; - declare namespace N { - const s: unique symbol; -@@= skipped -13, +15 lines =@@ - declare function f(x: T): T; - declare function g(x: typeof s): void; - declare function g(x: typeof N.s): void; -+// property assignments/methods - declare const o2: { - a: symbol; - b: symbol; -@@= skipped -10, +11 lines =@@ - method4(): Generator; - method5(p?: symbol): symbol; - }; -+// property initializers - declare class C0 { - static readonly a: symbol; - static readonly b: symbol; -@@= skipped -25, +26 lines =@@ - [s]: "a"; - [N.s]: "b"; - } -+// contextual types - interface Context { - method1(): typeof s; - method2(): Promise; \ No newline at end of file + method1() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarationsErrors.js b/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarationsErrors.js index ada3c84e42..6965b143f6 100644 --- a/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarationsErrors.js +++ b/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarationsErrors.js @@ -111,7 +111,6 @@ declare const s: unique symbol; interface I { readonly readonlyType: unique symbol; } -// not allowed when emitting declarations export declare const obj: { method1(p: typeof s): typeof s; method2(p: I["readonlyType"]): I["readonlyType"]; diff --git a/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarationsErrors.js.diff b/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarationsErrors.js.diff index 5c17d1d564..d499e5d892 100644 --- a/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarationsErrors.js.diff +++ b/testdata/baselines/reference/submodule/conformance/uniqueSymbolsDeclarationsErrors.js.diff @@ -8,12 +8,4 @@ + static [s]; } exports.ClassWithPrivateNamedProperties = ClassWithPrivateNamedProperties; - class ClassWithPrivateNamedMethods { -@@= skipped -21, +23 lines =@@ - interface I { - readonly readonlyType: unique symbol; - } -+// not allowed when emitting declarations - export declare const obj: { - method1(p: typeof s): typeof s; - method2(p: I["readonlyType"]): I["readonlyType"]; \ No newline at end of file + class ClassWithPrivateNamedMethods { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/unknownControlFlow.js b/testdata/baselines/reference/submodule/conformance/unknownControlFlow.js index a0291e5be7..ae1b3605ed 100644 --- a/testdata/baselines/reference/submodule/conformance/unknownControlFlow.js +++ b/testdata/baselines/reference/submodule/conformance/unknownControlFlow.js @@ -812,18 +812,18 @@ function fx20(value) { //// [unknownControlFlow.d.ts] -type T01 = {} & string; // {} & string -type T02 = {} & 'a'; // 'a' -type T03 = {} & object; // object +type T01 = {} & string; +type T02 = {} & 'a'; +type T03 = {} & object; type T04 = {} & { x: number; -}; // { x: number } -type T05 = {} & null; // never -type T06 = {} & undefined; // never -type T07 = undefined & void; // undefined -type T10 = string & {}; // Specially preserved -type T11 = number & {}; // Specially preserved -type T12 = bigint & {}; // Specially preserved +}; +type T05 = {} & null; +type T06 = {} & undefined; +type T07 = undefined & void; +type T10 = string & {}; +type T11 = number & {}; +type T12 = bigint & {}; type ThisNode = {}; type ThatNode = {}; type ThisOrThatNode = ThisNode | ThatNode; @@ -847,37 +847,27 @@ declare function ensureNotNullOrUndefined(x: T): T & {}; declare function f40(a: string | undefined, b: number | null | undefined): void; type QQ = NonNullable>>; declare function f41(a: T): void; -// Repro from #48468 declare function deepEquals(a: T, b: T): boolean; -// Repro from #49386 declare function foo(x: T | null): void; -// We allow an unconstrained object of a generic type `T` to be indexed by a key of type `keyof T` -// without a check that the object is non-undefined and non-null. This is safe because `keyof T` -// is `never` (meaning no possible keys) for any `T` that includes `undefined` or `null`. declare function ff1(t: T, k: keyof T): void; declare function ff2(t: T & {}, k: keyof T): void; declare function ff3(t: T, k: keyof (T & {})): void; declare function ff4(t: T & {}, k: keyof (T & {})): void; -// Repro from #49681 type Foo = { [key: string]: unknown; }; type NullableFoo = Foo | undefined; type Bar = NonNullable[string]; -// Generics and intersections with {} declare function fx0(value: T & ({} | null)): void; declare function fx1(value: T & ({} | null)): void; declare function fx2(value: T & ({} | null)): void; declare function fx3(value: T & ({} | null)): void; declare function fx4(value: T & ({} | null)): void; declare function fx5(value: T & ({} | null)): void; -// Double-equals narrowing declare function fx10(x: string | number, y: number): void; -// Repros from #50706 declare function SendBlob(encoding: unknown): void; declare function doSomething1(value: T): T; declare function doSomething2(value: unknown): void; -// Repro from #51009 type TypeA = { A: 'A'; B: 'B'; @@ -889,10 +879,8 @@ type TypeB = { }; type R = T extends keyof TypeB ? [TypeA[T], TypeB[T]] : never; type R2 = T extends keyof TypeA ? T extends keyof TypeB ? [TypeA[T], TypeB[T]] : never : never; -// Repro from #51041 type AB = "A" | "B"; declare function x(x: T_AB & undefined, y: any): void; -// Repro from #51538 type Left = 'left'; type Right = 'right' & { right: 'right'; diff --git a/testdata/baselines/reference/submodule/conformance/unknownControlFlow.js.diff b/testdata/baselines/reference/submodule/conformance/unknownControlFlow.js.diff index 41d5cb1b02..c217eebc14 100644 --- a/testdata/baselines/reference/submodule/conformance/unknownControlFlow.js.diff +++ b/testdata/baselines/reference/submodule/conformance/unknownControlFlow.js.diff @@ -7,82 +7,4 @@ -"use strict"; function f01(u) { let x1 = u; // Error - let x2 = u; -@@= skipped -359, +358 lines =@@ - - - //// [unknownControlFlow.d.ts] --type T01 = {} & string; --type T02 = {} & 'a'; --type T03 = {} & object; -+type T01 = {} & string; // {} & string -+type T02 = {} & 'a'; // 'a' -+type T03 = {} & object; // object - type T04 = {} & { - x: number; --}; --type T05 = {} & null; --type T06 = {} & undefined; --type T07 = undefined & void; --type T10 = string & {}; --type T11 = number & {}; --type T12 = bigint & {}; -+}; // { x: number } -+type T05 = {} & null; // never -+type T06 = {} & undefined; // never -+type T07 = undefined & void; // undefined -+type T10 = string & {}; // Specially preserved -+type T11 = number & {}; // Specially preserved -+type T12 = bigint & {}; // Specially preserved - type ThisNode = {}; - type ThatNode = {}; - type ThisOrThatNode = ThisNode | ThatNode; -@@= skipped -35, +35 lines =@@ - declare function f40(a: string | undefined, b: number | null | undefined): void; - type QQ = NonNullable>>; - declare function f41(a: T): void; -+// Repro from #48468 - declare function deepEquals(a: T, b: T): boolean; -+// Repro from #49386 - declare function foo(x: T | null): void; -+// We allow an unconstrained object of a generic type `T` to be indexed by a key of type `keyof T` -+// without a check that the object is non-undefined and non-null. This is safe because `keyof T` -+// is `never` (meaning no possible keys) for any `T` that includes `undefined` or `null`. - declare function ff1(t: T, k: keyof T): void; - declare function ff2(t: T & {}, k: keyof T): void; - declare function ff3(t: T, k: keyof (T & {})): void; - declare function ff4(t: T & {}, k: keyof (T & {})): void; -+// Repro from #49681 - type Foo = { - [key: string]: unknown; - }; - type NullableFoo = Foo | undefined; - type Bar = NonNullable[string]; -+// Generics and intersections with {} - declare function fx0(value: T & ({} | null)): void; - declare function fx1(value: T & ({} | null)): void; - declare function fx2(value: T & ({} | null)): void; - declare function fx3(value: T & ({} | null)): void; - declare function fx4(value: T & ({} | null)): void; - declare function fx5(value: T & ({} | null)): void; -+// Double-equals narrowing - declare function fx10(x: string | number, y: number): void; -+// Repros from #50706 - declare function SendBlob(encoding: unknown): void; - declare function doSomething1(value: T): T; - declare function doSomething2(value: unknown): void; -+// Repro from #51009 - type TypeA = { - A: 'A'; - B: 'B'; -@@= skipped -32, +42 lines =@@ - }; - type R = T extends keyof TypeB ? [TypeA[T], TypeB[T]] : never; - type R2 = T extends keyof TypeA ? T extends keyof TypeB ? [TypeA[T], TypeB[T]] : never : never; -+// Repro from #51041 - type AB = "A" | "B"; - declare function x(x: T_AB & undefined, y: any): void; -+// Repro from #51538 - type Left = 'left'; - type Right = 'right' & { - right: 'right'; \ No newline at end of file + let x2 = u; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/variadicTuples1.js b/testdata/baselines/reference/submodule/conformance/variadicTuples1.js index 199fbc6718..27417dce6d 100644 --- a/testdata/baselines/reference/submodule/conformance/variadicTuples1.js +++ b/testdata/baselines/reference/submodule/conformance/variadicTuples1.js @@ -614,12 +614,10 @@ const data = [false, false]; // Error //// [variadicTuples1.d.ts] -// Variadics in tuple types type TV0 = [string, ...T]; type TV1 = [string, ...T, number]; type TV2 = [string, ...T, number, ...T]; type TV3 = [string, ...T, ...number[], ...T]; -// Normalization type TN1 = TV1<[boolean, string]>; type TN2 = TV1<[]>; type TN3 = TV1<[boolean?]>; @@ -627,7 +625,6 @@ type TN4 = TV1; type TN5 = TV1<[boolean] | [symbol, symbol]>; type TN6 = TV1; type TN7 = TV1; -// Variadics in array literals declare function tup2(t: [...T], u: [...U]): readonly [1, ...T, 2, ...U, 3]; declare const t2: readonly [1, string, 2, number, boolean, 3]; declare function concat(t: [...T], u: [...U]): [...T, ...U]; @@ -635,54 +632,42 @@ declare const sa: string[]; declare const tc1: []; declare const tc2: [string, number]; declare const tc3: [number, number, number, ...string[]]; -declare const tc4: [...string[], number, number, number]; // Ideally would be [...string[], number, number, number] +declare const tc4: [...string[], number, number, number]; declare function concat2(t: T, u: U): (T[number] | U[number])[]; -declare const tc5: (1 | 2 | 3 | 4 | 5 | 6)[]; // (1 | 2 | 3 | 4 | 5 | 6)[] -// Spread arguments +declare const tc5: (1 | 2 | 3 | 4 | 5 | 6)[]; declare function foo1(a: number, b: string, c: boolean, ...d: number[]): void; declare function foo2(t1: [number, string], t2: [boolean], a1: number[]): void; declare function foo3(x: number, ...args: [...T, number]): T; declare function foo4(u: U): void; -// Contextual typing of array literals declare function ft1(t: T): T; declare function ft2(t: T): readonly [...T]; declare function ft3(t: [...T]): T; declare function ft4(t: [...T]): readonly [...T]; -// Indexing variadic tuple types declare function f0(t: [string, ...T], n: number): void; declare function f1(t: [string, ...T, number], n: number): void; -// Destructuring variadic tuple types declare function f2(t: [string, ...T]): void; declare function f3(t: [string, ...T, number]): void; -// Mapped types applied to variadic tuple types type Arrayify = { [P in keyof T]: T[P][]; }; -type TM1 = Arrayify; // [string[], (number | undefined)[]?, Arrayify, ...boolean[][]] -type TP1 = Partial<[string, ...T, number]>; // [string?, Partial, number?] -type TP2 = Partial<[string, ...T, ...number[]]>; // [string?, Partial, ...(number | undefined)[]] -// Reverse mapping through mapped type applied to variadic tuple type +type TM1 = Arrayify; +type TP1 = Partial<[string, ...T, number]>; +type TP2 = Partial<[string, ...T, ...number[]]>; declare function fm1(t: Arrayify<[string, number, ...T]>): T; -declare let tm1: [boolean, string]; // [boolean, string] -// Spread of readonly array-like infers mutable array-like +declare let tm1: [boolean, string]; declare function fx1(a: string, ...args: T): T; declare function gx1(u: U, v: V): void; declare function fx2(a: string, ...args: T): T; declare function gx2(u: U, v: V): void; -// Relations involving variadic tuple types declare function f10(x: [string, ...unknown[]], y: [string, ...T], z: [string, ...U]): void; -// For a generic type T, [...T] is assignable to T, T is assignable to readonly [...T], and T is assignable -// to [...T] when T is constrained to a mutable array or tuple type. declare function f11(t: T, m: [...T], r: readonly [...T]): void; declare function f12(t: T, m: [...T], r: readonly [...T]): void; declare function f13(t0: T, t1: [...T], t2: [...U]): void; declare function f14(t0: T, t1: [...T], t2: [...U]): void; declare function f15(k0: keyof T, k1: keyof [...T], k2: keyof [...U], k3: keyof [1, 2, ...T]): void; -// Constraints of variadic tuple types declare function ft16(x: [unknown, unknown], y: [...T, ...T]): void; declare function ft17(x: [unknown, unknown], y: [...T, ...T]): void; declare function ft18(x: [unknown, unknown], y: [...T, ...T]): void; -// Inference between variadic tuple types type First = T extends readonly [unknown, ...unknown[]] ? T[0] : T[0] | undefined; type DropFirst = T extends readonly [unknown?, ...infer U] ? U : [...T]; type Last = T extends readonly [...unknown[], infer U] ? U : T extends readonly [unknown, ...unknown[]] ? T[number] : T[number] | undefined; @@ -724,7 +709,7 @@ type T33 = DropLast<[number, symbol, ...string[]]>; type T34 = DropLast<[symbol, ...string[]]>; type T35 = DropLast<[string?]>; type T36 = DropLast; -type T37 = DropLast<[]>; // unknown[], maybe should be [] +type T37 = DropLast<[]>; type T38 = DropLast; type T39 = DropLast; type R00 = First; @@ -755,44 +740,37 @@ type R33 = DropLast; type R34 = DropLast; type R35 = DropLast; type R36 = DropLast; -// Inference to [...T, ...U] with implied arity for T declare function curry(f: (...args: [...T, ...U]) => R, ...a: T): (...b: U) => R; declare const fn1: (a: number, b: string, c: boolean, d: string[]) => number; -declare const c0: (a: number, b: string, c: boolean, d: string[]) => number; // (a: number, b: string, c: boolean, d: string[]) => number -declare const c1: (b: string, c: boolean, d: string[]) => number; // (b: string, c: boolean, d: string[]) => number -declare const c2: (c: boolean, d: string[]) => number; // (c: boolean, d: string[]) => number -declare const c3: (d: string[]) => number; // (d: string[]) => number -declare const c4: () => number; // () => number +declare const c0: (a: number, b: string, c: boolean, d: string[]) => number; +declare const c1: (b: string, c: boolean, d: string[]) => number; +declare const c2: (c: boolean, d: string[]) => number; +declare const c3: (d: string[]) => number; +declare const c4: () => number; declare const fn2: (x: number, b: boolean, ...args: string[]) => number; -declare const c10: (x: number, b: boolean, ...args: string[]) => number; // (x: number, b: boolean, ...args: string[]) => number -declare const c11: (b: boolean, ...args: string[]) => number; // (b: boolean, ...args: string[]) => number -declare const c12: (...b: string[]) => number; // (...args: string[]) => number -declare const c13: (...b: string[]) => number; // (...args: string[]) => number +declare const c10: (x: number, b: boolean, ...args: string[]) => number; +declare const c11: (b: boolean, ...args: string[]) => number; +declare const c12: (...b: string[]) => number; +declare const c13: (...b: string[]) => number; declare const fn3: (...args: string[]) => number; -declare const c20: (...b: string[]) => number; // (...args: string[]) => number -declare const c21: (...b: string[]) => number; // (...args: string[]) => number -declare const c22: (...b: string[]) => number; // (...args: string[]) => number -// No inference to [...T, ...U] when there is no implied arity +declare const c20: (...b: string[]) => number; +declare const c21: (...b: string[]) => number; +declare const c22: (...b: string[]) => number; declare function curry2(f: (...args: [...T, ...U]) => R, t: [...T], u: [...U]): R; declare function fn10(a: string, b: number, c: boolean): string[]; -// Inference to [...T] has higher priority than inference to [...T, number?] declare function ft(t1: [...T], t2: [...T, number?]): T; -// Last argument is contextually typed declare function call(...args: [...T, (...args: T) => R]): [T, R]; -// No inference to ending optional elements (except with identical structure) declare function f20(args: [...T, number?]): T; declare function f21(args: [...U, number?]): void; declare function f22(args: [...T, number]): T; declare function f22(args: [...T]): T; declare function f23(args: [...U, number]): void; -// Repro from #39327 interface Desc { readonly f: (...args: A) => T; bind(this: Desc<[...T, ...U], R>, ...args: T): Desc<[...U], R>; } declare const a: Desc<[string, number, boolean], object>; -declare const b: Desc<[boolean], object>; // Desc<[boolean], object> -// Repro from #39607 +declare const b: Desc<[boolean], object>; declare function getUser(id: string, options?: { x?: string; }): string; @@ -801,14 +779,12 @@ declare function getOrgUser(id: string, orgId: number, options?: { z?: boolean; }): void; declare function callApi(method: (...args: [...T, object]) => U): (...args: T) => U; -// Repro from #40235 type Numbers = number[]; type Unbounded = [...Numbers, boolean]; -declare const data: Unbounded; // Error +declare const data: Unbounded; type U1 = [string, ...Numbers, boolean]; type U2 = [...[string, ...Numbers], boolean]; type U3 = [...[string, number], boolean]; -// Repro from #53563 type ToStringLength1 = `${T['length']}`; type ToStringLength2 = `${[...T]['length']}`; type AnyArr = [...any]; diff --git a/testdata/baselines/reference/submodule/conformance/variadicTuples1.js.diff b/testdata/baselines/reference/submodule/conformance/variadicTuples1.js.diff index dacec7be04..99a67cafac 100644 --- a/testdata/baselines/reference/submodule/conformance/variadicTuples1.js.diff +++ b/testdata/baselines/reference/submodule/conformance/variadicTuples1.js.diff @@ -9,170 +9,12 @@ // Variadics in array literals function tup2(t, u) { return [1, ...t, 2, ...u, 3]; -@@= skipped -190, +188 lines =@@ - - - //// [variadicTuples1.d.ts] -+// Variadics in tuple types - type TV0 = [string, ...T]; - type TV1 = [string, ...T, number]; - type TV2 = [string, ...T, number, ...T]; - type TV3 = [string, ...T, ...number[], ...T]; -+// Normalization - type TN1 = TV1<[boolean, string]>; - type TN2 = TV1<[]>; - type TN3 = TV1<[boolean?]>; -@@= skipped -11, +13 lines =@@ - type TN5 = TV1<[boolean] | [symbol, symbol]>; - type TN6 = TV1; - type TN7 = TV1; -+// Variadics in array literals - declare function tup2(t: [...T], u: [...U]): readonly [1, ...T, 2, ...U, 3]; - declare const t2: readonly [1, string, 2, number, boolean, 3]; - declare function concat(t: [...T], u: [...U]): [...T, ...U]; -@@= skipped -7, +8 lines =@@ - declare const tc1: []; - declare const tc2: [string, number]; - declare const tc3: [number, number, number, ...string[]]; --declare const tc4: [...string[], number, number, number]; -+declare const tc4: [...string[], number, number, number]; // Ideally would be [...string[], number, number, number] - declare function concat2(t: T, u: U): (T[number] | U[number])[]; --declare const tc5: (1 | 2 | 3 | 4 | 5 | 6)[]; -+declare const tc5: (1 | 2 | 3 | 4 | 5 | 6)[]; // (1 | 2 | 3 | 4 | 5 | 6)[] -+// Spread arguments - declare function foo1(a: number, b: string, c: boolean, ...d: number[]): void; - declare function foo2(t1: [number, string], t2: [boolean], a1: number[]): void; - declare function foo3(x: number, ...args: [...T, number]): T; - declare function foo4(u: U): void; -+// Contextual typing of array literals - declare function ft1(t: T): T; - declare function ft2(t: T): readonly [...T]; - declare function ft3(t: [...T]): T; - declare function ft4(t: [...T]): readonly [...T]; -+// Indexing variadic tuple types - declare function f0(t: [string, ...T], n: number): void; - declare function f1(t: [string, ...T, number], n: number): void; -+// Destructuring variadic tuple types - declare function f2(t: [string, ...T]): void; - declare function f3(t: [string, ...T, number]): void; -+// Mapped types applied to variadic tuple types - type Arrayify = { - [P in keyof T]: T[P][]; - }; --type TM1 = Arrayify; --type TP1 = Partial<[string, ...T, number]>; --type TP2 = Partial<[string, ...T, ...number[]]>; -+type TM1 = Arrayify; // [string[], (number | undefined)[]?, Arrayify, ...boolean[][]] -+type TP1 = Partial<[string, ...T, number]>; // [string?, Partial, number?] -+type TP2 = Partial<[string, ...T, ...number[]]>; // [string?, Partial, ...(number | undefined)[]] -+// Reverse mapping through mapped type applied to variadic tuple type - declare function fm1(t: Arrayify<[string, number, ...T]>): T; --declare let tm1: [boolean, string]; -+declare let tm1: [boolean, string]; // [boolean, string] -+// Spread of readonly array-like infers mutable array-like - declare function fx1(a: string, ...args: T): T; - declare function gx1(u: U, v: V): void; - declare function fx2(a: string, ...args: T): T; - declare function gx2(u: U, v: V): void; -+// Relations involving variadic tuple types - declare function f10(x: [string, ...unknown[]], y: [string, ...T], z: [string, ...U]): void; -+// For a generic type T, [...T] is assignable to T, T is assignable to readonly [...T], and T is assignable -+// to [...T] when T is constrained to a mutable array or tuple type. - declare function f11(t: T, m: [...T], r: readonly [...T]): void; - declare function f12(t: T, m: [...T], r: readonly [...T]): void; - declare function f13(t0: T, t1: [...T], t2: [...U]): void; - declare function f14(t0: T, t1: [...T], t2: [...U]): void; - declare function f15(k0: keyof T, k1: keyof [...T], k2: keyof [...U], k3: keyof [1, 2, ...T]): void; -+// Constraints of variadic tuple types - declare function ft16(x: [unknown, unknown], y: [...T, ...T]): void; - declare function ft17(x: [unknown, unknown], y: [...T, ...T]): void; - declare function ft18(x: [unknown, unknown], y: [...T, ...T]): void; -+// Inference between variadic tuple types - type First = T extends readonly [unknown, ...unknown[]] ? T[0] : T[0] | undefined; - type DropFirst = T extends readonly [unknown?, ...infer U] ? U : [...T]; - type Last = T extends readonly [...unknown[], infer U] ? U : T extends readonly [unknown, ...unknown[]] ? T[number] : T[number] | undefined; -@@= skipped -77, +89 lines =@@ - type T34 = DropLast<[symbol, ...string[]]>; - type T35 = DropLast<[string?]>; - type T36 = DropLast; --type T37 = DropLast<[]>; -+type T37 = DropLast<[]>; // unknown[], maybe should be [] - type T38 = DropLast; - type T39 = DropLast; - type R00 = First; -@@= skipped -31, +31 lines =@@ - type R34 = DropLast; - type R35 = DropLast; - type R36 = DropLast; -+// Inference to [...T, ...U] with implied arity for T - declare function curry(f: (...args: [...T, ...U]) => R, ...a: T): (...b: U) => R; - declare const fn1: (a: number, b: string, c: boolean, d: string[]) => number; --declare const c0: (a: number, b: string, c: boolean, d: string[]) => number; --declare const c1: (b: string, c: boolean, d: string[]) => number; --declare const c2: (c: boolean, d: string[]) => number; --declare const c3: (d: string[]) => number; --declare const c4: () => number; -+declare const c0: (a: number, b: string, c: boolean, d: string[]) => number; // (a: number, b: string, c: boolean, d: string[]) => number -+declare const c1: (b: string, c: boolean, d: string[]) => number; // (b: string, c: boolean, d: string[]) => number -+declare const c2: (c: boolean, d: string[]) => number; // (c: boolean, d: string[]) => number -+declare const c3: (d: string[]) => number; // (d: string[]) => number -+declare const c4: () => number; // () => number - declare const fn2: (x: number, b: boolean, ...args: string[]) => number; --declare const c10: (x: number, b: boolean, ...args: string[]) => number; --declare const c11: (b: boolean, ...args: string[]) => number; --declare const c12: (...b: string[]) => number; --declare const c13: (...b: string[]) => number; -+declare const c10: (x: number, b: boolean, ...args: string[]) => number; // (x: number, b: boolean, ...args: string[]) => number -+declare const c11: (b: boolean, ...args: string[]) => number; // (b: boolean, ...args: string[]) => number -+declare const c12: (...b: string[]) => number; // (...args: string[]) => number -+declare const c13: (...b: string[]) => number; // (...args: string[]) => number - declare const fn3: (...args: string[]) => number; --declare const c20: (...b: string[]) => number; --declare const c21: (...b: string[]) => number; --declare const c22: (...b: string[]) => number; -+declare const c20: (...b: string[]) => number; // (...args: string[]) => number -+declare const c21: (...b: string[]) => number; // (...args: string[]) => number -+declare const c22: (...b: string[]) => number; // (...args: string[]) => number -+// No inference to [...T, ...U] when there is no implied arity - declare function curry2(f: (...args: [...T, ...U]) => R, t: [...T], u: [...U]): R; - declare function fn10(a: string, b: number, c: boolean): string[]; -+// Inference to [...T] has higher priority than inference to [...T, number?] - declare function ft(t1: [...T], t2: [...T, number?]): T; -+// Last argument is contextually typed - declare function call(...args: [...T, (...args: T) => R]): [T, R]; -+// No inference to ending optional elements (except with identical structure) - declare function f20(args: [...T, number?]): T; - declare function f21(args: [...U, number?]): void; - declare function f22(args: [...T, number]): T; - declare function f22(args: [...T]): T; - declare function f23(args: [...U, number]): void; -+// Repro from #39327 - interface Desc { - readonly f: (...args: A) => T; - bind(this: Desc<[...T, ...U], R>, ...args: T): Desc<[...U], R>; - } - declare const a: Desc<[string, number, boolean], object>; --declare const b: Desc<[boolean], object>; -+declare const b: Desc<[boolean], object>; // Desc<[boolean], object> -+// Repro from #39607 - declare function getUser(id: string, options?: { - x?: string; - }): string; -@@= skipped -38, +45 lines =@@ +@@= skipped -354, +352 lines =@@ y?: number; z?: boolean; }): void; -declare function callApi(method: (...args: [...T, object]) => U): (...args: [...T]) => U; +declare function callApi(method: (...args: [...T, object]) => U): (...args: T) => U; -+// Repro from #40235 type Numbers = number[]; type Unbounded = [...Numbers, boolean]; --declare const data: Unbounded; -+declare const data: Unbounded; // Error - type U1 = [string, ...Numbers, boolean]; - type U2 = [...[string, ...Numbers], boolean]; - type U3 = [...[string, number], boolean]; -+// Repro from #53563 - type ToStringLength1 = `${T['length']}`; - type ToStringLength2 = `${[...T]['length']}`; - type AnyArr = [...any]; \ No newline at end of file + declare const data: Unbounded; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/variadicTuples2.js b/testdata/baselines/reference/submodule/conformance/variadicTuples2.js index 1115943554..68b3e84f44 100644 --- a/testdata/baselines/reference/submodule/conformance/variadicTuples2.js +++ b/testdata/baselines/reference/submodule/conformance/variadicTuples2.js @@ -214,54 +214,48 @@ const e1 = foo('blah1', 'blah2', 1, 2, 3); // Error //// [variadicTuples2.d.ts] -// Declarations type V00 = [number, ...string[]]; type V01 = [...string[], number]; type V03 = [number, ...string[], number]; -type V10 = [number, ...string[], ...boolean[]]; // Error -type V11 = [number, ...string[], boolean?]; // Error -type V12 = [number, string?, boolean]; // Error -type V15 = [...string[], ...number[]]; // Error -type V16 = [...string[], ...Array]; // Error -type V17 = [...Array, ...number[]]; // Error -type V18 = [...Array, ...Array]; // Error -// Normalization +type V10 = [number, ...string[], ...boolean[]]; +type V11 = [number, ...string[], boolean?]; +type V12 = [number, string?, boolean]; +type V15 = [...string[], ...number[]]; +type V16 = [...string[], ...Array]; +type V17 = [...Array, ...number[]]; +type V18 = [...Array, ...Array]; type Tup3 = [...T, ...U, ...V]; -type V20 = Tup3<[number], string[], [number]>; // [number, ...string[], number] -type V21 = Tup3<[number], [string?], [boolean]>; // [number, string | undefined, boolean] -type V22 = Tup3<[number], string[], boolean[]>; // [number, (string | boolean)[]] -type V23 = Tup3<[number], string[], [boolean?]>; // [number, (string | boolean | undefined)[]] -type V24 = Tup3<[number], [boolean?], string[]>; // [number, boolean?, ...string[]] -type V25 = Tup3; // (string | number | boolean)[] -type V26 = Tup3; // [...(string | number)[], boolean] -type V27 = Tup3<[number?], [string], [boolean?]>; // [number | undefined, string, boolean?] -type V30 = Tup3; // [...A, ...(string | number)[]] -type V31 = Tup3; // (string | number | A[number])[] -type V32 = Tup3; // [...(string | number)[], ...A] -type V40 = Tup3; // [...A, string?, ...number[]] -type V41 = Tup3<[string?], A, number[]>; // [string?, ...A, ...number[]] -type V42 = Tup3<[string?], number[], A>; // [string?, ...number[], ...A] -type V50 = Tup3; // [...A, ...(string | number | undefined)[]] -type V51 = Tup3; // (string | number | A[number] | undefined)[] -type V52 = Tup3; // [...(string | number | undefined)[], ...A] -// Assignability +type V20 = Tup3<[number], string[], [number]>; +type V21 = Tup3<[number], [string?], [boolean]>; +type V22 = Tup3<[number], string[], boolean[]>; +type V23 = Tup3<[number], string[], [boolean?]>; +type V24 = Tup3<[number], [boolean?], string[]>; +type V25 = Tup3; +type V26 = Tup3; +type V27 = Tup3<[number?], [string], [boolean?]>; +type V30 = Tup3; +type V31 = Tup3; +type V32 = Tup3; +type V40 = Tup3; +type V41 = Tup3<[string?], A, number[]>; +type V42 = Tup3<[string?], number[], A>; +type V50 = Tup3; +type V51 = Tup3; +type V52 = Tup3; declare let tt1: [...string[], number]; declare function ft1(...args: [...strs: string[], num: number]): void; declare let tt2: [number, ...string[], number]; declare function ft2(n1: number, ...rest: [...strs: string[], n2: number]): void; declare function ft3(x: [number, ...T], y: [number, number], z: [number, ...number[]]): void; -// repro #50216 declare let tt3: [number, string, ...any[]]; -declare let tt4: [number, ...number[]]; // Error -// Inference +declare let tt4: [number, ...number[]]; declare function pipe(...args: [...T, (...values: T) => void]): void; declare const sa: string[]; declare function fn1(t: [...unknown[], T, U]): [T, U]; declare function fn2(t: [T, ...unknown[], U]): [T, U]; -// Repro from #39595 declare function foo(...stringsAndNumber: readonly [...S, number]): [...S, number]; declare const a1: ["blah1", number]; declare const b1: ["blah1", "blah2", number]; -declare const c1: [string, ...string[], number]; // Error -declare const d1: [string, ...string[], number]; // Error -declare const e1: [string, ...string[], number]; // Error +declare const c1: [string, ...string[], number]; +declare const d1: [string, ...string[], number]; +declare const e1: [string, ...string[], number]; diff --git a/testdata/baselines/reference/submodule/conformance/variadicTuples2.js.diff b/testdata/baselines/reference/submodule/conformance/variadicTuples2.js.diff index 142a8372e8..a077dba45c 100644 --- a/testdata/baselines/reference/submodule/conformance/variadicTuples2.js.diff +++ b/testdata/baselines/reference/submodule/conformance/variadicTuples2.js.diff @@ -8,87 +8,4 @@ -// Declarations tt1 = [5]; tt1 = ['abc', 5]; - tt1 = ['abc', 'def', 5]; -@@= skipped -73, +71 lines =@@ - - - //// [variadicTuples2.d.ts] -+// Declarations - type V00 = [number, ...string[]]; - type V01 = [...string[], number]; - type V03 = [number, ...string[], number]; --type V10 = [number, ...string[], ...boolean[]]; --type V11 = [number, ...string[], boolean?]; --type V12 = [number, string?, boolean]; --type V15 = [...string[], ...number[]]; --type V16 = [...string[], ...Array]; --type V17 = [...Array, ...number[]]; --type V18 = [...Array, ...Array]; -+type V10 = [number, ...string[], ...boolean[]]; // Error -+type V11 = [number, ...string[], boolean?]; // Error -+type V12 = [number, string?, boolean]; // Error -+type V15 = [...string[], ...number[]]; // Error -+type V16 = [...string[], ...Array]; // Error -+type V17 = [...Array, ...number[]]; // Error -+type V18 = [...Array, ...Array]; // Error -+// Normalization - type Tup3 = [...T, ...U, ...V]; --type V20 = Tup3<[number], string[], [number]>; --type V21 = Tup3<[number], [string?], [boolean]>; --type V22 = Tup3<[number], string[], boolean[]>; --type V23 = Tup3<[number], string[], [boolean?]>; --type V24 = Tup3<[number], [boolean?], string[]>; --type V25 = Tup3; --type V26 = Tup3; --type V27 = Tup3<[number?], [string], [boolean?]>; --type V30 = Tup3; --type V31 = Tup3; --type V32 = Tup3; --type V40 = Tup3; --type V41 = Tup3<[string?], A, number[]>; --type V42 = Tup3<[string?], number[], A>; --type V50 = Tup3; --type V51 = Tup3; --type V52 = Tup3; -+type V20 = Tup3<[number], string[], [number]>; // [number, ...string[], number] -+type V21 = Tup3<[number], [string?], [boolean]>; // [number, string | undefined, boolean] -+type V22 = Tup3<[number], string[], boolean[]>; // [number, (string | boolean)[]] -+type V23 = Tup3<[number], string[], [boolean?]>; // [number, (string | boolean | undefined)[]] -+type V24 = Tup3<[number], [boolean?], string[]>; // [number, boolean?, ...string[]] -+type V25 = Tup3; // (string | number | boolean)[] -+type V26 = Tup3; // [...(string | number)[], boolean] -+type V27 = Tup3<[number?], [string], [boolean?]>; // [number | undefined, string, boolean?] -+type V30 = Tup3; // [...A, ...(string | number)[]] -+type V31 = Tup3; // (string | number | A[number])[] -+type V32 = Tup3; // [...(string | number)[], ...A] -+type V40 = Tup3; // [...A, string?, ...number[]] -+type V41 = Tup3<[string?], A, number[]>; // [string?, ...A, ...number[]] -+type V42 = Tup3<[string?], number[], A>; // [string?, ...number[], ...A] -+type V50 = Tup3; // [...A, ...(string | number | undefined)[]] -+type V51 = Tup3; // (string | number | A[number] | undefined)[] -+type V52 = Tup3; // [...(string | number | undefined)[], ...A] -+// Assignability - declare let tt1: [...string[], number]; - declare function ft1(...args: [...strs: string[], num: number]): void; - declare let tt2: [number, ...string[], number]; - declare function ft2(n1: number, ...rest: [...strs: string[], n2: number]): void; - declare function ft3(x: [number, ...T], y: [number, number], z: [number, ...number[]]): void; -+// repro #50216 - declare let tt3: [number, string, ...any[]]; --declare let tt4: [number, ...number[]]; -+declare let tt4: [number, ...number[]]; // Error -+// Inference - declare function pipe(...args: [...T, (...values: T) => void]): void; - declare const sa: string[]; - declare function fn1(t: [...unknown[], T, U]): [T, U]; - declare function fn2(t: [T, ...unknown[], U]): [T, U]; -+// Repro from #39595 - declare function foo(...stringsAndNumber: readonly [...S, number]): [...S, number]; - declare const a1: ["blah1", number]; - declare const b1: ["blah1", "blah2", number]; --declare const c1: [string, ...string[], number]; --declare const d1: [string, ...string[], number]; --declare const e1: [string, ...string[], number]; -+declare const c1: [string, ...string[], number]; // Error -+declare const d1: [string, ...string[], number]; // Error -+declare const e1: [string, ...string[], number]; // Error \ No newline at end of file + tt1 = ['abc', 'def', 5]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/varianceAnnotations.js b/testdata/baselines/reference/submodule/conformance/varianceAnnotations.js index 641e1689b7..596eebfdf7 100644 --- a/testdata/baselines/reference/submodule/conformance/varianceAnnotations.js +++ b/testdata/baselines/reference/submodule/conformance/varianceAnnotations.js @@ -227,16 +227,14 @@ type Invariant = { }; declare let super_invariant: Invariant; declare let sub_invariant: Invariant; -// Variance of various type constructors type T10 = T; type T11 = keyof T; type T12 = T[K]; type T13 = T[keyof T]; -// Variance annotation errors type Covariant1 = { x: T; }; -type Contravariant1 = keyof T; // Error +type Contravariant1 = keyof T; type Contravariant2 = { f: (x: T) => void; }; @@ -246,7 +244,6 @@ type Invariant1 = { type Invariant2 = { f: (x: T) => T; }; -// Variance in circular types type Foo1 = { x: T; f: FooFn1; @@ -271,25 +268,22 @@ type FooFn3 = (foo: Bar3) => void; type Bar3 = { value: Foo3; }; -// Wrong modifier usage -type T20 = T; // Error -type T21 = T; // Error -type T22 = T; // Error -type T23 = T; // Error -declare function f1(x: T): void; // Error -declare function f2(): T; // Error +type T20 = T; +type T21 = T; +type T22 = T; +type T23 = T; +declare function f1(x: T): void; +declare function f2(): T; declare class C { - in a: number; // Error - out b: number; // Error + in a: number; + out b: number; } -// Interface merging interface Baz { } interface Baz { } declare let baz1: Baz; declare let baz2: Baz; -// Repro from #44572 interface Parent { child: Child | null; parent: Parent | null; @@ -300,8 +294,7 @@ interface Child extends Parent { } declare function fn(inp: Child): void; declare const pu: Parent; -declare const notString: Parent; // Error -// Repro from comment in #44572 +declare const notString: Parent; declare class StateNode { @@ -323,7 +316,6 @@ declare const qq: ActionObject<{ type: "PLAY"; value: number; }>; -// Repros from #48618 declare let Anon: { new (): { foo(): /*elided*/ any; diff --git a/testdata/baselines/reference/submodule/conformance/varianceAnnotations.js.diff b/testdata/baselines/reference/submodule/conformance/varianceAnnotations.js.diff index 7ebdbe0177..ba4a815f40 100644 --- a/testdata/baselines/reference/submodule/conformance/varianceAnnotations.js.diff +++ b/testdata/baselines/reference/submodule/conformance/varianceAnnotations.js.diff @@ -21,81 +21,8 @@ } baz1 = baz2; // Error baz2 = baz1; // Error -@@= skipped -44, +42 lines =@@ - }; - declare let super_invariant: Invariant; - declare let sub_invariant: Invariant; -+// Variance of various type constructors - type T10 = T; - type T11 = keyof T; - type T12 = T[K]; - type T13 = T[keyof T]; -+// Variance annotation errors - type Covariant1 = { - x: T; - }; --type Contravariant1 = keyof T; -+type Contravariant1 = keyof T; // Error - type Contravariant2 = { - f: (x: T) => void; - }; -@@= skipped -17, +19 lines =@@ - type Invariant2 = { - f: (x: T) => T; - }; -+// Variance in circular types - type Foo1 = { - x: T; - f: FooFn1; -@@= skipped -24, +25 lines =@@ - type Bar3 = { - value: Foo3; - }; --type T20 = T; --type T21 = T; --type T22 = T; --type T23 = T; --declare function f1(x: T): void; --declare function f2(): T; -+// Wrong modifier usage -+type T20 = T; // Error -+type T21 = T; // Error -+type T22 = T; // Error -+type T23 = T; // Error -+declare function f1(x: T): void; // Error -+declare function f2(): T; // Error - declare class C { -- in a: number; -- out b: number; -+ in a: number; // Error -+ out b: number; // Error - } -+// Interface merging - interface Baz { - } - interface Baz { - } - declare let baz1: Baz; - declare let baz2: Baz; -+// Repro from #44572 - interface Parent { - child: Child | null; - parent: Parent | null; -@@= skipped -26, +29 lines =@@ - } - declare function fn(inp: Child): void; - declare const pu: Parent; --declare const notString: Parent; -+declare const notString: Parent; // Error -+// Repro from comment in #44572 - declare class StateNode { -@@= skipped -22, +23 lines =@@ - type: "PLAY"; - value: number; +@@= skipped -135, +133 lines =@@ }>; -+// Repros from #48618 declare let Anon: { new (): { - foo(): InstanceType<(typeof Anon)>; diff --git a/testdata/baselines/reference/submodule/conformance/varianceAnnotationsWithCircularlyReferencesError.js b/testdata/baselines/reference/submodule/conformance/varianceAnnotationsWithCircularlyReferencesError.js index 211a6ebc84..4c33191ad3 100644 --- a/testdata/baselines/reference/submodule/conformance/varianceAnnotationsWithCircularlyReferencesError.js +++ b/testdata/baselines/reference/submodule/conformance/varianceAnnotationsWithCircularlyReferencesError.js @@ -8,5 +8,5 @@ type T2 = T2 // Error: circularly references //// [varianceAnnotationsWithCircularlyReferencesError.d.ts] -type T1 = T1; // Error: circularly references -type T2 = T2; // Error: circularly references +type T1 = T1; +type T2 = T2; diff --git a/testdata/baselines/reference/submodule/conformance/varianceAnnotationsWithCircularlyReferencesError.js.diff b/testdata/baselines/reference/submodule/conformance/varianceAnnotationsWithCircularlyReferencesError.js.diff index 42a3c89a3f..2f276bc70c 100644 --- a/testdata/baselines/reference/submodule/conformance/varianceAnnotationsWithCircularlyReferencesError.js.diff +++ b/testdata/baselines/reference/submodule/conformance/varianceAnnotationsWithCircularlyReferencesError.js.diff @@ -7,8 +7,4 @@ -"use strict"; - //// [varianceAnnotationsWithCircularlyReferencesError.d.ts] --type T1 = T1; --type T2 = T2; -+type T1 = T1; // Error: circularly references -+type T2 = T2; // Error: circularly references \ No newline at end of file + //// [varianceAnnotationsWithCircularlyReferencesError.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/tsbuild/extends/configDir-template.js b/testdata/baselines/reference/tsbuild/extends/configDir-template.js index cde4e5e50b..4cb0fb56f1 100644 --- a/testdata/baselines/reference/tsbuild/extends/configDir-template.js +++ b/testdata/baselines/reference/tsbuild/extends/configDir-template.js @@ -65,7 +65,6 @@ types/sometype.ts main.ts Part of 'files' list in tsconfig.json //// [/home/src/projects/myproject/decls/main.d.ts] *new* -// some comment export declare const y = 10; //// [/home/src/projects/myproject/decls/types/sometype.d.ts] *new* diff --git a/testdata/baselines/reference/tsbuildWatch/extends/configDir-template.js b/testdata/baselines/reference/tsbuildWatch/extends/configDir-template.js index 631c22641d..930bfe52db 100644 --- a/testdata/baselines/reference/tsbuildWatch/extends/configDir-template.js +++ b/testdata/baselines/reference/tsbuildWatch/extends/configDir-template.js @@ -69,7 +69,6 @@ main.ts [HH:MM:SS AM] Found 0 errors. Watching for file changes. //// [/home/src/projects/myproject/decls/main.d.ts] *new* -// some comment export declare const y = 10; //// [/home/src/projects/myproject/decls/types/sometype.d.ts] *new* diff --git a/testdata/baselines/reference/tsc/extends/configDir-template-with-commandline.js b/testdata/baselines/reference/tsc/extends/configDir-template-with-commandline.js index 9fef469d7a..09e7618c19 100644 --- a/testdata/baselines/reference/tsc/extends/configDir-template-with-commandline.js +++ b/testdata/baselines/reference/tsc/extends/configDir-template-with-commandline.js @@ -71,7 +71,6 @@ exports.x = void 0; exports.x = 10; //// [/home/src/projects/myproject/decls/main.d.ts] *new* -// some comment export declare const y = 10; //// [/home/src/projects/myproject/decls/types/sometype.d.ts] *new* diff --git a/testdata/baselines/reference/tsc/extends/configDir-template.js b/testdata/baselines/reference/tsc/extends/configDir-template.js index 3b4a94d027..1d74d5f546 100644 --- a/testdata/baselines/reference/tsc/extends/configDir-template.js +++ b/testdata/baselines/reference/tsc/extends/configDir-template.js @@ -58,7 +58,6 @@ types/sometype.ts main.ts Part of 'files' list in tsconfig.json //// [/home/src/projects/myproject/decls/main.d.ts] *new* -// some comment export declare const y = 10; //// [/home/src/projects/myproject/decls/types/sometype.d.ts] *new*

; - constructor(props: P); -@@= skipped -16, +18 lines =@@ - constructor(props: T); - brokenMethod(): void; - } -+// Positive repro from #17166 - declare function f3>(t: T, k: K, tk: T[K]): void; -+// # 21185 - type Predicates = { - [T in keyof TaggedRecord]: (variant: TaggedRecord[keyof TaggedRecord]) => variant is TaggedRecord[T]; - }; -+// Repros from #23592 - type Example; -+// Repro from #23618 - type DBBoolTable = { - [k in K]: 0 | 1; - }; -@@= skipped -17, +18 lines =@@ - dynamicField: string; - }) & DBBoolTable; - declare function getFlagsFromDynamicRecord(record: DynamicDBRecord, flags: Flag[]): DynamicDBRecord[Flag]; -+// Repro from #21368 - interface I { - foo: string; - } - declare function take(p: T): void; - declare function fn(o: T, k: K): void; -+// Repro from #23133 - declare class Unbounded { - foo(x: T[keyof T]): void; - } -+// Repro from #23940 - interface I7 { - x: any; - } - type Foo7 = T; - declare function f7(type: K): Foo7; -+// Repro from #21770 - type Dict = { - [key in T]: number; - }; -@@= skipped -21, +25 lines =@@ - }; - declare function ff1(dd: DictDict, k1: V, k2: T): number; - declare function ff2(dd: DictDict, k1: V, k2: T): number; -+// Repro from #26409 +@@= skipped -400, +402 lines =@@ declare const cf1: (t: T, k: K) => void; diff --git a/testdata/baselines/reference/submodule/conformance/keyofIntersection.js b/testdata/baselines/reference/submodule/conformance/keyofIntersection.js index beb002b287..8b24c1043a 100644 --- a/testdata/baselines/reference/submodule/conformance/keyofIntersection.js +++ b/testdata/baselines/reference/submodule/conformance/keyofIntersection.js @@ -39,20 +39,19 @@ type A = { type B = { b: string; }; -type T01 = keyof (A & B); // "a" | "b" -type T02 = keyof (T & B); // "b" | keyof T -type T03 = keyof (A & U); // "a" | keyof U -type T04 = keyof (T & U); // keyof T | keyof U -type T05 = T02; // "a" | "b" -type T06 = T03; // "a" | "b" -type T07 = T04; // "a" | "b" -// Repros from #22291 +type T01 = keyof (A & B); +type T02 = keyof (T & B); +type T03 = keyof (A & U); +type T04 = keyof (T & U); +type T05 = T02; +type T06 = T03; +type T07 = T04; type Example1 = keyof (Record & Record); -type Result1 = Example1<'x', 'y'>; // "x" | "y" -type Result2 = keyof (Record<'x', any> & Record<'y', any>); // "x" | "y" +type Result1 = Example1<'x', 'y'>; +type Result2 = keyof (Record<'x', any> & Record<'y', any>); type Example3 = keyof (Record); -type Result3 = Example3<'x' | 'y'>; // "x" | "y" +type Result3 = Example3<'x' | 'y'>; type Example4 = (Record & Record); -type Result4 = keyof Example4<'x', 'y'>; // "x" | "y" +type Result4 = keyof Example4<'x', 'y'>; type Example5 = keyof (T & U); -type Result5 = Example5, Record<'y', any>>; // "x" | "y" +type Result5 = Example5, Record<'y', any>>; diff --git a/testdata/baselines/reference/submodule/conformance/keyofIntersection.js.diff b/testdata/baselines/reference/submodule/conformance/keyofIntersection.js.diff index c0cc5099b0..0bc1a0c230 100644 --- a/testdata/baselines/reference/submodule/conformance/keyofIntersection.js.diff +++ b/testdata/baselines/reference/submodule/conformance/keyofIntersection.js.diff @@ -7,37 +7,4 @@ -"use strict"; - //// [keyofIntersection.d.ts] -@@= skipped -10, +9 lines =@@ - type B = { - b: string; - }; --type T01 = keyof (A & B); --type T02 = keyof (T & B); --type T03 = keyof (A & U); --type T04 = keyof (T & U); --type T05 = T02; --type T06 = T03; --type T07 = T04; -+type T01 = keyof (A & B); // "a" | "b" -+type T02 = keyof (T & B); // "b" | keyof T -+type T03 = keyof (A & U); // "a" | keyof U -+type T04 = keyof (T & U); // keyof T | keyof U -+type T05 = T02; // "a" | "b" -+type T06 = T03; // "a" | "b" -+type T07 = T04; // "a" | "b" -+// Repros from #22291 - type Example1 = keyof (Record & Record); --type Result1 = Example1<'x', 'y'>; --type Result2 = keyof (Record<'x', any> & Record<'y', any>); -+type Result1 = Example1<'x', 'y'>; // "x" | "y" -+type Result2 = keyof (Record<'x', any> & Record<'y', any>); // "x" | "y" - type Example3 = keyof (Record); --type Result3 = Example3<'x' | 'y'>; -+type Result3 = Example3<'x' | 'y'>; // "x" | "y" - type Example4 = (Record & Record); --type Result4 = keyof Example4<'x', 'y'>; -+type Result4 = keyof Example4<'x', 'y'>; // "x" | "y" - type Example5 = keyof (T & U); --type Result5 = Example5, Record<'y', any>>; -+type Result5 = Example5, Record<'y', any>>; // "x" | "y" \ No newline at end of file + //// [keyofIntersection.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/mappedTypeAsClauses.js b/testdata/baselines/reference/submodule/conformance/mappedTypeAsClauses.js index d941ec7b50..c4e6af1ae7 100644 --- a/testdata/baselines/reference/submodule/conformance/mappedTypeAsClauses.js +++ b/testdata/baselines/reference/submodule/conformance/mappedTypeAsClauses.js @@ -193,7 +193,6 @@ f("a"); // Error, should allow only "b" //// [mappedTypeAsClauses.d.ts] -// Mapped type 'as N' clauses type Getters = { [P in keyof T & string as `get${Capitalize