diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 99071469dec4b..83d90529be88a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -34609,7 +34609,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { function getNonArrayRestType(signature: Signature) { const restType = getEffectiveRestType(signature); - return restType && !isArrayType(restType) && !isTypeAny(restType) && (getReducedType(restType).flags & TypeFlags.Never) === 0 ? restType : undefined; + return restType && !isArrayType(restType) && !isTypeAny(restType) ? restType : undefined; } function getTypeOfFirstParameterOfSignature(signature: Signature) { diff --git a/tests/baselines/reference/topFunctionTypeNotCallable.errors.txt b/tests/baselines/reference/topFunctionTypeNotCallable.errors.txt new file mode 100644 index 0000000000000..5ad93310ed474 --- /dev/null +++ b/tests/baselines/reference/topFunctionTypeNotCallable.errors.txt @@ -0,0 +1,11 @@ +tests/cases/compiler/topFunctionTypeNotCallable.ts(4,1): error TS2345: Argument of type '[]' is not assignable to parameter of type 'never'. + + +==== tests/cases/compiler/topFunctionTypeNotCallable.ts (1 errors) ==== + // repro from #48840 + + declare let foo: (...args: never) => void; + foo(); // error + ~~~~~ +!!! error TS2345: Argument of type '[]' is not assignable to parameter of type 'never'. + \ No newline at end of file diff --git a/tests/baselines/reference/topFunctionTypeNotCallable.symbols b/tests/baselines/reference/topFunctionTypeNotCallable.symbols new file mode 100644 index 0000000000000..a146f43382a8d --- /dev/null +++ b/tests/baselines/reference/topFunctionTypeNotCallable.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/topFunctionTypeNotCallable.ts === +// repro from #48840 + +declare let foo: (...args: never) => void; +>foo : Symbol(foo, Decl(topFunctionTypeNotCallable.ts, 2, 11)) +>args : Symbol(args, Decl(topFunctionTypeNotCallable.ts, 2, 18)) + +foo(); // error +>foo : Symbol(foo, Decl(topFunctionTypeNotCallable.ts, 2, 11)) + diff --git a/tests/baselines/reference/topFunctionTypeNotCallable.types b/tests/baselines/reference/topFunctionTypeNotCallable.types new file mode 100644 index 0000000000000..18c59cbcf325e --- /dev/null +++ b/tests/baselines/reference/topFunctionTypeNotCallable.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/topFunctionTypeNotCallable.ts === +// repro from #48840 + +declare let foo: (...args: never) => void; +>foo : (...args: never) => void +>args : never + +foo(); // error +>foo() : void +>foo : (...args: never) => void + diff --git a/tests/cases/compiler/topFunctionTypeNotCallable.ts b/tests/cases/compiler/topFunctionTypeNotCallable.ts new file mode 100644 index 0000000000000..4bca3e878990c --- /dev/null +++ b/tests/cases/compiler/topFunctionTypeNotCallable.ts @@ -0,0 +1,7 @@ +// @strict: true +// @noEmit: true + +// repro from #48840 + +declare let foo: (...args: never) => void; +foo(); // error