demo/typescript.js
function getResolvedSignature(node, candidatesOutArray) {
            var links = getNodeLinks(node);
            // If getResolvedSignature has already been called, we will have cached the resolvedSignature.
            // However, it is possible that either candidatesOutArray was not passed in the first time,
            // or that a different candidatesOutArray was passed in. Therefore, we need to redo the work
            // to correctly fill the candidatesOutArray.
            if (!links.resolvedSignature || candidatesOutArray) {
                links.resolvedSignature = anySignature;
                if (node.kind === 168 /* CallExpression */) {
                    links.resolvedSignature = resolveCallExpression(node, candidatesOutArray);
                }
                else if (node.kind === 169 /* NewExpression */) {
                    links.resolvedSignature = resolveNewExpression(node, candidatesOutArray);
                }
                else if (node.kind === 170 /* TaggedTemplateExpression */) {
                    links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray);
                }
                else if (node.kind === 139 /* Decorator */) {
                    links.resolvedSignature = resolveDecorator(node, candidatesOutArray);
                }
                else {
                    ts.Debug.fail("Branch in 'getResolvedSignature' should be unreachable.");
                }
            }
            return links.resolvedSignature;
        }
function getResolvedSignature(node, candidatesOutArray) {
            var links = getNodeLinks(node);
            // If getResolvedSignature has already been called, we will have cached the resolvedSignature.
            // However, it is possible that either candidatesOutArray was not passed in the first time,
            // or that a different candidatesOutArray was passed in. Therefore, we need to redo the work
            // to correctly fill the candidatesOutArray.
            if (!links.resolvedSignature || candidatesOutArray) {
                links.resolvedSignature = anySignature;
                if (node.kind === 168 /* CallExpression */) {
                    links.resolvedSignature = resolveCallExpression(node, candidatesOutArray);
                }
                else if (node.kind === 169 /* NewExpression */) {
                    links.resolvedSignature = resolveNewExpression(node, candidatesOutArray);
                }
                else if (node.kind === 170 /* TaggedTemplateExpression */) {
                    links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray);
                }
                else if (node.kind === 139 /* Decorator */) {
                    links.resolvedSignature = resolveDecorator(node, candidatesOutArray);
                }
                else {
                    ts.Debug.fail("Branch in 'getResolvedSignature' should be unreachable.");
                }
            }
            return links.resolvedSignature;
        }
function getResolvedSignature ( node , candidatesOutArray ) { var links = getNodeLinks ( node ) ; // If getResolvedSignature has already been called, we will have cached the resolvedSignature. // However, it is possible that either candidatesOutArray was not passed in the first time, // or that a different candidatesOutArray was passed in. Therefore, we need to redo the work // to correctly fill the candidatesOutArray. if ( ! links . resolvedSignature || candidatesOutArray ) { links . resolvedSignature = anySignature ; if ( node . kind === 168 /* CallExpression */ ) { links . resolvedSignature = resolveCallExpression ( node , candidatesOutArray ) ; } else if ( node . kind === 169 /* NewExpression */ ) { links . resolvedSignature = resolveNewExpression ( node , candidatesOutArray ) ; } else if ( node . kind === 170 /* TaggedTemplateExpression */ ) { links . resolvedSignature = resolveTaggedTemplateExpression ( node , candidatesOutArray ) ; } else if ( node . kind === 139 /* Decorator */ ) { links . resolvedSignature = resolveDecorator ( node , candidatesOutArray ) ; } else { ts . Debug . fail ( "Branch in 'getResolvedSignature' should be unreachable." ) ; } } return links . resolvedSignature ; }
candidatesOutArray is passed by signature help in the language service, and collectCandidates must fill it up with the appropriate candidate signatures
candidatesOutArray is passed by signature help in the language service and collectCandidates must fill it up with the appropriate candidate signatures