Skip to content

Commit

Permalink
UPDATE LKG
Browse files Browse the repository at this point in the history
  • Loading branch information
fdecampredon committed Feb 6, 2015
1 parent fdad812 commit 80a88e2
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 6 deletions.
14 changes: 12 additions & 2 deletions bin/tsc.js
Original file line number Diff line number Diff line change
Expand Up @@ -12027,7 +12027,8 @@ var ts;
});
return getSignatureInstantiation(signature, getInferredTypes(context));
}
function inferTypeArguments(signature, args, excludeArgument) {
function inferTypeArguments(signature, args, excludeArgument, isJSXElement) {
if (isJSXElement === void 0) { isJSXElement = false; }
var typeParameters = signature.typeParameters;
var context = createInferenceContext(typeParameters, false);
var mapper = createInferenceMapper(context);
Expand All @@ -12041,6 +12042,9 @@ var ts;
inferTypes(context, globalTemplateStringsArrayType, parameterType);
continue;
}
if (i > 0 && isJSXElement) {
break;
}
inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType);
}
}
Expand All @@ -12053,6 +12057,9 @@ var ts;
var parameterType = getTypeAtPosition(signature, i);
inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType);
}
if (i > 0 && isJSXElement) {
break;
}
}
}
var inferredTypes = getInferredTypes(context);
Expand Down Expand Up @@ -12192,6 +12199,9 @@ var ts;
error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target);
}
if (!produceDiagnostics) {
if (isJSXElement && candidateForArgumentError) {
return candidateForArgumentError;
}
for (var i = 0, n = candidates.length; i < n; i++) {
if (hasCorrectArity(node, args, candidates[i])) {
return candidates[i];
Expand All @@ -12216,7 +12226,7 @@ var ts;
typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false);
}
else {
inferenceResult = inferTypeArguments(candidate, args, excludeArgument);
inferenceResult = inferTypeArguments(candidate, args, excludeArgument, isJSXElement);
typeArgumentsAreValid = inferenceResult.failedTypeParameterIndex < 0;
typeArgumentTypes = inferenceResult.inferredTypes;
}
Expand Down
21 changes: 17 additions & 4 deletions bin/typescriptServices.js
Original file line number Diff line number Diff line change
Expand Up @@ -12645,7 +12645,8 @@ var ts;
});
return getSignatureInstantiation(signature, getInferredTypes(context));
}
function inferTypeArguments(signature, args, excludeArgument) {
function inferTypeArguments(signature, args, excludeArgument, isJSXElement) {
if (isJSXElement === void 0) { isJSXElement = false; }
var typeParameters = signature.typeParameters;
var context = createInferenceContext(typeParameters, false);
var mapper = createInferenceMapper(context);
Expand All @@ -12659,6 +12660,9 @@ var ts;
inferTypes(context, globalTemplateStringsArrayType, parameterType);
continue;
}
if (i > 0 && isJSXElement) {
break;
}
inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType);
}
}
Expand All @@ -12671,6 +12675,9 @@ var ts;
var parameterType = getTypeAtPosition(signature, i);
inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType);
}
if (i > 0 && isJSXElement) {
break;
}
}
}
var inferredTypes = getInferredTypes(context);
Expand Down Expand Up @@ -12810,6 +12817,9 @@ var ts;
error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target);
}
if (!produceDiagnostics) {
if (isJSXElement && candidateForArgumentError) {
return candidateForArgumentError;
}
for (var i = 0, n = candidates.length; i < n; i++) {
if (hasCorrectArity(node, args, candidates[i])) {
return candidates[i];
Expand All @@ -12834,7 +12844,7 @@ var ts;
typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false);
}
else {
inferenceResult = inferTypeArguments(candidate, args, excludeArgument);
inferenceResult = inferTypeArguments(candidate, args, excludeArgument, isJSXElement);
typeArgumentsAreValid = inferenceResult.failedTypeParameterIndex < 0;
typeArgumentTypes = inferenceResult.inferredTypes;
}
Expand Down Expand Up @@ -26112,12 +26122,15 @@ var ts;
var parent = previousToken.parent;
switch (previousToken.kind) {
case 66 /* Identifier */:
while (parent && parent.kind === 123 /* QualifiedName */ || parent.kind === 203 /* JSXTag */) {
while (parent && (parent.kind === 123 /* QualifiedName */ || parent.kind === 205 /* JSXAttribute */ || parent.kind === 203 /* JSXTag */)) {
parent = parent.parent;
}
break;
case 8 /* StringLiteral */:
case 16 /* CloseBraceToken */:
if (parent && parent.kind === 206 /* JSXExpression */) {
parent = parent.parent;
}
case 8 /* StringLiteral */:
if (parent && parent.kind === 205 /* JSXAttribute */) {
parent = parent.parent;
}
Expand Down

0 comments on commit 80a88e2

Please sign in to comment.