Skip to content

Sort symbol members #61420

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 40 additions & 6 deletions src/compiler/checker.ts
Original file line number Diff line number Diff line change
@@ -81,6 +81,7 @@ import {
classOrConstructorParameterIsDecorated,
ClassStaticBlockDeclaration,
clear,
compareComparableValues,
compareDiagnostics,
comparePaths,
compareValues,
@@ -1492,6 +1493,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {

var scanner: Scanner | undefined;

var fileIndexMap = new Map(host.getSourceFiles().map((file, i) => [file, i]));

var Symbol = objectAllocator.getSymbolConstructor();
var Type = objectAllocator.getTypeConstructor();
var Signature = objectAllocator.getSignatureConstructor();
@@ -5467,6 +5470,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
(result || (result = [])).push(symbol);
}
});
result?.sort(compareSymbols);
return result || emptyArray;
}

@@ -34524,18 +34528,15 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
// So the table *contains* `x` but `x` isn't actually in scope.
// However, resolveNameHelper will continue and call this callback again, so we'll eventually get a correct suggestion.
if (symbol) return symbol;
let candidates: Symbol[];
let candidates = arrayFrom(symbols.values()).sort(compareSymbols);
if (symbols === globals) {
const primitives = mapDefined(
["string", "number", "boolean", "object", "bigint", "symbol"],
s => symbols.has((s.charAt(0).toUpperCase() + s.slice(1)) as __String)
? createSymbol(SymbolFlags.TypeAlias, s as __String) as Symbol
: undefined,
);
candidates = primitives.concat(arrayFrom(symbols.values()));
}
else {
candidates = arrayFrom(symbols.values());
candidates = concatenate(candidates, primitives);
}
return getSpellingSuggestionForName(unescapeLeadingUnderscores(name), candidates, meaning);
}
@@ -34546,7 +34547,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}

function getSuggestedSymbolForNonexistentModule(name: Identifier, targetModule: Symbol): Symbol | undefined {
return targetModule.exports && getSpellingSuggestionForName(idText(name), getExportsOfModuleAsArray(targetModule), SymbolFlags.ModuleMember);
return targetModule.exports && getSpellingSuggestionForName(idText(name), getExportsOfModuleAsArray(targetModule).sort(compareSymbols), SymbolFlags.ModuleMember); // eslint-disable-line local/no-array-mutating-method-expressions
}

function getSuggestionForNonexistentIndexSignature(objectType: Type, expr: ElementAccessExpression, keyedType: Type): string | undefined {
@@ -52817,6 +52818,39 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
Debug.assert(specifier && nodeIsSynthesized(specifier) && specifier.text === "tslib", `Expected sourceFile.imports[0] to be the synthesized tslib import`);
return specifier;
}

function compareSymbols(s1: Symbol | undefined, s2: Symbol | undefined): number {
if (s1 === s2) return 0;
if (s1 === undefined) return 1;
if (s2 === undefined) return -1;
if (length(s1.declarations) !== 0 && length(s2.declarations) !== 0) {
const r = compareNodes(s1.declarations![0], s2.declarations![0]);
if (r !== 0) return r;
}
else if (length(s1.declarations) !== 0) {
return -1;
}
else if (length(s2.declarations) !== 0) {
return 1;
}
const r = compareComparableValues(s1.escapedName as string, s2.escapedName as string);
if (r !== 0) return r;
return getSymbolId(s1) - getSymbolId(s2);
}

function compareNodes(n1: Node | undefined, n2: Node | undefined): number {
if (n1 === n2) return 0;
if (n1 === undefined) return 1;
if (n2 === undefined) return -1;
const f1 = fileIndexMap.get(getSourceFileOfNode(n1))!;
const f2 = fileIndexMap.get(getSourceFileOfNode(n2))!;
if (f1 !== f2) {
// Order by index of file in the containing program
return f1 - f2;
}
// In the same file, order by source position
return n1.pos - n2.pos;
}
}

