diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 8fa3c4fce2a4a..8759c15eb5815 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -17746,7 +17746,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const readonly = isReadonlyTypeOperator(node.parent); const elementType = getArrayElementTypeNode(node); if (elementType) { - return readonly ? globalReadonlyArrayType : globalArrayType; + return (readonly ? globalReadonlyArrayType : globalArrayType) || emptyGenericType; } const elementFlags = map((node as TupleTypeNode).elements, getTupleElementFlags); return getTupleTargetType(elementFlags, readonly, map((node as TupleTypeNode).elements, memberIfLabeledElementDeclaration)); diff --git a/tests/baselines/reference/bug57009.errors.txt b/tests/baselines/reference/bug57009.errors.txt new file mode 100644 index 0000000000000..3679365d15851 --- /dev/null +++ b/tests/baselines/reference/bug57009.errors.txt @@ -0,0 +1,25 @@ +error TS2317: Global type 'Array' must have 1 type parameter(s). +error TS2318: Cannot find global type 'Boolean'. +error TS2318: Cannot find global type 'CallableFunction'. +error TS2318: Cannot find global type 'Function'. +error TS2318: Cannot find global type 'IArguments'. +error TS2318: Cannot find global type 'NewableFunction'. +error TS2318: Cannot find global type 'Number'. +error TS2318: Cannot find global type 'Object'. +error TS2318: Cannot find global type 'RegExp'. +error TS2318: Cannot find global type 'String'. + + +!!! error TS2317: Global type 'Array' must have 1 type parameter(s). +!!! error TS2318: Cannot find global type 'Boolean'. +!!! error TS2318: Cannot find global type 'CallableFunction'. +!!! error TS2318: Cannot find global type 'Function'. +!!! error TS2318: Cannot find global type 'IArguments'. +!!! error TS2318: Cannot find global type 'NewableFunction'. +!!! error TS2318: Cannot find global type 'Number'. +!!! error TS2318: Cannot find global type 'Object'. +!!! error TS2318: Cannot find global type 'RegExp'. +!!! error TS2318: Cannot find global type 'String'. +==== bug57009.ts (0 errors) ==== + type Array = T[]; + \ No newline at end of file diff --git a/tests/baselines/reference/bug57009.js b/tests/baselines/reference/bug57009.js new file mode 100644 index 0000000000000..86f38d094a454 --- /dev/null +++ b/tests/baselines/reference/bug57009.js @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/bug57009.ts] //// + +//// [bug57009.ts] +type Array = T[]; + + +//// [bug57009.js] +"use strict"; diff --git a/tests/baselines/reference/bug57009.symbols b/tests/baselines/reference/bug57009.symbols new file mode 100644 index 0000000000000..da6987a9eb904 --- /dev/null +++ b/tests/baselines/reference/bug57009.symbols @@ -0,0 +1,8 @@ +//// [tests/cases/compiler/bug57009.ts] //// + +=== bug57009.ts === +type Array = T[]; +>Array : Symbol(Array, Decl(bug57009.ts, 0, 0)) +>T : Symbol(T, Decl(bug57009.ts, 0, 11)) +>T : Symbol(T, Decl(bug57009.ts, 0, 11)) + diff --git a/tests/baselines/reference/bug57009.types b/tests/baselines/reference/bug57009.types new file mode 100644 index 0000000000000..27fdf51e9f3af --- /dev/null +++ b/tests/baselines/reference/bug57009.types @@ -0,0 +1,7 @@ +//// [tests/cases/compiler/bug57009.ts] //// + +=== bug57009.ts === +type Array = T[]; +>Array : {} +> : ^^ + diff --git a/tests/cases/compiler/bug57009.ts b/tests/cases/compiler/bug57009.ts new file mode 100644 index 0000000000000..51bbd20fb4507 --- /dev/null +++ b/tests/cases/compiler/bug57009.ts @@ -0,0 +1,3 @@ +// @noLib: true + +type Array = T[];