From b9abd955beb63d1966cda2b7c089f82fc8927269 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 15 Mar 2023 18:50:26 -0700 Subject: [PATCH 1/3] Run test with higher lib --- .../baselines/reference/inferringAnyFunctionType1.js | 3 ++- .../reference/inferringAnyFunctionType1.types | 12 ++++++------ tests/cases/compiler/inferringAnyFunctionType1.ts | 4 +++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/tests/baselines/reference/inferringAnyFunctionType1.js b/tests/baselines/reference/inferringAnyFunctionType1.js index 6b48cf2db5846..f4b598ceefd0f 100644 --- a/tests/baselines/reference/inferringAnyFunctionType1.js +++ b/tests/baselines/reference/inferringAnyFunctionType1.js @@ -3,7 +3,8 @@ function f number }>(p: T): T { return p; } -var v = f([x => x]); +var v = f([x => x]); + //// [inferringAnyFunctionType1.js] function f(p) { diff --git a/tests/baselines/reference/inferringAnyFunctionType1.types b/tests/baselines/reference/inferringAnyFunctionType1.types index 8f56d4a549a90..08fd67d526948 100644 --- a/tests/baselines/reference/inferringAnyFunctionType1.types +++ b/tests/baselines/reference/inferringAnyFunctionType1.types @@ -10,11 +10,11 @@ function f number }>(p: T): T { } var v = f([x => x]); ->v : [(x: number) => number] ->f([x => x]) : [(x: number) => number] +>v : [(x: any) => any] +>f([x => x]) : [(x: any) => any] >f : number; }>(p: T) => T ->[x => x] : [(x: number) => number] ->x => x : (x: number) => number ->x : number ->x : number +>[x => x] : [(x: any) => any] +>x => x : (x: any) => any +>x : any +>x : any diff --git a/tests/cases/compiler/inferringAnyFunctionType1.ts b/tests/cases/compiler/inferringAnyFunctionType1.ts index bc1e6f6897339..97418219380bc 100644 --- a/tests/cases/compiler/inferringAnyFunctionType1.ts +++ b/tests/cases/compiler/inferringAnyFunctionType1.ts @@ -1,5 +1,7 @@ +// @lib: es2015 + function f number }>(p: T): T { return p; } -var v = f([x => x]); \ No newline at end of file +var v = f([x => x]); From c7386ea707a5f5d04bcaa61c303f3cebb9ef4083 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 15 Mar 2023 18:50:29 -0700 Subject: [PATCH 2/3] Revert "Filter out non-array types when contextually typing array literal elements (#52589)" This reverts commit e7753831e938008ad332f8f7299dd7891340837b. --- src/compiler/checker.ts | 21 ++++++++++++------- ...refersArrayUnionMemberLibEs2015.errors.txt | 18 ++++++++++++++++ ...mentPrefersArrayUnionMemberLibEs2015.types | 8 +++---- ...ntPrefersArrayUnionMemberLibEs5.errors.txt | 18 ++++++++++++++++ ...ElementPrefersArrayUnionMemberLibEs5.types | 8 +++---- .../reference/inferringAnyFunctionType1.types | 12 +++++------ 6 files changed, 63 insertions(+), 22 deletions(-) create mode 100644 tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.errors.txt create mode 100644 tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.errors.txt diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 29d5e7901aafb..e4f2b0e6da905 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -19592,8 +19592,18 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { return result; } const moreThanOneRealChildren = length(validChildren) > 1; - const arrayLikeTargetParts = filterType(childrenTargetType, isAssignableToAvailableAnyIterable); - const nonArrayLikeTargetParts = filterType(childrenTargetType, t => !isAssignableToAvailableAnyIterable(t)); + let arrayLikeTargetParts: Type; + let nonArrayLikeTargetParts: Type; + const iterableType = getGlobalIterableType(/*reportErrors*/ false); + if (iterableType !== emptyGenericType) { + const anyIterable = createIterableType(anyType); + arrayLikeTargetParts = filterType(childrenTargetType, t => isTypeAssignableTo(t, anyIterable)); + nonArrayLikeTargetParts = filterType(childrenTargetType, t => !isTypeAssignableTo(t, anyIterable)); + } + else { + arrayLikeTargetParts = filterType(childrenTargetType, isArrayOrTupleLikeType); + nonArrayLikeTargetParts = filterType(childrenTargetType, t => !isArrayOrTupleLikeType(t)); + } if (moreThanOneRealChildren) { if (arrayLikeTargetParts !== neverType) { const realSource = createTupleType(checkJsxChildren(containingElement, CheckMode.Normal)); @@ -23116,11 +23126,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { return isArrayLikeType(type) || isTupleLikeType(type); } - function isAssignableToAvailableAnyIterable(type: Type): boolean { - const anyIterable = getGlobalIterableType(/*reportErrors*/ false) !== emptyGenericType && createIterableType(anyType); - return anyIterable ? isTypeAssignableTo(type, anyIterable) : isArrayOrTupleLikeType(type); - } - function getTupleElementType(type: Type, index: number) { const propType = getTypeOfPropertyOfType(type, "" + index as __String); if (propType) { @@ -29080,7 +29085,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // type of T. function getContextualTypeForElementExpression(arrayContextualType: Type | undefined, index: number): Type | undefined { return arrayContextualType && ( - index >= 0 && getTypeOfPropertyOfContextualType(filterType(arrayContextualType, t => !!getIndexTypeOfType(t, numberType) || isAssignableToAvailableAnyIterable(t)), "" + index as __String) || + index >= 0 && getTypeOfPropertyOfContextualType(arrayContextualType, "" + index as __String) || mapType(arrayContextualType, t => isTupleType(t) ? getElementTypeOfSliceOfTupleType(t, 0, /*endSkipCount*/ 0, /*writing*/ false, /*noReductions*/ true) : diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.errors.txt b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.errors.txt new file mode 100644 index 0000000000000..d6ee14f7b0f6c --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.errors.txt @@ -0,0 +1,18 @@ +tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts(8,4): error TS7006: Parameter 'arg' implicitly has an 'any' type. + + +==== tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts (1 errors) ==== + // repro from #52588 + + declare function test( + arg: Record void> | Array<(arg: number) => void> + ): void; + + test([ + (arg) => { + ~~~ +!!! error TS7006: Parameter 'arg' implicitly has an 'any' type. + arg; // number + }, + ]); + \ No newline at end of file diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.types b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.types index c7c6d9c096f61..b4044554af8cf 100644 --- a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.types +++ b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.types @@ -14,14 +14,14 @@ declare function test( test([ >test([ (arg) => { arg; // number },]) : void >test : (arg: Record void> | ((arg: number) => void)[]) => void ->[ (arg) => { arg; // number },] : ((arg: number) => void)[] +>[ (arg) => { arg; // number },] : ((arg: any) => void)[] (arg) => { ->(arg) => { arg; // number } : (arg: number) => void ->arg : number +>(arg) => { arg; // number } : (arg: any) => void +>arg : any arg; // number ->arg : number +>arg : any }, ]); diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.errors.txt b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.errors.txt new file mode 100644 index 0000000000000..76f299a99fb83 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.errors.txt @@ -0,0 +1,18 @@ +tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts(8,4): error TS7006: Parameter 'arg' implicitly has an 'any' type. + + +==== tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts (1 errors) ==== + // repro from #52588 + + declare function test( + arg: Record void> | Array<(arg: number) => void> + ): void; + + test([ + (arg) => { + ~~~ +!!! error TS7006: Parameter 'arg' implicitly has an 'any' type. + arg; // number + }, + ]); + \ No newline at end of file diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.types b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.types index 04c1ea69a2789..eb7725bd600d2 100644 --- a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.types +++ b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.types @@ -14,14 +14,14 @@ declare function test( test([ >test([ (arg) => { arg; // number },]) : void >test : (arg: Record void> | ((arg: number) => void)[]) => void ->[ (arg) => { arg; // number },] : ((arg: number) => void)[] +>[ (arg) => { arg; // number },] : ((arg: any) => void)[] (arg) => { ->(arg) => { arg; // number } : (arg: number) => void ->arg : number +>(arg) => { arg; // number } : (arg: any) => void +>arg : any arg; // number ->arg : number +>arg : any }, ]); diff --git a/tests/baselines/reference/inferringAnyFunctionType1.types b/tests/baselines/reference/inferringAnyFunctionType1.types index 08fd67d526948..8f56d4a549a90 100644 --- a/tests/baselines/reference/inferringAnyFunctionType1.types +++ b/tests/baselines/reference/inferringAnyFunctionType1.types @@ -10,11 +10,11 @@ function f number }>(p: T): T { } var v = f([x => x]); ->v : [(x: any) => any] ->f([x => x]) : [(x: any) => any] +>v : [(x: number) => number] +>f([x => x]) : [(x: number) => number] >f : number; }>(p: T) => T ->[x => x] : [(x: any) => any] ->x => x : (x: any) => any ->x : any ->x : any +>[x => x] : [(x: number) => number] +>x => x : (x: number) => number +>x : number +>x : number From fe00b42f06bea612f6fd0cd931527ff018ddf19c Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 16 Mar 2023 09:20:05 -0700 Subject: [PATCH 3/3] Rename and relink --- ...ignatureInArrayElementLibEs2015.errors.txt | 18 +++++++++++++ ...alSignatureInArrayElementLibEs2015.symbols | 27 +++++++++++++++++++ ...ualSignatureInArrayElementLibEs2015.types} | 4 +-- ...alSignatureInArrayElementLibEs5.errors.txt | 18 +++++++++++++ ...xtualSignatureInArrayElementLibEs5.symbols | 27 +++++++++++++++++++ ...extualSignatureInArrayElementLibEs5.types} | 4 +-- ...refersArrayUnionMemberLibEs2015.errors.txt | 18 ------------- ...ntPrefersArrayUnionMemberLibEs2015.symbols | 27 ------------------- ...ntPrefersArrayUnionMemberLibEs5.errors.txt | 18 ------------- ...ementPrefersArrayUnionMemberLibEs5.symbols | 27 ------------------- ...extualSignatureInArrayElementLibEs2015.ts} | 2 +- ...ontextualSignatureInArrayElementLibEs5.ts} | 2 +- 12 files changed, 96 insertions(+), 96 deletions(-) create mode 100644 tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.errors.txt create mode 100644 tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.symbols rename tests/baselines/reference/{contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.types => contextualSignatureInArrayElementLibEs2015.types} (77%) create mode 100644 tests/baselines/reference/contextualSignatureInArrayElementLibEs5.errors.txt create mode 100644 tests/baselines/reference/contextualSignatureInArrayElementLibEs5.symbols rename tests/baselines/reference/{contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.types => contextualSignatureInArrayElementLibEs5.types} (77%) delete mode 100644 tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.errors.txt delete mode 100644 tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.symbols delete mode 100644 tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.errors.txt delete mode 100644 tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.symbols rename tests/cases/compiler/{contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts => contextualSignatureInArrayElementLibEs2015.ts} (71%) rename tests/cases/compiler/{contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts => contextualSignatureInArrayElementLibEs5.ts} (71%) diff --git a/tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.errors.txt b/tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.errors.txt new file mode 100644 index 0000000000000..06b0810c67d3f --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.errors.txt @@ -0,0 +1,18 @@ +tests/cases/compiler/contextualSignatureInArrayElementLibEs2015.ts(8,4): error TS7006: Parameter 'arg' implicitly has an 'any' type. + + +==== tests/cases/compiler/contextualSignatureInArrayElementLibEs2015.ts (1 errors) ==== + // See: https://github.com/microsoft/TypeScript/pull/53280#discussion_r1138684984 + + declare function test( + arg: Record void> | Array<(arg: number) => void> + ): void; + + test([ + (arg) => { + ~~~ +!!! error TS7006: Parameter 'arg' implicitly has an 'any' type. + arg; // number + }, + ]); + \ No newline at end of file diff --git a/tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.symbols b/tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.symbols new file mode 100644 index 0000000000000..6a113aadabfd5 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/contextualSignatureInArrayElementLibEs2015.ts === +// See: https://github.com/microsoft/TypeScript/pull/53280#discussion_r1138684984 + +declare function test( +>test : Symbol(test, Decl(contextualSignatureInArrayElementLibEs2015.ts, 0, 0)) + + arg: Record void> | Array<(arg: number) => void> +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs2015.ts, 2, 22)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs2015.ts, 3, 23)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs2015.ts, 3, 54)) + +): void; + +test([ +>test : Symbol(test, Decl(contextualSignatureInArrayElementLibEs2015.ts, 0, 0)) + + (arg) => { +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs2015.ts, 7, 3)) + + arg; // number +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs2015.ts, 7, 3)) + + }, +]); + diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.types b/tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.types similarity index 77% rename from tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.types rename to tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.types index eb7725bd600d2..e6e1945c5536e 100644 --- a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.types +++ b/tests/baselines/reference/contextualSignatureInArrayElementLibEs2015.types @@ -1,5 +1,5 @@ -=== tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts === -// repro from #52588 +=== tests/cases/compiler/contextualSignatureInArrayElementLibEs2015.ts === +// See: https://github.com/microsoft/TypeScript/pull/53280#discussion_r1138684984 declare function test( >test : (arg: Record void> | ((arg: number) => void)[]) => void diff --git a/tests/baselines/reference/contextualSignatureInArrayElementLibEs5.errors.txt b/tests/baselines/reference/contextualSignatureInArrayElementLibEs5.errors.txt new file mode 100644 index 0000000000000..a6dd4373f48d7 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInArrayElementLibEs5.errors.txt @@ -0,0 +1,18 @@ +tests/cases/compiler/contextualSignatureInArrayElementLibEs5.ts(8,4): error TS7006: Parameter 'arg' implicitly has an 'any' type. + + +==== tests/cases/compiler/contextualSignatureInArrayElementLibEs5.ts (1 errors) ==== + // See: https://github.com/microsoft/TypeScript/pull/53280#discussion_r1138684984 + + declare function test( + arg: Record void> | Array<(arg: number) => void> + ): void; + + test([ + (arg) => { + ~~~ +!!! error TS7006: Parameter 'arg' implicitly has an 'any' type. + arg; // number + }, + ]); + \ No newline at end of file diff --git a/tests/baselines/reference/contextualSignatureInArrayElementLibEs5.symbols b/tests/baselines/reference/contextualSignatureInArrayElementLibEs5.symbols new file mode 100644 index 0000000000000..ae547f9d0e234 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInArrayElementLibEs5.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/contextualSignatureInArrayElementLibEs5.ts === +// See: https://github.com/microsoft/TypeScript/pull/53280#discussion_r1138684984 + +declare function test( +>test : Symbol(test, Decl(contextualSignatureInArrayElementLibEs5.ts, 0, 0)) + + arg: Record void> | Array<(arg: number) => void> +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs5.ts, 2, 22)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs5.ts, 3, 23)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs5.ts, 3, 54)) + +): void; + +test([ +>test : Symbol(test, Decl(contextualSignatureInArrayElementLibEs5.ts, 0, 0)) + + (arg) => { +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs5.ts, 7, 3)) + + arg; // number +>arg : Symbol(arg, Decl(contextualSignatureInArrayElementLibEs5.ts, 7, 3)) + + }, +]); + diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.types b/tests/baselines/reference/contextualSignatureInArrayElementLibEs5.types similarity index 77% rename from tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.types rename to tests/baselines/reference/contextualSignatureInArrayElementLibEs5.types index b4044554af8cf..482e25396852b 100644 --- a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.types +++ b/tests/baselines/reference/contextualSignatureInArrayElementLibEs5.types @@ -1,5 +1,5 @@ -=== tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts === -// repro from #52588 +=== tests/cases/compiler/contextualSignatureInArrayElementLibEs5.ts === +// See: https://github.com/microsoft/TypeScript/pull/53280#discussion_r1138684984 declare function test( >test : (arg: Record void> | ((arg: number) => void)[]) => void diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.errors.txt b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.errors.txt deleted file mode 100644 index d6ee14f7b0f6c..0000000000000 --- a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.errors.txt +++ /dev/null @@ -1,18 +0,0 @@ -tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts(8,4): error TS7006: Parameter 'arg' implicitly has an 'any' type. - - -==== tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts (1 errors) ==== - // repro from #52588 - - declare function test( - arg: Record void> | Array<(arg: number) => void> - ): void; - - test([ - (arg) => { - ~~~ -!!! error TS7006: Parameter 'arg' implicitly has an 'any' type. - arg; // number - }, - ]); - \ No newline at end of file diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.symbols b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.symbols deleted file mode 100644 index b0ff34c16170b..0000000000000 --- a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.symbols +++ /dev/null @@ -1,27 +0,0 @@ -=== tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts === -// repro from #52588 - -declare function test( ->test : Symbol(test, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts, 0, 0)) - - arg: Record void> | Array<(arg: number) => void> ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts, 2, 22)) ->Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts, 3, 23)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts, 3, 54)) - -): void; - -test([ ->test : Symbol(test, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts, 0, 0)) - - (arg) => { ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts, 7, 3)) - - arg; // number ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts, 7, 3)) - - }, -]); - diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.errors.txt b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.errors.txt deleted file mode 100644 index 76f299a99fb83..0000000000000 --- a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.errors.txt +++ /dev/null @@ -1,18 +0,0 @@ -tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts(8,4): error TS7006: Parameter 'arg' implicitly has an 'any' type. - - -==== tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts (1 errors) ==== - // repro from #52588 - - declare function test( - arg: Record void> | Array<(arg: number) => void> - ): void; - - test([ - (arg) => { - ~~~ -!!! error TS7006: Parameter 'arg' implicitly has an 'any' type. - arg; // number - }, - ]); - \ No newline at end of file diff --git a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.symbols b/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.symbols deleted file mode 100644 index cb803d9186e96..0000000000000 --- a/tests/baselines/reference/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.symbols +++ /dev/null @@ -1,27 +0,0 @@ -=== tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts === -// repro from #52588 - -declare function test( ->test : Symbol(test, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts, 0, 0)) - - arg: Record void> | Array<(arg: number) => void> ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts, 2, 22)) ->Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts, 3, 23)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts, 3, 54)) - -): void; - -test([ ->test : Symbol(test, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts, 0, 0)) - - (arg) => { ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts, 7, 3)) - - arg; // number ->arg : Symbol(arg, Decl(contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts, 7, 3)) - - }, -]); - diff --git a/tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts b/tests/cases/compiler/contextualSignatureInArrayElementLibEs2015.ts similarity index 71% rename from tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts rename to tests/cases/compiler/contextualSignatureInArrayElementLibEs2015.ts index ff53d21e895ba..2da7b748ba3b2 100644 --- a/tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs2015.ts +++ b/tests/cases/compiler/contextualSignatureInArrayElementLibEs2015.ts @@ -2,7 +2,7 @@ // @noEmit: true // @lib: es2015 -// repro from #52588 +// See: https://github.com/microsoft/TypeScript/pull/53280#discussion_r1138684984 declare function test( arg: Record void> | Array<(arg: number) => void> diff --git a/tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts b/tests/cases/compiler/contextualSignatureInArrayElementLibEs5.ts similarity index 71% rename from tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts rename to tests/cases/compiler/contextualSignatureInArrayElementLibEs5.ts index 340bd7690578c..0608fc5b89926 100644 --- a/tests/cases/compiler/contextualSignatureInArrayElementPrefersArrayUnionMemberLibEs5.ts +++ b/tests/cases/compiler/contextualSignatureInArrayElementLibEs5.ts @@ -2,7 +2,7 @@ // @noEmit: true // @lib: es5 -// repro from #52588 +// See: https://github.com/microsoft/TypeScript/pull/53280#discussion_r1138684984 declare function test( arg: Record void> | Array<(arg: number) => void>