function isNotAccessor(declaration: Declaration): boolean {
8 changes: 5 additions & 3 deletions src/compiler/core.ts
Original file line number Diff line number Diff line change
@@ -1967,9 +1967,11 @@ export function equateStringsCaseSensitive(a: string, b: string): boolean {
return equateValues(a, b);
}

function compareComparableValues(a: string | undefined, b: string | undefined): Comparison;
function compareComparableValues(a: number | undefined, b: number | undefined): Comparison;
function compareComparableValues(a: string | number | undefined, b: string | number | undefined) {
/** @internal */
export function compareComparableValues(a: string | undefined, b: string | undefined): Comparison;
/** @internal */
export function compareComparableValues(a: number | undefined, b: number | undefined): Comparison;
export function compareComparableValues(a: string | number | undefined, b: string | number | undefined) {
return a === b ? Comparison.EqualTo :
a === undefined ? Comparison.LessThan :
b === undefined ? Comparison.GreaterThan :
20 changes: 12 additions & 8 deletions tests/baselines/reference/arityAndOrderCompatibility01.errors.txt
Original file line number Diff line number Diff line change
@@ -11,14 +11,16 @@ arityAndOrderCompatibility01.ts(23,5): error TS2322: Type '{ 0: string; 1: numbe
arityAndOrderCompatibility01.ts(24,5): error TS2322: Type '[string, number]' is not assignable to type '[number]'.
Source has 2 element(s) but target allows only 1.
arityAndOrderCompatibility01.ts(25,5): error TS2322: Type 'StrNum' is not assignable to type '[number]'.
Types of property '0' are incompatible.
Type 'string' is not assignable to type 'number'.
The types returned by 'pop()' are incompatible between these types.
Type 'string | number' is not assignable to type 'number'.
Type 'string' is not assignable to type 'number'.
arityAndOrderCompatibility01.ts(26,5): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number]'.
arityAndOrderCompatibility01.ts(27,5): error TS2322: Type '[string, number]' is not assignable to type '[string]'.
Source has 2 element(s) but target allows only 1.
arityAndOrderCompatibility01.ts(28,5): error TS2322: Type 'StrNum' is not assignable to type '[string]'.
Types of property 'length' are incompatible.
Type '2' is not assignable to type '1'.
The types returned by 'pop()' are incompatible between these types.
Type 'string | number' is not assignable to type 'string'.
Type 'number' is not assignable to type 'string'.
arityAndOrderCompatibility01.ts(29,5): error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[string]'.
arityAndOrderCompatibility01.ts(30,5): error TS2322: Type '[string, number]' is not assignable to type '[number, string]'.
Type at position 0 in source is not compatible with type at position 0 in target.
@@ -78,8 +80,9 @@ arityAndOrderCompatibility01.ts(32,5): error TS2322: Type '{ 0: string; 1: numbe
var l2: [number] = y;
~~
!!! error TS2322: Type 'StrNum' is not assignable to type '[number]'.
!!! error TS2322: Types of property '0' are incompatible.
!!! error TS2322: Type 'string' is not assignable to type 'number'.
!!! error TS2322: The types returned by 'pop()' are incompatible between these types.
!!! error TS2322: Type 'string | number' is not assignable to type 'number'.
!!! error TS2322: Type 'string' is not assignable to type 'number'.
var l3: [number] = z;
~~
!!! error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[number]'.
@@ -90,8 +93,9 @@ arityAndOrderCompatibility01.ts(32,5): error TS2322: Type '{ 0: string; 1: numbe
var m2: [string] = y;
~~
!!! error TS2322: Type 'StrNum' is not assignable to type '[string]'.
!!! error TS2322: Types of property 'length' are incompatible.
!!! error TS2322: Type '2' is not assignable to type '1'.
!!! error TS2322: The types returned by 'pop()' are incompatible between these types.
!!! error TS2322: Type 'string | number' is not assignable to type 'string'.
!!! error TS2322: Type 'number' is not assignable to type 'string'.
var m3: [string] = z;
~~
!!! error TS2322: Type '{ 0: string; 1: number; length: 2; }' is not assignable to type '[string]'.
12 changes: 6 additions & 6 deletions tests/baselines/reference/arrayAssignmentTest1.errors.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
arrayAssignmentTest1.ts(46,5): error TS2741: Property 'IM1' is missing in type 'undefined[]' but required in type 'I1'.
arrayAssignmentTest1.ts(47,5): error TS2739: Type 'undefined[]' is missing the following properties from type 'C1': IM1, C1M1
arrayAssignmentTest1.ts(48,5): error TS2739: Type 'undefined[]' is missing the following properties from type 'C2': C2M1, IM1, C1M1
arrayAssignmentTest1.ts(48,5): error TS2739: Type 'undefined[]' is missing the following properties from type 'C2': IM1, C1M1, C2M1
arrayAssignmentTest1.ts(49,5): error TS2741: Property 'CM3M1' is missing in type 'undefined[]' but required in type 'C3'.
arrayAssignmentTest1.ts(60,1): error TS2322: Type 'C3[]' is not assignable to type 'I1[]'.
Property 'IM1' is missing in type 'C3' but required in type 'I1'.
@@ -11,9 +11,9 @@ arrayAssignmentTest1.ts(65,1): error TS2322: Type 'C3[]' is not assignable to ty
arrayAssignmentTest1.ts(68,1): error TS2322: Type 'C1[]' is not assignable to type 'C2[]'.
Property 'C2M1' is missing in type 'C1' but required in type 'C2'.
arrayAssignmentTest1.ts(69,1): error TS2322: Type 'I1[]' is not assignable to type 'C2[]'.
Type 'I1' is missing the following properties from type 'C2': C2M1, C1M1
Type 'I1' is missing the following properties from type 'C2': C1M1, C2M1
arrayAssignmentTest1.ts(70,1): error TS2322: Type 'C3[]' is not assignable to type 'C2[]'.
Type 'C3' is missing the following properties from type 'C2': C2M1, IM1, C1M1
Type 'C3' is missing the following properties from type 'C2': IM1, C1M1, C2M1
arrayAssignmentTest1.ts(75,1): error TS2322: Type 'C2[]' is not assignable to type 'C3[]'.
Property 'CM3M1' is missing in type 'C2' but required in type 'C3'.
arrayAssignmentTest1.ts(76,1): error TS2322: Type 'C1[]' is not assignable to type 'C3[]'.
@@ -83,7 +83,7 @@ arrayAssignmentTest1.ts(85,1): error TS2740: Type 'I1' is missing the following
!!! error TS2739: Type 'undefined[]' is missing the following properties from type 'C1': IM1, C1M1
var c2_error: C2 = []; // should be an error - is
~~~~~~~~
!!! error TS2739: Type 'undefined[]' is missing the following properties from type 'C2': C2M1, IM1, C1M1
!!! error TS2739: Type 'undefined[]' is missing the following properties from type 'C2': IM1, C1M1, C2M1
var c3_error: C3 = []; // should be an error - is
~~~~~~~~
!!! error TS2741: Property 'CM3M1' is missing in type 'undefined[]' but required in type 'C3'.
@@ -125,11 +125,11 @@ arrayAssignmentTest1.ts(85,1): error TS2740: Type 'I1' is missing the following
arr_c2 = arr_i1; // should be an error - subtype relationship - is
~~~~~~
!!! error TS2322: Type 'I1[]' is not assignable to type 'C2[]'.
!!! error TS2322: Type 'I1' is missing the following properties from type 'C2': C2M1, C1M1
!!! error TS2322: Type 'I1' is missing the following properties from type 'C2': C1M1, C2M1
arr_c2 = arr_c3; // should be an error - is
~~~~~~
!!! error TS2322: Type 'C3[]' is not assignable to type 'C2[]'.
!!! error TS2322: Type 'C3' is missing the following properties from type 'C2': C2M1, IM1, C1M1
!!! error TS2322: Type 'C3' is missing the following properties from type 'C2': IM1, C1M1, C2M1

// "clean up bug" occurs at this point
// if you move these three expressions to another file, they raise an error
4 changes: 2 additions & 2 deletions tests/baselines/reference/arrowFunctionExpressions.types
Original file line number Diff line number Diff line change
@@ -175,9 +175,9 @@ var p9 = ({ a: { b = 1 } = { b: 1 } }) => { };
> : ^

var p10 = ([{ value, done }]) => { };
>p10 : ([{ value, done }]: [{ value: any; done: any; }]) => void
>p10 : ([{ value, done }]: [{ done: any; value: any; }]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>([{ value, done }]) => { } : ([{ value, done }]: [{ value: any; done: any; }]) => void
>([{ value, done }]) => { } : ([{ value, done }]: [{ done: any; value: any; }]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>value : any
> : ^^^
Original file line number Diff line number Diff line change
@@ -46,7 +46,7 @@ assignmentCompatWithCallSignatures3.ts(80,1): error TS2322: Type '(x: Base[], y:
Types of parameters 'y' and 'y' are incompatible.
Type 'T' is not assignable to type 'Derived2[]'.
Type 'Base[]' is not assignable to type 'Derived2[]'.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz
assignmentCompatWithCallSignatures3.ts(83,1): error TS2322: Type '(x: Base[], y: Derived[]) => Derived[]' is not assignable to type '<T extends Array<Derived>>(x: Base[], y: T) => T'.
Type 'Derived[]' is not assignable to type 'T'.
'Derived[]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Derived[]'.
@@ -208,7 +208,7 @@ assignmentCompatWithCallSignatures3.ts(86,1): error TS2322: Type '(x: { a: strin
!!! error TS2322: Types of parameters 'y' and 'y' are incompatible.
!!! error TS2322: Type 'T' is not assignable to type 'Derived2[]'.
!!! error TS2322: Type 'Base[]' is not assignable to type 'Derived2[]'.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz
var b13: <T extends Array<Derived>>(x: Array<Base>, y: T) => T;
a13 = b13; // ok
b13 = a13; // ok
Original file line number Diff line number Diff line change
@@ -46,7 +46,7 @@ assignmentCompatWithConstructSignatures3.ts(80,1): error TS2322: Type 'new (x: B
Types of parameters 'y' and 'y' are incompatible.
Type 'T' is not assignable to type 'Derived2[]'.
Type 'Base[]' is not assignable to type 'Derived2[]'.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz
assignmentCompatWithConstructSignatures3.ts(83,1): error TS2322: Type 'new (x: Base[], y: Derived[]) => Derived[]' is not assignable to type 'new <T extends Array<Derived>>(x: Base[], y: T) => T'.
Type 'Derived[]' is not assignable to type 'T'.
'Derived[]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Derived[]'.
@@ -208,7 +208,7 @@ assignmentCompatWithConstructSignatures3.ts(86,1): error TS2322: Type 'new (x: {
!!! error TS2322: Types of parameters 'y' and 'y' are incompatible.
!!! error TS2322: Type 'T' is not assignable to type 'Derived2[]'.
!!! error TS2322: Type 'Base[]' is not assignable to type 'Derived2[]'.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz
var b13: new <T extends Array<Derived>>(x: Array<Base>, y: T) => T;
a13 = b13; // ok
b13 = a13; // ok
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ assignmentCompatWithNumericIndexer.ts(14,1): error TS2322: Type 'A' is not assig
Property 'bar' is missing in type 'Base' but required in type 'Derived'.
assignmentCompatWithNumericIndexer.ts(18,1): error TS2322: Type 'A' is not assignable to type '{ [x: number]: Derived2; }'.
'number' index signatures are incompatible.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz
assignmentCompatWithNumericIndexer.ts(32,9): error TS2322: Type '{ [x: number]: Derived; }' is not assignable to type 'A<T>'.
'number' index signatures are incompatible.
Type 'Derived' is not assignable to type 'T'.
@@ -19,7 +19,7 @@ assignmentCompatWithNumericIndexer.ts(36,9): error TS2322: Type '{ [x: number]:
assignmentCompatWithNumericIndexer.ts(37,9): error TS2322: Type 'A<T>' is not assignable to type '{ [x: number]: Derived2; }'.
'number' index signatures are incompatible.
Type 'T' is not assignable to type 'Derived2'.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz


==== assignmentCompatWithNumericIndexer.ts (6 errors) ====
@@ -49,7 +49,7 @@ assignmentCompatWithNumericIndexer.ts(37,9): error TS2322: Type 'A<T>' is not as
~~
!!! error TS2322: Type 'A' is not assignable to type '{ [x: number]: Derived2; }'.
!!! error TS2322: 'number' index signatures are incompatible.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz

module Generics {
class A<T extends Base> {
@@ -89,7 +89,7 @@ assignmentCompatWithNumericIndexer.ts(37,9): error TS2322: Type 'A<T>' is not as
!!! error TS2322: Type 'A<T>' is not assignable to type '{ [x: number]: Derived2; }'.
!!! error TS2322: 'number' index signatures are incompatible.
!!! error TS2322: Type 'T' is not assignable to type 'Derived2'.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz

var b3: { [x: number]: T; }
a = b3; // ok
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ assignmentCompatWithNumericIndexer2.ts(14,1): error TS2322: Type 'A' is not assi
Property 'bar' is missing in type 'Base' but required in type 'Derived'.
assignmentCompatWithNumericIndexer2.ts(18,1): error TS2322: Type 'A' is not assignable to type '{ [x: number]: Derived2; }'.
'number' index signatures are incompatible.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz
assignmentCompatWithNumericIndexer2.ts(32,9): error TS2322: Type '{ [x: number]: Derived; }' is not assignable to type 'A<T>'.
'number' index signatures are incompatible.
Type 'Derived' is not assignable to type 'T'.
@@ -19,7 +19,7 @@ assignmentCompatWithNumericIndexer2.ts(36,9): error TS2322: Type '{ [x: number]:
assignmentCompatWithNumericIndexer2.ts(37,9): error TS2322: Type 'A<T>' is not assignable to type '{ [x: number]: Derived2; }'.
'number' index signatures are incompatible.
Type 'T' is not assignable to type 'Derived2'.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz


==== assignmentCompatWithNumericIndexer2.ts (6 errors) ====
@@ -49,7 +49,7 @@ assignmentCompatWithNumericIndexer2.ts(37,9): error TS2322: Type 'A<T>' is not a
~~
!!! error TS2322: Type 'A' is not assignable to type '{ [x: number]: Derived2; }'.
!!! error TS2322: 'number' index signatures are incompatible.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz

module Generics {
interface A<T extends Base> {
@@ -89,7 +89,7 @@ assignmentCompatWithNumericIndexer2.ts(37,9): error TS2322: Type 'A<T>' is not a
!!! error TS2322: Type 'A<T>' is not assignable to type '{ [x: number]: Derived2; }'.
!!! error TS2322: 'number' index signatures are incompatible.
!!! error TS2322: Type 'T' is not assignable to type 'Derived2'.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz

var b3: { [x: number]: T; }
a = b3; // ok
Original file line number Diff line number Diff line change
@@ -3,13 +3,13 @@ assignmentCompatWithStringIndexer.ts(15,1): error TS2322: Type 'A' is not assign
Property 'bar' is missing in type 'Base' but required in type 'Derived'.
assignmentCompatWithStringIndexer.ts(19,1): error TS2322: Type 'A' is not assignable to type '{ [x: string]: Derived2; }'.
'string' index signatures are incompatible.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz
assignmentCompatWithStringIndexer.ts(33,5): error TS2322: Type 'A<Base>' is not assignable to type '{ [x: string]: Derived; }'.
'string' index signatures are incompatible.
Property 'bar' is missing in type 'Base' but required in type 'Derived'.
assignmentCompatWithStringIndexer.ts(41,5): error TS2322: Type 'A<Base>' is not assignable to type '{ [x: string]: Derived2; }'.
'string' index signatures are incompatible.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz
assignmentCompatWithStringIndexer.ts(46,9): error TS2322: Type '{ [x: string]: Derived; }' is not assignable to type 'A<T>'.
'string' index signatures are incompatible.
Type 'Derived' is not assignable to type 'T'.
@@ -25,7 +25,7 @@ assignmentCompatWithStringIndexer.ts(50,9): error TS2322: Type '{ [x: string]: D
assignmentCompatWithStringIndexer.ts(51,9): error TS2322: Type 'A<T>' is not assignable to type '{ [x: string]: Derived2; }'.
'string' index signatures are incompatible.
Type 'T' is not assignable to type 'Derived2'.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz


==== assignmentCompatWithStringIndexer.ts (8 errors) ====
@@ -56,7 +56,7 @@ assignmentCompatWithStringIndexer.ts(51,9): error TS2322: Type 'A<T>' is not ass
~~
!!! error TS2322: Type 'A' is not assignable to type '{ [x: string]: Derived2; }'.
!!! error TS2322: 'string' index signatures are incompatible.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz

module Generics {
class A<T extends Base> {
@@ -87,7 +87,7 @@ assignmentCompatWithStringIndexer.ts(51,9): error TS2322: Type 'A<T>' is not ass
~~
!!! error TS2322: Type 'A<Base>' is not assignable to type '{ [x: string]: Derived2; }'.
!!! error TS2322: 'string' index signatures are incompatible.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz

function foo<T extends Base>() {
var b3: { [x: string]: Derived; };
@@ -118,6 +118,6 @@ assignmentCompatWithStringIndexer.ts(51,9): error TS2322: Type 'A<T>' is not ass
!!! error TS2322: Type 'A<T>' is not assignable to type '{ [x: string]: Derived2; }'.
!!! error TS2322: 'string' index signatures are incompatible.
!!! error TS2322: Type 'T' is not assignable to type 'Derived2'.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz
}
}
Original file line number Diff line number Diff line change
@@ -3,13 +3,13 @@ assignmentCompatWithStringIndexer2.ts(15,1): error TS2322: Type 'A' is not assig
Property 'bar' is missing in type 'Base' but required in type 'Derived'.
assignmentCompatWithStringIndexer2.ts(19,1): error TS2322: Type 'A' is not assignable to type '{ [x: string]: Derived2; }'.
'string' index signatures are incompatible.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz
assignmentCompatWithStringIndexer2.ts(33,5): error TS2322: Type 'A<Base>' is not assignable to type '{ [x: string]: Derived; }'.
'string' index signatures are incompatible.
Property 'bar' is missing in type 'Base' but required in type 'Derived'.
assignmentCompatWithStringIndexer2.ts(41,5): error TS2322: Type 'A<Base>' is not assignable to type '{ [x: string]: Derived2; }'.
'string' index signatures are incompatible.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz
assignmentCompatWithStringIndexer2.ts(46,9): error TS2322: Type '{ [x: string]: Derived; }' is not assignable to type 'A<T>'.
'string' index signatures are incompatible.
Type 'Derived' is not assignable to type 'T'.
@@ -25,7 +25,7 @@ assignmentCompatWithStringIndexer2.ts(50,9): error TS2322: Type '{ [x: string]:
assignmentCompatWithStringIndexer2.ts(51,9): error TS2322: Type 'A<T>' is not assignable to type '{ [x: string]: Derived2; }'.
'string' index signatures are incompatible.
Type 'T' is not assignable to type 'Derived2'.
Type 'Base' is missing the following properties from type 'Derived2': baz, bar
Type 'Base' is missing the following properties from type 'Derived2': bar, baz


==== assignmentCompatWithStringIndexer2.ts (8 errors) ====
@@ -56,7 +56,7 @@ assignmentCompatWithStringIndexer2.ts(51,9): error TS2322: Type 'A<T>' is not as
~~
!!! error TS2322: Type 'A' is not assignable to type '{ [x: string]: Derived2; }'.
!!! error TS2322: 'string' index signatures are incompatible.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz

module Generics {
interface A<T extends Base> {
@@ -87,7 +87,7 @@ assignmentCompatWithStringIndexer2.ts(51,9): error TS2322: Type 'A<T>' is not as
~~
!!! error TS2322: Type 'A<Base>' is not assignable to type '{ [x: string]: Derived2; }'.
!!! error TS2322: 'string' index signatures are incompatible.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz

function foo<T extends Base>() {
var b3: { [x: string]: Derived; };
@@ -118,6 +118,6 @@ assignmentCompatWithStringIndexer2.ts(51,9): error TS2322: Type 'A<T>' is not as
!!! error TS2322: Type 'A<T>' is not assignable to type '{ [x: string]: Derived2; }'.
!!! error TS2322: 'string' index signatures are incompatible.
!!! error TS2322: Type 'T' is not assignable to type 'Derived2'.
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': baz, bar
!!! error TS2322: Type 'Base' is missing the following properties from type 'Derived2': bar, baz
}
}
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
// https://github.com/Microsoft/TypeScript/issues/19187

async ({ foo, bar, ...rest }) => bar(await foo);
>async ({ foo, bar, ...rest }) => bar(await foo) : ({ foo, bar, ...rest }: { [x: string]: any; foo: any; bar: any; }) => Promise<any>
>async ({ foo, bar, ...rest }) => bar(await foo) : ({ foo, bar, ...rest }: { [x: string]: any; bar: any; foo: any; }) => Promise<any>
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>foo : any
> : ^^^
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts(19,64): error TS2741: Property 'z' is missing in type 'B' but required in type 'C'.
chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts(19,81): error TS2739: Type 'A' is missing the following properties from type 'C': z, y
chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts(19,81): error TS2739: Type 'A' is missing the following properties from type 'C': y, z


==== chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts (2 errors) ====
@@ -27,5 +27,5 @@ chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts(19,81): error TS
!!! related TS2728 chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts:15:5: 'z' is declared here.
!!! related TS6502 chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts:3:27: The expected type comes from the return type of this signature.
~~~~~
!!! error TS2739: Type 'A' is missing the following properties from type 'C': z, y
!!! error TS2739: Type 'A' is missing the following properties from type 'C': y, z
!!! related TS6502 chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts:3:27: The expected type comes from the return type of this signature.
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
file.tsx(10,17): error TS2322: Type '{ children: Element; }' is not assignable to type 'IntrinsicAttributes'.
Property 'children' does not exist on type 'IntrinsicAttributes'.
file.tsx(11,13): error TS2322: Type '{ children: Element; key: string; }' is not assignable to type 'IntrinsicAttributes'.
file.tsx(11,13): error TS2322: Type '{ key: string; children: Element; }' is not assignable to type 'IntrinsicAttributes'.
Property 'children' does not exist on type 'IntrinsicAttributes'.
file.tsx(12,13): error TS2322: Type '{ children: Element[]; key: string; }' is not assignable to type 'IntrinsicAttributes'.
file.tsx(12,13): error TS2322: Type '{ key: string; children: Element[]; }' is not assignable to type 'IntrinsicAttributes'.
Property 'children' does not exist on type 'IntrinsicAttributes'.


@@ -22,10 +22,10 @@ file.tsx(12,13): error TS2322: Type '{ children: Element[]; key: string; }' is n
!!! error TS2322: Property 'children' does not exist on type 'IntrinsicAttributes'.
const k4 = <Tag key="1"><div></div></Tag>;
~~~
!!! error TS2322: Type '{ children: Element; key: string; }' is not assignable to type 'IntrinsicAttributes'.
!!! error TS2322: Type '{ key: string; children: Element; }' is not assignable to type 'IntrinsicAttributes'.
!!! error TS2322: Property 'children' does not exist on type 'IntrinsicAttributes'.
const k5 = <Tag key="1"><div></div><div></div></Tag>;
~~~
!!! error TS2322: Type '{ children: Element[]; key: string; }' is not assignable to type 'IntrinsicAttributes'.
!!! error TS2322: Type '{ key: string; children: Element[]; }' is not assignable to type 'IntrinsicAttributes'.
!!! error TS2322: Property 'children' does not exist on type 'IntrinsicAttributes'.

2 changes: 1 addition & 1 deletion tests/baselines/reference/checkJsxChildrenProperty16.types
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -244,7 +244,7 @@ var result6 = true ? 1 : {};
> : ^^

var result7 = true ? { a: 2, b: 'string' } : { a: 1 };
>result7 : { a: number; b: string; } | { a: number; b?: undefined; }
>result7 : { a: number; b: string; } | { b?: undefined; a: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>true ? { a: 2, b: 'string' } : { a: 1 } : { a: number; b: string; } | { a: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 changes: 2 additions & 2 deletions tests/baselines/reference/constAssertions.js
Original file line number Diff line number Diff line change
@@ -258,12 +258,12 @@ declare let o2: {
readonly d: () => void;
};
declare let o3: {
readonly x: 10;
readonly y: 20;
readonly a: 1;
readonly b: 2;
readonly c: 3;
readonly d: () => void;
readonly x: 10;
readonly y: 20;
};
declare let o4: {
a: number;
6 changes: 3 additions & 3 deletions tests/baselines/reference/constAssertions.types
Original file line number Diff line number Diff line change
@@ -338,11 +338,11 @@ let o2 = { a: 1, 'b': 2, ['c']: 3, d() {}, ['e' + '']: 4 } as const;
> : ^

let o3 = { ...o1, ...o2 } as const;
>o3 : { readonly a: 1; readonly b: 2; readonly c: 3; readonly d: () => void; readonly x: 10; readonly y: 20; }
>o3 : { readonly x: 10; readonly y: 20; readonly a: 1; readonly b: 2; readonly c: 3; readonly d: () => void; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>{ ...o1, ...o2 } as const : { readonly a: 1; readonly b: 2; readonly c: 3; readonly d: () => void; readonly x: 10; readonly y: 20; }
>{ ...o1, ...o2 } as const : { readonly x: 10; readonly y: 20; readonly a: 1; readonly b: 2; readonly c: 3; readonly d: () => void; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>{ ...o1, ...o2 } : { readonly a: 1; readonly b: 2; readonly c: 3; readonly d: () => void; readonly x: 10; readonly y: 20; }
>{ ...o1, ...o2 } : { readonly x: 10; readonly y: 20; readonly a: 1; readonly b: 2; readonly c: 3; readonly d: () => void; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>o1 : { readonly x: 10; readonly y: 20; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
file.tsx(27,64): error TS2769: No overload matches this call.
Overload 1 of 2, '(buttonProps: ButtonProps): Element', gave the following error.
Type '{ extra: true; onClick: (k: "left" | "right") => void; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
Type '{ onClick: (k: "left" | "right") => void; extra: true; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
Property 'extra' does not exist on type 'IntrinsicAttributes & ButtonProps'.
Overload 2 of 2, '(linkProps: LinkProps): Element', gave the following error.
Type '{ extra: true; onClick: (k: "left" | "right") => void; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
Type '{ onClick: (k: "left" | "right") => void; extra: true; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
Property 'extra' does not exist on type 'IntrinsicAttributes & LinkProps'.
file.tsx(28,13): error TS2769: No overload matches this call.
Overload 1 of 2, '(buttonProps: ButtonProps): Element', gave the following error.
@@ -14,10 +14,10 @@ file.tsx(28,13): error TS2769: No overload matches this call.
Property 'onClick' does not exist on type 'IntrinsicAttributes & LinkProps'.
file.tsx(29,43): error TS2769: No overload matches this call.
Overload 1 of 2, '(buttonProps: ButtonProps): Element', gave the following error.
Type '{ extra: true; goTo: string; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
Type '{ goTo: string; extra: true; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
Property 'extra' does not exist on type 'IntrinsicAttributes & ButtonProps'.
Overload 2 of 2, '(linkProps: LinkProps): Element', gave the following error.
Type '{ extra: true; goTo: "home"; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
Type '{ goTo: "home"; extra: true; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
Property 'extra' does not exist on type 'IntrinsicAttributes & LinkProps'.
file.tsx(30,13): error TS2769: No overload matches this call.
Overload 1 of 2, '(buttonProps: ButtonProps): Element', gave the following error.
@@ -26,9 +26,9 @@ file.tsx(30,13): error TS2769: No overload matches this call.
Overload 2 of 2, '(linkProps: LinkProps): Element', gave the following error.
Type '{ goTo: "home"; extra: true; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
Property 'extra' does not exist on type 'IntrinsicAttributes & LinkProps'.
file.tsx(33,65): error TS2322: Type '{ extra: true; onClick: (k: "left" | "right") => void; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
file.tsx(33,65): error TS2322: Type '{ onClick: (k: "left" | "right") => void; extra: true; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
Property 'extra' does not exist on type 'IntrinsicAttributes & ButtonProps'.
file.tsx(36,44): error TS2322: Type '{ extra: true; goTo: "home"; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
file.tsx(36,44): error TS2322: Type '{ goTo: "home"; extra: true; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
Property 'extra' does not exist on type 'IntrinsicAttributes & LinkProps'.


@@ -63,10 +63,10 @@ file.tsx(36,44): error TS2322: Type '{ extra: true; goTo: "home"; }' is not assi
~~~~~
!!! error TS2769: No overload matches this call.
!!! error TS2769: Overload 1 of 2, '(buttonProps: ButtonProps): Element', gave the following error.
!!! error TS2769: Type '{ extra: true; onClick: (k: "left" | "right") => void; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
!!! error TS2769: Type '{ onClick: (k: "left" | "right") => void; extra: true; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
!!! error TS2769: Property 'extra' does not exist on type 'IntrinsicAttributes & ButtonProps'.
!!! error TS2769: Overload 2 of 2, '(linkProps: LinkProps): Element', gave the following error.
!!! error TS2769: Type '{ extra: true; onClick: (k: "left" | "right") => void; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
!!! error TS2769: Type '{ onClick: (k: "left" | "right") => void; extra: true; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
!!! error TS2769: Property 'extra' does not exist on type 'IntrinsicAttributes & LinkProps'.
const b2 = <MainButton onClick={(k)=>{console.log(k)}} extra />; // k has type "left" | "right"
~~~~~~~~~~
@@ -81,10 +81,10 @@ file.tsx(36,44): error TS2322: Type '{ extra: true; goTo: "home"; }' is not assi
~~~~~
!!! error TS2769: No overload matches this call.
!!! error TS2769: Overload 1 of 2, '(buttonProps: ButtonProps): Element', gave the following error.
!!! error TS2769: Type '{ extra: true; goTo: string; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
!!! error TS2769: Type '{ goTo: string; extra: true; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
!!! error TS2769: Property 'extra' does not exist on type 'IntrinsicAttributes & ButtonProps'.
!!! error TS2769: Overload 2 of 2, '(linkProps: LinkProps): Element', gave the following error.
!!! error TS2769: Type '{ extra: true; goTo: "home"; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
!!! error TS2769: Type '{ goTo: "home"; extra: true; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
!!! error TS2769: Property 'extra' does not exist on type 'IntrinsicAttributes & LinkProps'.
const b4 = <MainButton goTo="home" extra />; // goTo has type "home" | "contact"
~~~~~~~~~~
@@ -99,12 +99,12 @@ file.tsx(36,44): error TS2322: Type '{ extra: true; goTo: "home"; }' is not assi
export function NoOverload(buttonProps: ButtonProps): JSX.Element { return undefined }
const c1 = <NoOverload {...{onClick: (k) => {console.log(k)}}} extra />; // k has type any
~~~~~
!!! error TS2322: Type '{ extra: true; onClick: (k: "left" | "right") => void; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
!!! error TS2322: Type '{ onClick: (k: "left" | "right") => void; extra: true; }' is not assignable to type 'IntrinsicAttributes & ButtonProps'.
!!! error TS2322: Property 'extra' does not exist on type 'IntrinsicAttributes & ButtonProps'.

export function NoOverload1(linkProps: LinkProps): JSX.Element { return undefined }
const d1 = <NoOverload1 {...{goTo:"home"}} extra />; // goTo has type "home" | "contact"
~~~~~
!!! error TS2322: Type '{ extra: true; goTo: "home"; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
!!! error TS2322: Type '{ goTo: "home"; extra: true; }' is not assignable to type 'IntrinsicAttributes & LinkProps'.
!!! error TS2322: Property 'extra' does not exist on type 'IntrinsicAttributes & LinkProps'.

2 changes: 1 addition & 1 deletion tests/baselines/reference/controlFlowOptionalChain3.types
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ export declare let b: ({
m(): void;
bar?: undefined;
} | {
bar: number;
foo?: undefined;
m?: undefined;
bar: number;
})[];
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
// repro from https://github.com/microsoft/TypeScript/issues/53914

export let b = [{ foo: 0, m() {} }, { bar: 1 }];
>b : ({ foo: number; m(): void; bar?: undefined; } | { bar: number; foo?: undefined; m?: undefined; })[]
>b : ({ foo: number; m(): void; bar?: undefined; } | { foo?: undefined; m?: undefined; bar: number; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>[{ foo: 0, m() {} }, { bar: 1 }] : ({ foo: number; m(): void; } | { bar: number; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Original file line number Diff line number Diff line change
@@ -26,8 +26,8 @@ export const o = () => null! as { [n]: string, foo: string, [poz]: number, [neg]
> : ^^^^^^
>() => null! as { [n]: string, foo: string, [poz]: number, [neg]: number } : () => { [n]: string; foo: string; [poz]: number; [neg]: number; }
> : ^^^^^^
>null! as { [n]: string, foo: string, [poz]: number, [neg]: number } : { foo: string; A: string; 1: number; [-1]: number; }
> : ^^^^^^^ ^^^^^ ^^^^^ ^^^^^^^^ ^^^
>null! as { [n]: string, foo: string, [poz]: number, [neg]: number } : { A: string; foo: string; 1: number; [-1]: number; }
> : ^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^^ ^^^
>null! : never
> : ^^^^^
>[n] : string
Original file line number Diff line number Diff line change
@@ -108,8 +108,8 @@ export declare class A {
import { A } from './class';
export declare class B extends A {
getA(): {
a: string;
"123123": string;
"12312312312": string;
a: string;
};
}
Original file line number Diff line number Diff line change
@@ -91,12 +91,12 @@ export class B extends A {
> : ^

getA() { // TS4053 error
>getA : () => { a: string; "123123": string; "12312312312": string; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
>getA : () => { "123123": string; "12312312312": string; a: string; }
> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^

return {
>{ ...super.getA(), a: '123', } : { a: string; "123123": string; "12312312312": string; }
> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^
>{ ...super.getA(), a: '123', } : { "123123": string; "12312312312": string; a: string; }
> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^

...super.getA(),
>super.getA() : import("class").ITest
Original file line number Diff line number Diff line change
@@ -372,13 +372,13 @@ export { type UseQueryReturnType, useQuery };
export { UseQueryReturnType, useQuery } from './useQuery-CPqkvEsh.js';
>UseQueryReturnType : any
> : ^^^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^

=== src/index.mts ===
import { useQuery } from '@tanstack/vue-query'
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^

const baseUrl = 'https://api.publicapis.org/'
>baseUrl : "https://api.publicapis.org/"
@@ -544,8 +544,8 @@ export const useEntries = () => {
return useQuery({
>useQuery({ queryKey: entryKeys.list(), queryFn: testApi.getEntries, select: (data) => data.slice(0, 10) }) : import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType<IEntry[], Error>
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
>{ queryKey: entryKeys.list(), queryFn: testApi.getEntries, select: (data) => data.slice(0, 10) } : { queryKey: readonly ["entries", "list"]; queryFn: () => Promise<IEntry[]>; select: (data: IEntry[]) => IEntry[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^

Original file line number Diff line number Diff line change
@@ -378,15 +378,15 @@ export { b as UseQueryReturnType, u as useQuery } from './useQuery-CPqkvEsh.js';
> : ^^^
>UseQueryReturnType : any
> : ^^^
>u : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^
>u : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^

=== src/index.mts ===
import { useQuery } from '@tanstack/vue-query'
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^

const baseUrl = 'https://api.publicapis.org/'
>baseUrl : "https://api.publicapis.org/"
@@ -552,8 +552,8 @@ export const useEntries = () => {
return useQuery({
>useQuery({ queryKey: entryKeys.list(), queryFn: testApi.getEntries, select: (data) => data.slice(0, 10) }) : import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<IEntry[], Error>
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^
>useQuery : <TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: { retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise<TQueryFnData>) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; enabled?: boolean | undefined; refetchInterval?: number | undefined; select?: ((data: TQueryFnData) => TData) | undefined; } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b<TData, TError>
> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^
>{ queryKey: entryKeys.list(), queryFn: testApi.getEntries, select: (data) => data.slice(0, 10) } : { queryKey: readonly ["entries", "list"]; queryFn: () => Promise<IEntry[]>; select: (data: IEntry[]) => IEntry[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^

17 changes: 0 additions & 17 deletions tests/baselines/reference/deferredLookupTypeResolution.js
Original file line number Diff line number Diff line change
@@ -62,20 +62,3 @@ declare function f3(x: 'a' | 'b'): {
b: any;
x: any;
};


!!!! File deferredLookupTypeResolution.d.ts differs from original emit in noCheck emit
//// [deferredLookupTypeResolution.d.ts]
===================================================================
--- Expected The full check baseline
+++ Actual with noCheck set
@@ -15,8 +15,8 @@
[P in A | B]: any;
};
declare function f2<A extends string>(a: A): { [P in A | "x"]: any; };
declare function f3(x: 'a' | 'b'): {
+ x: any;
a: any;
b: any;
- x: any;
};
Original file line number Diff line number Diff line change
@@ -943,7 +943,6 @@ declare let fooAsyncGenM: FooAsyncGenMethod;
type Func = <T extends ["a", number] | ["b", string]>(...args: T) => void;
declare const f60: Func;
declare function foo({ value1, test1, test2, test3, test4, test5, test6, test7, test8, test9 }: {
value1: any;
test1?: any;
test2?: any;
test3?: any;
@@ -953,6 +952,7 @@ declare function foo({ value1, test1, test2, test3, test4, test5, test6, test7,
test7?: any;
test8?: any;
test9?: any;
value1: any;
}): void;
declare function fa1(x: [true, number] | [false, string]): void;
declare function fa2(x: {
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Type Count: 2,500
Instantiation count: 5,000
Instantiation count: 2,500

=== dependentDestructuredVariables.ts ===
type Action =
@@ -1463,7 +1463,7 @@ const f60: Func = (kind, payload) => {
// Repro from #48902

function foo({
>foo : ({ value1, test1, test2, test3, test4, test5, test6, test7, test8, test9 }: { value1: any; test1?: any; test2?: any; test3?: any; test4?: any; test5?: any; test6?: any; test7?: any; test8?: any; test9?: any; }) => void
>foo : ({ value1, test1, test2, test3, test4, test5, test6, test7, test8, test9 }: { test1?: any; test2?: any; test3?: any; test4?: any; test5?: any; test6?: any; test7?: any; test8?: any; test9?: any; value1: any; }) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

value1,
Original file line number Diff line number Diff line change
@@ -174,7 +174,7 @@ function b3({z: {x, y: {j}}} = { z: { x: "hi", y: { j: 1 } } }) { }

interface F1 {
b5(z, y, [, a, b], {p, m: { q, r}});
>b5 : (z: any, y: any, [, a, b]: [any, any, any], { p, m: { q, r } }: { p: any; m: { q: any; r: any; }; }) => any
>b5 : (z: any, y: any, [, a, b]: [any, any, any], { p, m: { q, r } }: { m: { q: any; r: any; }; p: any; }) => any
> : ^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>z : any
> : ^^^
Original file line number Diff line number Diff line change
@@ -174,7 +174,7 @@ function b3({z: {x, y: {j}}} = { z: { x: "hi", y: { j: 1 } } }) { }

interface F1 {
b5(z, y, [, a, b], {p, m: { q, r}});
>b5 : (z: any, y: any, [, a, b]: [any, any, any], { p, m: { q, r } }: { p: any; m: { q: any; r: any; }; }) => any
>b5 : (z: any, y: any, [, a, b]: [any, any, any], { p, m: { q, r } }: { m: { q: any; r: any; }; p: any; }) => any
> : ^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>z : any
> : ^^^
Original file line number Diff line number Diff line change
@@ -177,7 +177,7 @@ function b3({z: {x, y: {j}}} = { z: { x: "hi", y: { j: 1 } } }) { }

interface F1 {
b5(z, y, [, a, b], {p, m: { q, r}});
>b5 : (z: any, y: any, [, a, b]: [any, any, any], { p, m: { q, r } }: { p: any; m: { q: any; r: any; }; }) => any
>b5 : (z: any, y: any, [, a, b]: [any, any, any], { p, m: { q, r } }: { m: { q: any; r: any; }; p: any; }) => any
> : ^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>z : any
> : ^^^
Original file line number Diff line number Diff line change
@@ -19,9 +19,9 @@ destructuringParameterDeclaration2.ts(46,13): error TS2463: A binding pattern pa
destructuringParameterDeclaration2.ts(47,13): error TS2463: A binding pattern parameter cannot be optional in an implementation signature.
destructuringParameterDeclaration2.ts(56,8): error TS2463: A binding pattern parameter cannot be optional in an implementation signature.
destructuringParameterDeclaration2.ts(57,5): error TS2416: Property 'd4' in type 'C4' is not assignable to the same property in base type 'F2'.
Type '({ x, y, c }: { x: any; y: any; c: any; }) => void' is not assignable to type '({ x, y, z }?: { x: any; y: any; z: any; }) => any'.
Type '({ x, y, c }: { c: any; x: any; y: any; }) => void' is not assignable to type '({ x, y, z }?: { x: any; y: any; z: any; }) => any'.
Types of parameters '__0' and '__0' are incompatible.
Property 'c' is missing in type '{ x: any; y: any; z: any; }' but required in type '{ x: any; y: any; c: any; }'.
Property 'c' is missing in type '{ x: any; y: any; z: any; }' but required in type '{ c: any; x: any; y: any; }'.
destructuringParameterDeclaration2.ts(65,18): error TS2300: Duplicate identifier 'number'.
destructuringParameterDeclaration2.ts(65,26): error TS2300: Duplicate identifier 'number'.
destructuringParameterDeclaration2.ts(65,34): error TS2300: Duplicate identifier 'number'.
@@ -129,9 +129,9 @@ destructuringParameterDeclaration2.ts(65,34): error TS2300: Duplicate identifier
d4({x, y, c}) { }
~~
!!! error TS2416: Property 'd4' in type 'C4' is not assignable to the same property in base type 'F2'.
!!! error TS2416: Type '({ x, y, c }: { x: any; y: any; c: any; }) => void' is not assignable to type '({ x, y, z }?: { x: any; y: any; z: any; }) => any'.
!!! error TS2416: Type '({ x, y, c }: { c: any; x: any; y: any; }) => void' is not assignable to type '({ x, y, z }?: { x: any; y: any; z: any; }) => any'.
!!! error TS2416: Types of parameters '__0' and '__0' are incompatible.
!!! error TS2416: Property 'c' is missing in type '{ x: any; y: any; z: any; }' but required in type '{ x: any; y: any; c: any; }'.
!!! error TS2416: Property 'c' is missing in type '{ x: any; y: any; z: any; }' but required in type '{ c: any; x: any; y: any; }'.
e0([a, b, q]) { }
}

Original file line number Diff line number Diff line change
@@ -411,7 +411,7 @@ class C4 implements F2 {
> : ^^^

d4({x, y, c}) { }
>d4 : ({ x, y, c }: { x: any; y: any; c: any; }) => void
>d4 : ({ x, y, c }: { c: any; x: any; y: any; }) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>x : any
> : ^^^
4 changes: 2 additions & 2 deletions tests/baselines/reference/destructuringSpread.errors.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
destructuringSpread.ts(16,21): error TS2339: Property 'g' does not exist on type '{ f: number; e: number; d: number; c: number; }'.
destructuringSpread.ts(16,21): error TS2339: Property 'g' does not exist on type '{ c: number; d: number; e: number; f: number; }'.


==== destructuringSpread.ts (1 errors) ====
@@ -19,7 +19,7 @@ destructuringSpread.ts(16,21): error TS2339: Property 'g' does not exist on type

const { c, d, e, f, g } = {
~
!!! error TS2339: Property 'g' does not exist on type '{ f: number; e: number; d: number; c: number; }'.
!!! error TS2339: Property 'g' does not exist on type '{ c: number; d: number; e: number; f: number; }'.
...{
...{
...{
8 changes: 4 additions & 4 deletions tests/baselines/reference/destructuringSpread.types
Original file line number Diff line number Diff line change
@@ -44,7 +44,7 @@ const { z, a, b } = {
> : ^^^^^^
>b : number
> : ^^^^^^
>{ z: 0, ...{ a: 0, b: 0 }} : { a: number; b: number; z: number; }
>{ z: 0, ...{ a: 0, b: 0 }} : { z: number; a: number; b: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

z: 0,
@@ -78,15 +78,15 @@ const { c, d, e, f, g } = {
> : ^^^^^^
>g : any
> : ^^^
>{ ...{ ...{ ...{ c: 0, }, d: 0 }, e: 0 }, f: 0} : { f: number; e: number; d: number; c: number; }
>{ ...{ ...{ ...{ c: 0, }, d: 0 }, e: 0 }, f: 0} : { c: number; d: number; e: number; f: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

...{
>{ ...{ ...{ c: 0, }, d: 0 }, e: 0 } : { e: number; d: number; c: number; }
>{ ...{ ...{ c: 0, }, d: 0 }, e: 0 } : { c: number; d: number; e: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

...{
>{ ...{ c: 0, }, d: 0 } : { d: number; c: number; }
>{ ...{ c: 0, }, d: 0 } : { c: number; d: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^

...{
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^^^^^^^^^^^^^^^

const z = a ? { a } : { b: ["there"] };
>z : { a: string[]; b?: undefined; } | { b: string[]; a?: undefined; }
>z : { a: string[]; b?: undefined; } | { a?: undefined; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>a ? { a } : { b: ["there"] } : { a: string[]; } | { b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -34,7 +34,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^
>z.a : string[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
>z : { a: string[]; b?: undefined; } | { b: string[]; a?: undefined; }
>z : { a: string[]; b?: undefined; } | { a?: undefined; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>a : string[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
@@ -60,7 +60,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^
>z.b : string[]
> : ^^^^^^^^
>z : { b: string[]; a?: undefined; }
>z : { a?: undefined; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>b : string[]
> : ^^^^^^^^
@@ -82,7 +82,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^^^
>a : undefined
> : ^^^^^^^^^
>z : { a: string[]; b?: undefined; } | { b: string[]; a?: undefined; }
>z : { a: string[]; b?: undefined; } | { a?: undefined; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

zWorkAround.a ? zWorkAround.a.toString() : zWorkAround.b.toString();
@@ -126,15 +126,15 @@ export function main(a: string[] | undefined) {
> : ^^^^^^^
>"a" : "a"
> : ^^^
>z : { a: string[]; b?: undefined; } | { b: string[]; a?: undefined; }
>z : { a: string[]; b?: undefined; } | { a?: undefined; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>z.a.toString() : string
> : ^^^^^^
>z.a.toString : () => string
> : ^^^^^^
>z.a : string[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
>z : { a: string[]; b?: undefined; } | { b: string[]; a?: undefined; }
>z : { a: string[]; b?: undefined; } | { a?: undefined; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>a : string[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
@@ -146,7 +146,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^
>z.b : string[]
> : ^^^^^^^^
>z : { b: string[]; a?: undefined; }
>z : { a?: undefined; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>b : string[]
> : ^^^^^^^^
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^^^^^^^^^^^^^^^

const z = a ? { a } : { b: ["there"] };
>z : { a: string[]; b?: never; } | { b: string[]; a?: never; }
>z : { a: string[]; b?: never; } | { a?: never; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>a ? { a } : { b: ["there"] } : { a: string[]; } | { b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -34,7 +34,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^
>z.a : string[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
>z : { a: string[]; b?: never; } | { b: string[]; a?: never; }
>z : { a: string[]; b?: never; } | { a?: never; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>a : string[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
@@ -60,7 +60,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^
>z.b : string[]
> : ^^^^^^^^
>z : { b: string[]; a?: never; }
>z : { a?: never; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>b : string[]
> : ^^^^^^^^
@@ -82,7 +82,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^^^
>a : undefined
> : ^^^^^^^^^
>z : { a: string[]; b?: never; } | { b: string[]; a?: never; }
>z : { a: string[]; b?: never; } | { a?: never; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

zWorkAround.a ? zWorkAround.a.toString() : zWorkAround.b.toString();
@@ -126,15 +126,15 @@ export function main(a: string[] | undefined) {
> : ^^^^^^^
>"a" : "a"
> : ^^^
>z : { a: string[]; b?: never; } | { b: string[]; a?: never; }
>z : { a: string[]; b?: never; } | { a?: never; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>z.a.toString() : string
> : ^^^^^^
>z.a.toString : () => string
> : ^^^^^^
>z.a : string[]
> : ^^^^^^^^
>z : { a: string[]; b?: never; } | { b: string[]; a?: never; }
>z : { a: string[]; b?: never; } | { a?: never; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>a : string[]
> : ^^^^^^^^
@@ -146,7 +146,7 @@ export function main(a: string[] | undefined) {
> : ^^^^^^
>z.b : string[]
> : ^^^^^^^^
>z : { b: string[]; a?: never; }
>z : { a?: never; b: string[]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>b : string[]
> : ^^^^^^^^
4 changes: 2 additions & 2 deletions tests/baselines/reference/emitArrowFunctionES6.types
Original file line number Diff line number Diff line change
@@ -163,9 +163,9 @@ var p9 = ({ a: { b = 1 } = { b: 1 } }) => { };
> : ^

var p10 = ([{ value, done }]) => { };
>p10 : ([{ value, done }]: [{ value: any; done: any; }]) => void
>p10 : ([{ value, done }]: [{ done: any; value: any; }]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>([{ value, done }]) => { } : ([{ value, done }]: [{ value: any; done: any; }]) => void
>([{ value, done }]) => { } : ([{ value, done }]: [{ done: any; value: any; }]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>value : any
> : ^^^
Original file line number Diff line number Diff line change
@@ -122,17 +122,17 @@ export declare class FooItem {
export type Constructor<T> = new (...args: any[]) => T;
export declare function WithTags<T extends Constructor<FooItem>>(Base: T): {
new (...args: any[]): {
tags(): void;
foo(): void;
name?: string;
tags(): void;
};
getTags(): void;
} & T;
declare const Test_base: {
new (...args: any[]): {
tags(): void;
foo(): void;
name?: string;
tags(): void;
};
getTags(): void;
} & typeof FooItem;
Original file line number Diff line number Diff line change
@@ -61,14 +61,14 @@ export type Constructor<T> = new(...args: any[]) => T;
> : ^^^^^

export function WithTags<T extends Constructor<FooItem>>(Base: T) {
>WithTags : <T extends Constructor<FooItem>>(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithTags<any>.(Anonymous class); getTags(): void; } & T
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^
>WithTags : <T extends Constructor<FooItem>>(Base: T) => { new (...args: any[]): (Anonymous class); getTags(): void; prototype: WithTags<any>.(Anonymous class); } & T
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>Base : T
> : ^

return class extends Base {
>class extends Base { static getTags(): void { } tags(): void { } } : { new (...args: any[]): (Anonymous class); prototype: WithTags<any>.(Anonymous class); getTags(): void; } & T
> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^
>class extends Base { static getTags(): void { } tags(): void { } } : { new (...args: any[]): (Anonymous class); getTags(): void; prototype: WithTags<any>.(Anonymous class); } & T
> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>Base : FooItem
> : ^^^^^^^

@@ -87,8 +87,8 @@ export class Test extends WithTags(FooItem) {}
> : ^^^^
>WithTags(FooItem) : WithTags<typeof FooItem>.(Anonymous class) & FooItem
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>WithTags : <T extends Constructor<FooItem>>(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithTags<any>.(Anonymous class); getTags(): void; } & T
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^
>WithTags : <T extends Constructor<FooItem>>(Base: T) => { new (...args: any[]): (Anonymous class); getTags(): void; prototype: WithTags<any>.(Anonymous class); } & T
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>FooItem : typeof FooItem
> : ^^^^^^^^^^^^^^

Original file line number Diff line number Diff line change
@@ -57,14 +57,14 @@ export type Constructor<T> = new(...args: any[]) => T;
> : ^^^^^

export function WithTags<T extends Constructor<FooItem>>(Base: T) {
>WithTags : <T extends Constructor<FooItem>>(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithTags<any>.(Anonymous class); getTags(): void; } & T
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^
>WithTags : <T extends Constructor<FooItem>>(Base: T) => { new (...args: any[]): (Anonymous class); getTags(): void; prototype: WithTags<any>.(Anonymous class); } & T
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>Base : T
> : ^

return class extends Base {
>class extends Base { static getTags(): void { } tags(): void { } } : { new (...args: any[]): (Anonymous class); prototype: WithTags<any>.(Anonymous class); getTags(): void; } & T
> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^
>class extends Base { static getTags(): void { } tags(): void { } } : { new (...args: any[]): (Anonymous class); getTags(): void; prototype: WithTags<any>.(Anonymous class); } & T
> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>Base : FooItem
> : ^^^^^^^

@@ -83,8 +83,8 @@ export class Test extends WithTags(FooItem) {}
> : ^^^^
>WithTags(FooItem) : WithTags<typeof FooItem>.(Anonymous class) & FooItem
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>WithTags : <T extends Constructor<FooItem>>(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithTags<any>.(Anonymous class); getTags(): void; } & T
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^
>WithTags : <T extends Constructor<FooItem>>(Base: T) => { new (...args: any[]): (Anonymous class); getTags(): void; prototype: WithTags<any>.(Anonymous class); } & T
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>FooItem : typeof FooItem
> : ^^^^^^^^^^^^^^

12 changes: 6 additions & 6 deletions tests/baselines/reference/esModuleIntersectionCrash.types
Original file line number Diff line number Diff line change
@@ -26,22 +26,22 @@ declare namespace modObj {
}
=== idx.ts ===
import * as mod from "./mod";
>mod : { default: mod.A & mod.B; a: string; b: string; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>mod : { a: string; b: string; default: mod.A & mod.B; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^

mod.a;
>mod.a : string
> : ^^^^^^
>mod : { default: mod.A & mod.B; a: string; b: string; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>mod : { a: string; b: string; default: mod.A & mod.B; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>a : string
> : ^^^^^^

mod.b;
>mod.b : string
> : ^^^^^^
>mod : { default: mod.A & mod.B; a: string; b: string; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>mod : { a: string; b: string; default: mod.A & mod.B; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>b : string
> : ^^^^^^

Original file line number Diff line number Diff line change
@@ -116,9 +116,9 @@ declare namespace Foo {
var fromDoCondition: number;
var forInit: number;
var forCond: number;
var forIncr: number;
var fromForBody: number;
var fromForBodyNested: number;
var forIncr: number;
var forOf: any[];
var fromForOfBody: number;
var fromForOfBodyNested: number;

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions tests/baselines/reference/heterogeneousArrayLiterals.types
Original file line number Diff line number Diff line change
@@ -78,7 +78,7 @@ var g = [[1], ['']]; // {}[]
> : ^^

var h = [{ foo: 1, bar: '' }, { foo: 2 }]; // {foo: number}[]
>h : ({ foo: number; bar: string; } | { foo: number; bar?: undefined; })[]
>h : ({ foo: number; bar: string; } | { bar?: undefined; foo: number; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>[{ foo: 1, bar: '' }, { foo: 2 }] : ({ foo: number; bar: string; } | { foo: number; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -100,7 +100,7 @@ var h = [{ foo: 1, bar: '' }, { foo: 2 }]; // {foo: number}[]
> : ^

var i = [{ foo: 1, bar: '' }, { foo: '' }]; // {}[]
>i : ({ foo: number; bar: string; } | { foo: string; bar?: undefined; })[]
>i : ({ foo: number; bar: string; } | { bar?: undefined; foo: string; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>[{ foo: 1, bar: '' }, { foo: '' }] : ({ foo: number; bar: string; } | { foo: string; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -234,7 +234,7 @@ module Derived {
> : ^^^^^^^^^^^^^^

var h = [{ foo: base, basear: derived }, { foo: base }]; // {foo: Base}[]
>h : ({ foo: Base; basear: Derived; } | { foo: Base; basear?: undefined; })[]
>h : ({ foo: Base; basear: Derived; } | { basear?: undefined; foo: Base; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>[{ foo: base, basear: derived }, { foo: base }] : ({ foo: Base; basear: Derived; } | { foo: Base; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -256,7 +256,7 @@ module Derived {
> : ^^^^

var i = [{ foo: base, basear: derived }, { foo: derived }]; // {foo: Derived}[]
>i : ({ foo: Base; basear: Derived; } | { foo: Derived; basear?: undefined; })[]
>i : ({ foo: Base; basear: Derived; } | { basear?: undefined; foo: Derived; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>[{ foo: base, basear: derived }, { foo: derived }] : ({ foo: Base; basear: Derived; } | { foo: Derived; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 changes: 1 addition & 1 deletion tests/baselines/reference/ignoredJsxAttributes.types
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
implementingAnInterfaceExtendingClassWithPrivates.ts(9,7): error TS2420: Class 'Bar' incorrectly implements interface 'I'.
Type 'Bar' is missing the following properties from type 'I': y, x
Type 'Bar' is missing the following properties from type 'I': x, y
implementingAnInterfaceExtendingClassWithPrivates.ts(12,7): error TS2420: Class 'Bar2' incorrectly implements interface 'I'.
Property 'x' is missing in type 'Bar2' but required in type 'I'.
implementingAnInterfaceExtendingClassWithPrivates.ts(16,7): error TS2420: Class 'Bar3' incorrectly implements interface 'I'.
@@ -20,7 +20,7 @@ implementingAnInterfaceExtendingClassWithPrivates.ts(21,7): error TS2420: Class
class Bar implements I { // error
~~~
!!! error TS2420: Class 'Bar' incorrectly implements interface 'I'.
!!! error TS2420: Type 'Bar' is missing the following properties from type 'I': y, x
!!! error TS2420: Type 'Bar' is missing the following properties from type 'I': x, y
}

class Bar2 implements I { // error
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
implementingAnInterfaceExtendingClassWithProtecteds.ts(9,7): error TS2420: Class 'Bar' incorrectly implements interface 'I'.
Type 'Bar' is missing the following properties from type 'I': y, x
Type 'Bar' is missing the following properties from type 'I': x, y
implementingAnInterfaceExtendingClassWithProtecteds.ts(12,7): error TS2420: Class 'Bar2' incorrectly implements interface 'I'.
Property 'x' is missing in type 'Bar2' but required in type 'I'.
implementingAnInterfaceExtendingClassWithProtecteds.ts(16,7): error TS2420: Class 'Bar3' incorrectly implements interface 'I'.
@@ -24,7 +24,7 @@ implementingAnInterfaceExtendingClassWithProtecteds.ts(29,7): error TS2420: Clas
class Bar implements I { // error
~~~
!!! error TS2420: Class 'Bar' incorrectly implements interface 'I'.
!!! error TS2420: Type 'Bar' is missing the following properties from type 'I': y, x
!!! error TS2420: Type 'Bar' is missing the following properties from type 'I': x, y
}

class Bar2 implements I { // error
2 changes: 1 addition & 1 deletion tests/baselines/reference/incompatibleTypes.types
Original file line number Diff line number Diff line change
@@ -230,7 +230,7 @@ var o1: { a: { a: string; }; b: string; } = { e: 0, f: 0 };
> : ^

var a1 = [{ e: 0, f: 0 }, { e: 0, f: 0 }, { e: 0, g: 0 }];
>a1 : ({ e: number; f: number; g?: undefined; } | { e: number; g: number; f?: undefined; })[]
>a1 : ({ e: number; f: number; g?: undefined; } | { f?: undefined; e: number; g: number; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>[{ e: 0, f: 0 }, { e: 0, f: 0 }, { e: 0, g: 0 }] : ({ e: number; f: number; } | { e: number; g: number; })[]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Original file line number Diff line number Diff line change
@@ -104,9 +104,9 @@ const param2 = Math.random() < 0.5 ? 'value2' : null;
> : ^^^^^^^^

const obj = {
>obj : { param2?: string | undefined; param1: string; }
>obj : { param1: string; param2?: string | undefined; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>{ param1: 'value1', ...(param2 ? {param2} : {})} : { param2?: string | undefined; param1: string; }
>{ param1: 'value1', ...(param2 ? {param2} : {})} : { param1: string; param2?: string | undefined; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

param1: 'value1',
@@ -150,7 +150,7 @@ const query = Object.entries(obj).map(
> : ^^^^^^^^^^^^^^^^^
>entries : { <T>(o: { [s: string]: T; } | ArrayLike<T>): [string, T][]; (o: {}): [string, any][]; }
> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^
>obj : { param2?: string | undefined; param1: string; }
>obj : { param1: string; param2?: string | undefined; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>map : <U>(callbackfn: (value: [string, string], index: number, array: [string, string][]) => U, thisArg?: any) => U[]
> : ^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^
8 changes: 4 additions & 4 deletions tests/baselines/reference/instantiationExpressions.types
Original file line number Diff line number Diff line change
@@ -149,10 +149,10 @@ function f3() {
> : ^^^^^^^^^^

let c1 = C<string>; // { new (x: string): C<string>; f<U>(x: U): T[]; prototype: C<any>; }
>c1 : { new (x: string): C<string>; prototype: C<any>; f<U>(x: U): U[]; }
> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^
>C<string> : { new (x: string): C<string>; prototype: C<any>; f<U>(x: U): U[]; }
> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^
>c1 : { new (x: string): C<string>; f<U>(x: U): U[]; prototype: C<any>; }
> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^
>C<string> : { new (x: string): C<string>; f<U>(x: U): U[]; prototype: C<any>; }
> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^
>C : typeof C
> : ^^^^^^^^

1 change: 1 addition & 0 deletions tests/baselines/reference/intersectionsOfLargeUnions.types
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
//// [tests/cases/compiler/intersectionsOfLargeUnions.ts] ////

=== Performance Stats ===
Subtype cache: 1,000
Assignability cache: 1,000
Type Count: 2,500

Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
//// [tests/cases/compiler/intersectionsOfLargeUnions2.ts] ////

=== Performance Stats ===
Subtype cache: 1,000
Assignability cache: 1,000
Type Count: 2,500

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

4 changes: 2 additions & 2 deletions tests/baselines/reference/invalidReturnStatements.errors.txt
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ invalidReturnStatements.ts(2,17): error TS2355: A function whose declared type i
invalidReturnStatements.ts(3,17): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
invalidReturnStatements.ts(4,17): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
invalidReturnStatements.ts(5,17): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
invalidReturnStatements.ts(16,22): error TS2739: Type '{ id: number; }' is missing the following properties from type 'D': name, dispose
invalidReturnStatements.ts(16,22): error TS2739: Type '{ id: number; }' is missing the following properties from type 'D': dispose, name
invalidReturnStatements.ts(18,22): error TS2741: Property 'name' is missing in type 'C' but required in type 'D'.


@@ -32,7 +32,7 @@ invalidReturnStatements.ts(18,22): error TS2741: Property 'name' is missing in t
}
function fn10(): D { return { id: 12 }; }
~~~~~~
!!! error TS2739: Type '{ id: number; }' is missing the following properties from type 'D': name, dispose
!!! error TS2739: Type '{ id: number; }' is missing the following properties from type 'D': dispose, name

function fn11(): D { return new C(); }
~~~~~~
Original file line number Diff line number Diff line change
@@ -330,9 +330,9 @@ const part = { a: 1 };
> : ^

export const oWithSpread = {
>oWithSpread : { c: number; part: { a: number; }; a: number; b: number; }
>oWithSpread : { a: number; b: number; c: number; part: { a: number; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>{ b: 1, ...part, c: 1, part,} : { c: number; part: { a: number; }; a: number; b: number; }
>{ b: 1, ...part, c: 1, part,} : { a: number; b: number; c: number; part: { a: number; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

b: 1,
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
b.js(1,7): error TS2739: Type '{}' is missing the following properties from type 'typeof A': prototype, d
b.js(1,7): error TS2739: Type '{}' is missing the following properties from type 'typeof A': d, prototype


==== a.d.ts (0 errors) ====
declare class A {}
==== b.js (1 errors) ====
const A = { };
~
!!! error TS2739: Type '{}' is missing the following properties from type 'typeof A': prototype, d
!!! error TS2739: Type '{}' is missing the following properties from type 'typeof A': d, prototype
A.d = { };

4 changes: 2 additions & 2 deletions tests/baselines/reference/jsDeclarationsClassAccessor.js
Original file line number Diff line number Diff line change
@@ -78,12 +78,12 @@ export class Argument extends Base {
* @param {*} tokeniser
*/
static parse(tokeniser: any): void;
idlType: any;
default: null;
get type(): string;
/**
* @param {*} defs
*/
validate(defs: any): Generator<never, void, unknown>;
idlType: any;
default: null;
}
import { Base } from "./base.js";
32 changes: 16 additions & 16 deletions tests/baselines/reference/jsDeclarationsFunctionLikeClasses2.types
Original file line number Diff line number Diff line change
@@ -291,16 +291,16 @@ export function Point2D(x, y) {
}

Point2D.prototype = {
>Point2D.prototype = { __proto__: Vec, get x() { return this.storage[0]; }, /** * @param {number} x */ set x(x) { this.storage[0] = x; }, get y() { return this.storage[1]; }, /** * @param {number} y */ set y(y) { this.storage[1] = y; }} : { __proto__: typeof Vec; x: number; y: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>Point2D.prototype : { __proto__: typeof Vec; x: number; y: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>Point2D.prototype = { __proto__: Vec, get x() { return this.storage[0]; }, /** * @param {number} x */ set x(x) { this.storage[0] = x; }, get y() { return this.storage[1]; }, /** * @param {number} y */ set y(y) { this.storage[1] = y; }} : { x: number; y: number; __proto__: typeof Vec; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
>Point2D.prototype : { x: number; y: number; __proto__: typeof Vec; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
>Point2D : typeof Point2D
> : ^^^^^^^^^^^^^^
>prototype : { __proto__: typeof Vec; x: number; y: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>{ __proto__: Vec, get x() { return this.storage[0]; }, /** * @param {number} x */ set x(x) { this.storage[0] = x; }, get y() { return this.storage[1]; }, /** * @param {number} y */ set y(y) { this.storage[1] = y; }} : { __proto__: typeof Vec; x: number; y: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>prototype : { x: number; y: number; __proto__: typeof Vec; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
>{ __proto__: Vec, get x() { return this.storage[0]; }, /** * @param {number} x */ set x(x) { this.storage[0] = x; }, get y() { return this.storage[1]; }, /** * @param {number} y */ set y(y) { this.storage[1] = y; }} : { x: number; y: number; __proto__: typeof Vec; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^

__proto__: Vec,
>__proto__ : typeof Vec
@@ -315,8 +315,8 @@ Point2D.prototype = {
return this.storage[0];
>this.storage[0] : any
>this.storage : any
>this : { __proto__: typeof Vec; x: number; y: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>this : { x: number; y: number; __proto__: typeof Vec; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
>storage : any
> : ^^^
>0 : 0
@@ -337,8 +337,8 @@ Point2D.prototype = {
> : ^^^^^^
>this.storage[0] : any
>this.storage : any
>this : { __proto__: typeof Vec; x: number; y: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>this : { x: number; y: number; __proto__: typeof Vec; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
>storage : any
> : ^^^
>0 : 0
@@ -354,8 +354,8 @@ Point2D.prototype = {
return this.storage[1];
>this.storage[1] : any
>this.storage : any
>this : { __proto__: typeof Vec; x: number; y: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>this : { x: number; y: number; __proto__: typeof Vec; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
>storage : any
> : ^^^
>1 : 1
@@ -376,8 +376,8 @@ Point2D.prototype = {
> : ^^^^^^
>this.storage[1] : any
>this.storage : any
>this : { __proto__: typeof Vec; x: number; y: number; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^
>this : { x: number; y: number; __proto__: typeof Vec; }
> : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
>storage : any
> : ^^^
>1 : 1
2 changes: 1 addition & 1 deletion tests/baselines/reference/jsDeclarationsJson.js
Original file line number Diff line number Diff line change
@@ -40,9 +40,9 @@ declare const j: {
y: number;
err?: undefined;
} | {
y?: undefined;
x: number;
err: boolean;
y?: undefined;
})[];
};
};
14 changes: 7 additions & 7 deletions tests/baselines/reference/jsDeclarationsJson.types
Original file line number Diff line number Diff line change
@@ -2,24 +2,24 @@

=== index.js ===
const j = require("./obj.json");
>j : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { x: number; err: boolean; y?: undefined; })[]; }; }
>j : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { y?: undefined; x: number; err: boolean; })[]; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>require("./obj.json") : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { x: number; err: boolean; y?: undefined; })[]; }; }
>require("./obj.json") : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { y?: undefined; x: number; err: boolean; })[]; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>require : any
>"./obj.json" : "./obj.json"
> : ^^^^^^^^^^^^

module.exports = j;
>module.exports = j : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { x: number; err: boolean; y?: undefined; })[]; }; }
>module.exports = j : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { y?: undefined; x: number; err: boolean; })[]; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>module.exports : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { x: number; err: boolean; y?: undefined; })[]; }; }
>module.exports : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { y?: undefined; x: number; err: boolean; })[]; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>module : { exports: { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { x: number; err: boolean; y?: undefined; })[]; }; }; }
>module : { exports: { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { y?: undefined; x: number; err: boolean; })[]; }; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>exports : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { x: number; err: boolean; y?: undefined; })[]; }; }
>exports : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { y?: undefined; x: number; err: boolean; })[]; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>j : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { x: number; err: boolean; y?: undefined; })[]; }; }
>j : { x: number; y: number; obj: { items: ({ x: number; y?: undefined; err?: undefined; } | { x: number; y: number; err?: undefined; } | { y?: undefined; x: number; err: boolean; })[]; }; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

=== obj.json ===
Original file line number Diff line number Diff line change
@@ -17,8 +17,8 @@ export const ExampleFunctionalComponent = ({ "data-testid": dataTestId, [dynProp

//// [jsDeclarationsNonIdentifierInferredNames.d.ts]
export function ExampleFunctionalComponent({ "data-testid": dataTestId, [dynPropName]: dynProp }: {
"data-testid": any;
"data-dyn": any;
"data-testid": any;
}): JSX.Element;
declare const dynPropName: "data-dyn";
export {};
@@ -32,8 +32,8 @@ out/jsDeclarationsNonIdentifierInferredNames.d.ts(4,5): error TS2503: Cannot fin

==== out/jsDeclarationsNonIdentifierInferredNames.d.ts (1 errors) ====
export function ExampleFunctionalComponent({ "data-testid": dataTestId, [dynPropName]: dynProp }: {
"data-testid": any;
"data-dyn": any;
"data-testid": any;
}): JSX.Element;
~~~
!!! error TS2503: Cannot find namespace 'JSX'.
Original file line number Diff line number Diff line change
@@ -19,9 +19,9 @@ const dynPropName = "data-dyn";
> : ^^^^^^^^^^

export const ExampleFunctionalComponent = ({ "data-testid": dataTestId, [dynPropName]: dynProp }) => (
>ExampleFunctionalComponent : ({ "data-testid": dataTestId, [dynPropName]: dynProp }: { "data-testid": any; "data-dyn": any; }) => JSX.Element
>ExampleFunctionalComponent : ({ "data-testid": dataTestId, [dynPropName]: dynProp }: { "data-dyn": any; "data-testid": any; }) => JSX.Element
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>({ "data-testid": dataTestId, [dynPropName]: dynProp }) => ( <>Hello</>) : ({ "data-testid": dataTestId, [dynPropName]: dynProp }: { "data-testid": any; "data-dyn": any; }) => JSX.Element
>({ "data-testid": dataTestId, [dynPropName]: dynProp }) => ( <>Hello</>) : ({ "data-testid": dataTestId, [dynPropName]: dynProp }: { "data-dyn": any; "data-testid": any; }) => JSX.Element
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>dataTestId : any
> : ^^^
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

4 changes: 2 additions & 2 deletions tests/baselines/reference/jsdocTypeTagCast.errors.txt
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ b.js(4,20): error TS2352: Conversion of type 'number' to type 'string' may be a
b.js(45,23): error TS2352: Conversion of type 'SomeOther' to type 'SomeBase' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
Property 'p' is missing in type 'SomeOther' but required in type 'SomeBase'.
b.js(49,26): error TS2352: Conversion of type 'SomeOther' to type 'SomeDerived' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
Type 'SomeOther' is missing the following properties from type 'SomeDerived': x, p
Type 'SomeOther' is missing the following properties from type 'SomeDerived': p, x
b.js(51,24): error TS2352: Conversion of type 'SomeDerived' to type 'SomeOther' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
Property 'q' is missing in type 'SomeDerived' but required in type 'SomeOther'.
b.js(52,24): error TS2352: Conversion of type 'SomeBase' to type 'SomeOther' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
@@ -79,7 +79,7 @@ b.js(67,8): error TS2454: Variable 'numOrStr' is used before being assigned.
someDerived = /** @type {SomeDerived} */(someOther); // Error
~~~~~~~~~~~
!!! error TS2352: Conversion of type 'SomeOther' to type 'SomeDerived' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
!!! error TS2352: Type 'SomeOther' is missing the following properties from type 'SomeDerived': x, p
!!! error TS2352: Type 'SomeOther' is missing the following properties from type 'SomeDerived': p, x

someOther = /** @type {SomeOther} */(someDerived); // Error
~~~~~~~~~
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

2 changes: 1 addition & 1 deletion tests/baselines/reference/jsxElementType.types
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

2 changes: 1 addition & 1 deletion tests/baselines/reference/jsxElementTypeLiteral.types
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Type Count: 5,000
Instantiation count: 100,000
Symbol count: 50,000

Loading