(type)
| 52883 | return typeLiteralNode; |
| 52884 | } |
| 52885 | function typeReferenceToTypeNode(type) { |
| 52886 | var typeArguments = getTypeArguments(type); |
| 52887 | if (type.target === globalArrayType || type.target === globalReadonlyArrayType) { |
| 52888 | if (context.flags & 2 /* NodeBuilderFlags.WriteArrayAsGenericType */) { |
| 52889 | var typeArgumentNode = typeToTypeNodeHelper(typeArguments[0], context); |
| 52890 | return ts.factory.createTypeReferenceNode(type.target === globalArrayType ? "Array" : "ReadonlyArray", [typeArgumentNode]); |
| 52891 | } |
| 52892 | var elementType = typeToTypeNodeHelper(typeArguments[0], context); |
| 52893 | var arrayType = ts.factory.createArrayTypeNode(elementType); |
| 52894 | return type.target === globalArrayType ? arrayType : ts.factory.createTypeOperatorNode(145 /* SyntaxKind.ReadonlyKeyword */, arrayType); |
| 52895 | } |
| 52896 | else if (type.target.objectFlags & 8 /* ObjectFlags.Tuple */) { |
| 52897 | typeArguments = ts.sameMap(typeArguments, function (t, i) { return removeMissingType(t, !!(type.target.elementFlags[i] & 2 /* ElementFlags.Optional */)); }); |
| 52898 | if (typeArguments.length > 0) { |
| 52899 | var arity = getTypeReferenceArity(type); |
| 52900 | var tupleConstituentNodes = mapToTypeNodes(typeArguments.slice(0, arity), context); |
| 52901 | if (tupleConstituentNodes) { |
| 52902 | if (type.target.labeledElementDeclarations) { |
| 52903 | for (var i = 0; i < tupleConstituentNodes.length; i++) { |
| 52904 | var flags = type.target.elementFlags[i]; |
| 52905 | tupleConstituentNodes[i] = ts.factory.createNamedTupleMember(flags & 12 /* ElementFlags.Variable */ ? ts.factory.createToken(25 /* SyntaxKind.DotDotDotToken */) : undefined, ts.factory.createIdentifier(ts.unescapeLeadingUnderscores(getTupleElementLabel(type.target.labeledElementDeclarations[i]))), flags & 2 /* ElementFlags.Optional */ ? ts.factory.createToken(57 /* SyntaxKind.QuestionToken */) : undefined, flags & 4 /* ElementFlags.Rest */ ? ts.factory.createArrayTypeNode(tupleConstituentNodes[i]) : |
| 52906 | tupleConstituentNodes[i]); |
| 52907 | } |
| 52908 | } |
| 52909 | else { |
| 52910 | for (var i = 0; i < Math.min(arity, tupleConstituentNodes.length); i++) { |
| 52911 | var flags = type.target.elementFlags[i]; |
| 52912 | tupleConstituentNodes[i] = |
| 52913 | flags & 12 /* ElementFlags.Variable */ ? ts.factory.createRestTypeNode(flags & 4 /* ElementFlags.Rest */ ? ts.factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]) : |
| 52914 | flags & 2 /* ElementFlags.Optional */ ? ts.factory.createOptionalTypeNode(tupleConstituentNodes[i]) : |
| 52915 | tupleConstituentNodes[i]; |
| 52916 | } |
| 52917 | } |
| 52918 | var tupleTypeNode = ts.setEmitFlags(ts.factory.createTupleTypeNode(tupleConstituentNodes), 1 /* EmitFlags.SingleLine */); |
| 52919 | return type.target.readonly ? ts.factory.createTypeOperatorNode(145 /* SyntaxKind.ReadonlyKeyword */, tupleTypeNode) : tupleTypeNode; |
| 52920 | } |
| 52921 | } |
| 52922 | if (context.encounteredError || (context.flags & 524288 /* NodeBuilderFlags.AllowEmptyTuple */)) { |
| 52923 | var tupleTypeNode = ts.setEmitFlags(ts.factory.createTupleTypeNode([]), 1 /* EmitFlags.SingleLine */); |
| 52924 | return type.target.readonly ? ts.factory.createTypeOperatorNode(145 /* SyntaxKind.ReadonlyKeyword */, tupleTypeNode) : tupleTypeNode; |
| 52925 | } |
| 52926 | context.encounteredError = true; |
| 52927 | return undefined; // TODO: GH#18217 |
| 52928 | } |
| 52929 | else if (context.flags & 2048 /* NodeBuilderFlags.WriteClassExpressionAsTypeLiteral */ && |
| 52930 | type.symbol.valueDeclaration && |
| 52931 | ts.isClassLike(type.symbol.valueDeclaration) && |
| 52932 | !isValueSymbolAccessible(type.symbol, context.enclosingDeclaration)) { |
| 52933 | return createAnonymousTypeNode(type); |
| 52934 | } |
| 52935 | else { |
| 52936 | var outerTypeParameters = type.target.outerTypeParameters; |
| 52937 | var i = 0; |
| 52938 | var resultType = void 0; |
| 52939 | if (outerTypeParameters) { |
| 52940 | var length_2 = outerTypeParameters.length; |
| 52941 | while (i < length_2) { |
| 52942 | // Find group of type arguments for type parameters with the same declaring container. |
no test coverage detected
searching dependent graphs…