(signature, typeArgumentNodes, reportErrors, headMessage)
| 75585 | return createTupleType(types, flags, /*readonly*/ false, ts.length(names) === ts.length(types) ? names : undefined); |
| 75586 | } |
| 75587 | function checkTypeArguments(signature, typeArgumentNodes, reportErrors, headMessage) { |
| 75588 | var isJavascript = ts.isInJSFile(signature.declaration); |
| 75589 | var typeParameters = signature.typeParameters; |
| 75590 | var typeArgumentTypes = fillMissingTypeArguments(ts.map(typeArgumentNodes, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), isJavascript); |
| 75591 | var mapper; |
| 75592 | for (var i = 0; i < typeArgumentNodes.length; i++) { |
| 75593 | ts.Debug.assert(typeParameters[i] !== undefined, "Should not call checkTypeArguments with too many type arguments"); |
| 75594 | var constraint = getConstraintOfTypeParameter(typeParameters[i]); |
| 75595 | if (constraint) { |
| 75596 | var errorInfo = reportErrors && headMessage ? (function () { return ts.chainDiagnosticMessages(/*details*/ undefined, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1); }) : undefined; |
| 75597 | var typeArgumentHeadMessage = headMessage || ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1; |
| 75598 | if (!mapper) { |
| 75599 | mapper = createTypeMapper(typeParameters, typeArgumentTypes); |
| 75600 | } |
| 75601 | var typeArgument = typeArgumentTypes[i]; |
| 75602 | if (!checkTypeAssignableTo(typeArgument, getTypeWithThisArgument(instantiateType(constraint, mapper), typeArgument), reportErrors ? typeArgumentNodes[i] : undefined, typeArgumentHeadMessage, errorInfo)) { |
| 75603 | return undefined; |
| 75604 | } |
| 75605 | } |
| 75606 | } |
| 75607 | return typeArgumentTypes; |
| 75608 | } |
| 75609 | function getJsxReferenceKind(node) { |
| 75610 | if (isJsxIntrinsicIdentifier(node.tagName)) { |
| 75611 | return 2 /* JsxReferenceKind.Mixed */; |
no test coverage detected
searching dependent graphs…