MCPcopy Index your code
hub / github.com/ternjs/tern / findExprType

Function findExprType

lib/tern.js:894–922  ·  view source on GitHub ↗
(srv, query, file, expr)

Source from the content-addressed store, hash-verified

892 }
893
894 function findExprType(srv, query, file, expr) {
895 var type;
896 if (expr) {
897 infer.resetGuessing();
898 type = infer.expressionType(expr);
899 }
900 var typeHandlers = srv.hasHandler("typeAt");
901 if (typeHandlers) {
902 var pos = resolvePos(file, query.end);
903 for (var i = 0; i < typeHandlers.length; i++)
904 type = typeHandlers[i](file, pos, expr, type);
905 }
906 if (!type) throw ternError("No type found at the given position.");
907
908 var objProp;
909 if (expr.node.type == "ObjectExpression" && query.end != null &&
910 (objProp = pointInProp(expr.node, resolvePos(file, query.end)))) {
911 var name = objProp.key.name;
912 var fromCx = ensureObj(infer.typeFromContext(file.ast, expr));
913 if (fromCx && fromCx.hasProp(name)) {
914 type = fromCx.hasProp(name);
915 } else {
916 var fromLocal = ensureObj(type);
917 if (fromLocal && fromLocal.hasProp(name))
918 type = fromLocal.hasProp(name);
919 }
920 }
921 return type;
922 }
923
924 function findTypeAtExpr(srv, query, file, expr) {
925 var exprName, exprType;

Callers 3

findTypeAtExprFunction · 0.85
findDocsFunction · 0.85
findDefFunction · 0.85

Calls 3

ternErrorFunction · 0.85
pointInPropFunction · 0.85
ensureObjFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…