From e9cb12aeab1241a520164221999d0916500df9f3 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Fri, 6 Mar 2015 14:29:23 -0800 Subject: [PATCH] Add diagnostics for signaturehelp crash --- src/services/signatureHelp.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index 8b7dea13ead..e5ddb9012cc 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -264,12 +264,16 @@ module ts.SignatureHelp { // the comma. That amounts to taking the ceiling of half the index. var argumentIndex = (listItemInfo.listItemIndex + 1) >> 1; + var argumentCount = getCommaBasedArgCount(list); + + Debug.assert(argumentIndex < argumentCount, `argumentCount < argumentIndex, ${argumentCount} < ${argumentIndex}`); + return { kind: isTypeArgList ? ArgumentListKind.TypeArguments : ArgumentListKind.CallArguments, invocation: callExpression, argumentsSpan: getApplicableSpanForArguments(list), argumentIndex: argumentIndex, - argumentCount: getCommaBasedArgCount(list) + argumentCount: argumentCount }; } } @@ -347,6 +351,8 @@ module ts.SignatureHelp { ? 1 : (tagExpression.template).templateSpans.length + 1; + Debug.assert(argumentIndex < argumentCount, `argumentCount < argumentIndex, ${argumentCount} < ${argumentIndex}`); + return { kind: ArgumentListKind.TaggedTemplateArguments, invocation: tagExpression, @@ -512,6 +518,8 @@ module ts.SignatureHelp { selectedItemIndex = selectBestInvalidOverloadIndex(candidates, argumentCount); } + Debug.assert(argumentIndex < argumentCount, `argumentCount < argumentIndex, ${argumentCount} < ${argumentIndex}`); + return { items, applicableSpan,