MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / findRefsToProperty

Function findRefsToProperty

lib/web/tern/tern.js:1052–1079  ·  view source on GitHub ↗
(srv, query, sourceFile, expr, prop)

Source from the content-addressed store, hash-verified

1050 }
1051
1052 function findRefsToProperty(srv, query, sourceFile, expr, prop) {
1053 var exprType = infer.expressionType(expr);
1054 if (expr.node.type == "MethodDefinition") {
1055 exprType = exprType.propertyOf;
1056 }
1057 var objType = exprType.getObjType();
1058 if (!objType) throw ternError("Couldn't determine type of base object.");
1059
1060 var refs = [];
1061 function storeRef(file) {
1062 return function(node) {
1063 refs.push({file: file.name,
1064 start: outputPos(query, file, node.start),
1065 end: outputPos(query, file, node.end)});
1066 };
1067 }
1068
1069 if (query.onlySourceFile) {
1070 infer.findPropRefs(sourceFile.ast, sourceFile.scope, objType, prop.name, storeRef(sourceFile));
1071 } else {
1072 for (var i = 0; i < srv.files.length; ++i) {
1073 var cur = srv.files[i];
1074 infer.findPropRefs(cur.ast, cur.scope, objType, prop.name, storeRef(cur));
1075 }
1076 }
1077
1078 return {refs: refs, name: prop.name};
1079 }
1080
1081 function findRefs(srv, query, file) {
1082 var expr = findExprOrThrow(file, query, true);

Callers 1

findRefsFunction · 0.85

Calls 2

ternErrorFunction · 0.85
storeRefFunction · 0.85

Tested by

no test coverage detected