(program, references, cancellationToken)
| 156885 | return getReferences(searchToken, program, cancellationToken); |
| 156886 | } |
| 156887 | function inferTypeFromReferences(program, references, cancellationToken) { |
| 156888 | var checker = program.getTypeChecker(); |
| 156889 | var builtinConstructors = { |
| 156890 | string: function () { return checker.getStringType(); }, |
| 156891 | number: function () { return checker.getNumberType(); }, |
| 156892 | Array: function (t) { return checker.createArrayType(t); }, |
| 156893 | Promise: function (t) { return checker.createPromiseType(t); }, |
| 156894 | }; |
| 156895 | var builtins = [ |
| 156896 | checker.getStringType(), |
| 156897 | checker.getNumberType(), |
| 156898 | checker.createArrayType(checker.getAnyType()), |
| 156899 | checker.createPromiseType(checker.getAnyType()), |
| 156900 | ]; |
| 156901 | return { |
| 156902 | single: single, |
| 156903 | parameters: parameters, |
| 156904 | thisParameter: thisParameter, |
| 156905 | }; |
| 156906 | function createEmptyUsage() { |
| 156907 | return { |
| 156908 | isNumber: undefined, |
| 156909 | isString: undefined, |
| 156910 | isNumberOrString: undefined, |
| 156911 | candidateTypes: undefined, |
| 156912 | properties: undefined, |
| 156913 | calls: undefined, |
| 156914 | constructs: undefined, |
| 156915 | numberIndex: undefined, |
| 156916 | stringIndex: undefined, |
| 156917 | candidateThisTypes: undefined, |
| 156918 | inferredTypes: undefined, |
| 156919 | }; |
| 156920 | } |
| 156921 | function combineUsages(usages) { |
| 156922 | var combinedProperties = new ts.Map(); |
| 156923 | for (var _i = 0, usages_1 = usages; _i < usages_1.length; _i++) { |
| 156924 | var u = usages_1[_i]; |
| 156925 | if (u.properties) { |
| 156926 | u.properties.forEach(function (p, name) { |
| 156927 | if (!combinedProperties.has(name)) { |
| 156928 | combinedProperties.set(name, []); |
| 156929 | } |
| 156930 | combinedProperties.get(name).push(p); |
| 156931 | }); |
| 156932 | } |
| 156933 | } |
| 156934 | var properties = new ts.Map(); |
| 156935 | combinedProperties.forEach(function (ps, name) { |
| 156936 | properties.set(name, combineUsages(ps)); |
| 156937 | }); |
| 156938 | return { |
| 156939 | isNumber: usages.some(function (u) { return u.isNumber; }), |
| 156940 | isString: usages.some(function (u) { return u.isString; }), |
| 156941 | isNumberOrString: usages.some(function (u) { return u.isNumberOrString; }), |
| 156942 | candidateTypes: ts.flatMap(usages, function (u) { return u.candidateTypes; }), |
| 156943 | properties: properties, |
| 156944 | calls: ts.flatMap(usages, function (u) { return u.calls; }), |
no outgoing calls
no test coverage detected
searching dependent graphs…