gitnexus 1.6.10-rc.44 → 1.6.10-rc.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_shared/index.d.ts +1 -0
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/scope-resolution/callable-flow-site.d.ts +110 -0
- package/dist/_shared/scope-resolution/callable-flow-site.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js.map +1 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts +7 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +9 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +1 -1
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1 -1
- package/dist/core/ingestion/emit-references.js +4 -0
- package/dist/core/ingestion/languages/c/captures.js +56 -0
- package/dist/core/ingestion/languages/c/query.js +17 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +6 -0
- package/dist/core/ingestion/languages/cobol/captures.js +93 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +7 -0
- package/dist/core/ingestion/languages/cpp/captures.js +208 -1
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +14 -0
- package/dist/core/ingestion/languages/csharp/captures.js +25 -0
- package/dist/core/ingestion/languages/dart/captures.js +41 -0
- package/dist/core/ingestion/languages/go/captures.js +34 -0
- package/dist/core/ingestion/languages/java/captures.js +20 -0
- package/dist/core/ingestion/languages/javascript/captures.js +16 -0
- package/dist/core/ingestion/languages/javascript/query.js +14 -0
- package/dist/core/ingestion/languages/kotlin/captures.js +37 -0
- package/dist/core/ingestion/languages/php/captures.js +40 -0
- package/dist/core/ingestion/languages/python/captures.js +19 -0
- package/dist/core/ingestion/languages/ruby/captures.js +42 -0
- package/dist/core/ingestion/languages/rust/captures.js +13 -0
- package/dist/core/ingestion/languages/swift/captures.js +12 -0
- package/dist/core/ingestion/languages/typescript/captures.js +21 -0
- package/dist/core/ingestion/languages/typescript/query.js +20 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +2 -1
- package/dist/core/ingestion/resolve-references.js +12 -0
- package/dist/core/ingestion/scope-extractor.js +299 -40
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +28 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.d.ts +7 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +8 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +3 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +6 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +1 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +3 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +7 -2
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +47 -0
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +1138 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +7 -4
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +2 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +60 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +111 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +4 -3
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +10 -22
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +6 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +141 -34
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +94 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +878 -0
- package/dist/storage/parse-cache.js +1 -1
- package/dist/storage/parsedfile-store.js +153 -1
- package/dist/storage/repo-manager.d.ts +6 -1
- package/dist/storage/repo-manager.js +6 -1
- package/package.json +1 -1
package/dist/_shared/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export { resolveTypeRef } from './scope-resolution/resolve-type-ref.js';
|
|
|
22
22
|
export type { ResolveTypeRefContext } from './scope-resolution/resolve-type-ref.js';
|
|
23
23
|
export type { ParsedFile } from './scope-resolution/parsed-file.js';
|
|
24
24
|
export type { ReferenceSite, ReferenceKind, CallForm } from './scope-resolution/reference-site.js';
|
|
25
|
+
export type { CallableFlowOperand, CallableFlowExpectedSignature, CallableFlowPassingMode, CallableFlowInvocationKind, CallableFlowSeedSite, CallableFlowCopySite, CallableFlowAliasSite, CallableFlowAddressSite, CallableFlowStoreSite, CallableFlowLoadSite, CallableFlowFormalSite, CallableFlowArgumentSite, CallableFlowInvokeSite, CallableFlowSite, } from './scope-resolution/callable-flow-site.js';
|
|
25
26
|
export { buildMethodDispatchIndex } from './scope-resolution/method-dispatch-index.js';
|
|
26
27
|
export type { MethodDispatchIndex, MethodDispatchInput, } from './scope-resolution/method-dispatch-index.js';
|
|
27
28
|
export { finalize } from './scope-resolution/finalize-algorithm.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIrE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACpG,YAAY,EACV,OAAO,EACP,KAAK,EACL,SAAS,EACT,KAAK,EACL,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,GACZ,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAG5F,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,YAAY,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAKrF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAGpF,YAAY,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIrE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACpG,YAAY,EACV,OAAO,EACP,KAAK,EACL,SAAS,EACT,KAAK,EACL,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,GACZ,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAG5F,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,YAAY,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAKrF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAGpF,YAAY,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACnG,YAAY,EACV,mBAAmB,EACnB,6BAA6B,EAC7B,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AACpE,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,GACd,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,YAAY,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,YAAY,EACV,cAAc,EACd,mBAAmB,GACpB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,YAAY,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,YAAY,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACpF,YAAY,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACpG,YAAY,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EACL,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,0CAA0C,CAAC;AAClD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,GAClB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,cAAc,EACd,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAM1E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACjG,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG/E,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAiCjC,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,yDAAyD;AACzD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAGrF,gEAAgE;AAChE,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAiCjC,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,yDAAyD;AACzD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAGrF,gEAAgE;AAChE,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAuBxE,oFAAoF;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAMvF,uEAAuE;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAUpE,sEAAsE;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAKvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAKrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEpG,OAAO,EACL,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,0CAA0C,CAAC;AAUlD,2EAA2E;AAC3E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAErF,OAAO,EACL,cAAc,EACd,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,8EAA8E;AAC9E,wEAAwE;AACxE,wEAAwE;AACxE,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEjG,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAG3C,mDAAmD;AACnD,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Always-on callable-value-flow facts produced during scope extraction.
|
|
3
|
+
*
|
|
4
|
+
* These records deliberately contain no parser nodes or provider-private
|
|
5
|
+
* objects: they cross the worker, disk-cache, and ParsedFile-store boundaries.
|
|
6
|
+
* Language providers recognize syntax and emit `@callable-flow.*` captures;
|
|
7
|
+
* the central extractor attaches lexical scope ids and materializes this
|
|
8
|
+
* language-neutral representation.
|
|
9
|
+
*/
|
|
10
|
+
import type { ParameterTypeClass } from './symbol-definition.js';
|
|
11
|
+
import type { Range, ScopeId } from './types.js';
|
|
12
|
+
/** A lexical binding or abstract indirection cell used by a flow fact. */
|
|
13
|
+
export interface CallableFlowOperand {
|
|
14
|
+
/** Provider-normalized lexical binding name. */
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly inScope: ScopeId;
|
|
17
|
+
readonly atRange: Range;
|
|
18
|
+
/** Number of dereference operators applied at this occurrence. */
|
|
19
|
+
readonly indirection: number;
|
|
20
|
+
/** Whether this occurrence explicitly takes the binding's address. */
|
|
21
|
+
readonly addressOf: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Provider-normalized expression role. `binding` is the conservative
|
|
24
|
+
* default; the other variants prove the occurrence denotes a callable
|
|
25
|
+
* designator rather than a value produced by an expression.
|
|
26
|
+
*/
|
|
27
|
+
readonly expressionKind?: 'binding' | 'callable-designator' | 'bound-member' | 'anonymous-callable';
|
|
28
|
+
/** Qualified spelling retained for receiver/member-aware lookup. */
|
|
29
|
+
readonly qualifiedName?: string;
|
|
30
|
+
}
|
|
31
|
+
/** Callable shape used to disambiguate overload sets when syntax supplies it. */
|
|
32
|
+
export interface CallableFlowExpectedSignature {
|
|
33
|
+
readonly parameterCount?: number;
|
|
34
|
+
readonly parameterTypes?: readonly string[];
|
|
35
|
+
readonly parameterTypeClasses?: readonly ParameterTypeClass[];
|
|
36
|
+
/** C++ member-function cv qualifier when the declarator supplies it. */
|
|
37
|
+
readonly isConst?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export type CallableFlowPassingMode = 'value' | 'reference' | 'pointer';
|
|
40
|
+
export interface CallableFlowSeedSite {
|
|
41
|
+
readonly kind: 'seed';
|
|
42
|
+
readonly destination: CallableFlowOperand;
|
|
43
|
+
/** Simple callable name used for lexical lookup. */
|
|
44
|
+
readonly targetName: string;
|
|
45
|
+
/** Optional provider-normalized qualified spelling (for example `Base.method`). */
|
|
46
|
+
readonly targetQualifiedName?: string;
|
|
47
|
+
readonly targetRange: Range;
|
|
48
|
+
readonly expectedSignature?: CallableFlowExpectedSignature;
|
|
49
|
+
}
|
|
50
|
+
export interface CallableFlowCopySite {
|
|
51
|
+
readonly kind: 'copy';
|
|
52
|
+
readonly source: CallableFlowOperand;
|
|
53
|
+
readonly destination: CallableFlowOperand;
|
|
54
|
+
}
|
|
55
|
+
/** True identity (for example a C++ reference), modelled bidirectionally. */
|
|
56
|
+
export interface CallableFlowAliasSite {
|
|
57
|
+
readonly kind: 'alias';
|
|
58
|
+
readonly source: CallableFlowOperand;
|
|
59
|
+
readonly destination: CallableFlowOperand;
|
|
60
|
+
}
|
|
61
|
+
/** `destination` receives the abstract address of `source`. */
|
|
62
|
+
export interface CallableFlowAddressSite {
|
|
63
|
+
readonly kind: 'address';
|
|
64
|
+
readonly source: CallableFlowOperand;
|
|
65
|
+
readonly destination: CallableFlowOperand;
|
|
66
|
+
}
|
|
67
|
+
/** Targets in `source` flow into every abstract cell reached by `pointer`. */
|
|
68
|
+
export interface CallableFlowStoreSite {
|
|
69
|
+
readonly kind: 'store';
|
|
70
|
+
readonly source: CallableFlowOperand;
|
|
71
|
+
readonly pointer: CallableFlowOperand;
|
|
72
|
+
}
|
|
73
|
+
/** Targets in every abstract cell reached by `pointer` flow into `destination`. */
|
|
74
|
+
export interface CallableFlowLoadSite {
|
|
75
|
+
readonly kind: 'load';
|
|
76
|
+
readonly pointer: CallableFlowOperand;
|
|
77
|
+
readonly destination: CallableFlowOperand;
|
|
78
|
+
}
|
|
79
|
+
/** Maps a callable definition's parameter position to its lexical binding. */
|
|
80
|
+
export interface CallableFlowFormalSite {
|
|
81
|
+
readonly kind: 'formal';
|
|
82
|
+
readonly ownerName: string;
|
|
83
|
+
readonly ownerRange: Range;
|
|
84
|
+
readonly parameterIndex: number;
|
|
85
|
+
readonly binding: CallableFlowOperand;
|
|
86
|
+
readonly passingMode: CallableFlowPassingMode;
|
|
87
|
+
readonly expectedSignature?: CallableFlowExpectedSignature;
|
|
88
|
+
}
|
|
89
|
+
/** Maps one real call-site argument position to its source operand. */
|
|
90
|
+
export interface CallableFlowArgumentSite {
|
|
91
|
+
readonly kind: 'argument';
|
|
92
|
+
readonly callSite: Range;
|
|
93
|
+
readonly parameterIndex: number;
|
|
94
|
+
readonly source: CallableFlowOperand;
|
|
95
|
+
/** Direct callee spelling used when an earlier resolver already emitted the edge. */
|
|
96
|
+
readonly directCalleeName?: string;
|
|
97
|
+
}
|
|
98
|
+
export type CallableFlowInvocationKind = 'indirect' | 'member-pointer' | 'callable-object';
|
|
99
|
+
/** A syntactically indirect invocation owned by callable-value-flow. */
|
|
100
|
+
export interface CallableFlowInvokeSite {
|
|
101
|
+
readonly kind: 'invoke';
|
|
102
|
+
readonly callSite: Range;
|
|
103
|
+
readonly inScope: ScopeId;
|
|
104
|
+
readonly callee: CallableFlowOperand;
|
|
105
|
+
readonly receiver?: CallableFlowOperand;
|
|
106
|
+
readonly invocationKind: CallableFlowInvocationKind;
|
|
107
|
+
readonly arity?: number;
|
|
108
|
+
}
|
|
109
|
+
export type CallableFlowSite = CallableFlowSeedSite | CallableFlowCopySite | CallableFlowAliasSite | CallableFlowAddressSite | CallableFlowStoreSite | CallableFlowLoadSite | CallableFlowFormalSite | CallableFlowArgumentSite | CallableFlowInvokeSite;
|
|
110
|
+
//# sourceMappingURL=callable-flow-site.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callable-flow-site.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/callable-flow-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjD,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EACpB,SAAS,GACT,qBAAqB,GACrB,cAAc,GACd,oBAAoB,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,iFAAiF;AACjF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9D,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAOD,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mFAAmF;IACnF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;CAC5D;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C;AAED,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C;AAED,8EAA8E;AAC9E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AAED,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C;AAED,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;CAC5D;AAED,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAE3F,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GACxB,oBAAoB,GACpB,oBAAoB,GACpB,qBAAqB,GACrB,uBAAuB,GACvB,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,GACtB,wBAAwB,GACxB,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Always-on callable-value-flow facts produced during scope extraction.
|
|
3
|
+
*
|
|
4
|
+
* These records deliberately contain no parser nodes or provider-private
|
|
5
|
+
* objects: they cross the worker, disk-cache, and ParsedFile-store boundaries.
|
|
6
|
+
* Language providers recognize syntax and emit `@callable-flow.*` captures;
|
|
7
|
+
* the central extractor attaches lexical scope ids and materializes this
|
|
8
|
+
* language-neutral representation.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=callable-flow-site.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callable-flow-site.js","sourceRoot":"","sources":["../../src/scope-resolution/callable-flow-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -54,6 +54,7 @@ import type { Scope, ScopeId } from './types.js';
|
|
|
54
54
|
import type { ParsedImport } from './types.js';
|
|
55
55
|
import type { SymbolDefinition } from './symbol-definition.js';
|
|
56
56
|
import type { ReferenceSite } from './reference-site.js';
|
|
57
|
+
import type { CallableFlowSite } from './callable-flow-site.js';
|
|
57
58
|
export interface ParsedFile {
|
|
58
59
|
readonly filePath: string;
|
|
59
60
|
/** `Scope.id` of the file's root `Module` scope. */
|
|
@@ -72,6 +73,12 @@ export interface ParsedFile {
|
|
|
72
73
|
*/
|
|
73
74
|
readonly localDefs: readonly SymbolDefinition[];
|
|
74
75
|
readonly referenceSites: readonly ReferenceSite[];
|
|
76
|
+
/**
|
|
77
|
+
* Compact, always-on facts for calls through assigned/passed callable
|
|
78
|
+
* values. Optional so hand-built fixtures and providers with no relevant
|
|
79
|
+
* syntax remain source-compatible; consumers normalize absence to `[]`.
|
|
80
|
+
*/
|
|
81
|
+
readonly callableFlowSites?: readonly CallableFlowSite[];
|
|
75
82
|
/**
|
|
76
83
|
* Opaque, language-private serialization of capture-time side-channel
|
|
77
84
|
* state that a provider's `emitScopeCaptures` populates into module-level
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsed-file.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/parsed-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"parsed-file.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/parsed-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACzD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC"}
|
|
@@ -29,7 +29,7 @@ import type { Range, ScopeId } from './types.js';
|
|
|
29
29
|
* Matches the `kind` field on `Reference` in `./types.ts` so the
|
|
30
30
|
* resolution phase can pass it through without re-classification.
|
|
31
31
|
*/
|
|
32
|
-
export type ReferenceKind = 'call' | 'read' | 'write' | 'type-reference' | 'inherits' | 'import-use' | 'macro';
|
|
32
|
+
export type ReferenceKind = 'call' | 'read' | 'write' | 'type-reference' | 'inherits' | 'import-use' | 'value-ref' | 'macro';
|
|
33
33
|
/**
|
|
34
34
|
* How a call site binds its target. Informs `Registry.lookup` Step 2
|
|
35
35
|
* (type-binding path):
|
|
@@ -76,6 +76,14 @@ export interface ReferenceSite {
|
|
|
76
76
|
};
|
|
77
77
|
/** Argument count at the call site; used by `provider.arityCompatibility`. */
|
|
78
78
|
readonly arity?: number;
|
|
79
|
+
/**
|
|
80
|
+
* Object-literal key under which a `value-ref` site registers its value
|
|
81
|
+
* (`{ emitScopeCaptures: emitHook }` → `'emitScopeCaptures'`; shorthand
|
|
82
|
+
* `{ emitHook }` → `'emitHook'`). Consumed by the property-dispatch pass
|
|
83
|
+
* to connect member-call sites (`x.emitScopeCaptures()`) to registered
|
|
84
|
+
* functions (#2437). Only set for `kind === 'value-ref'`.
|
|
85
|
+
*/
|
|
86
|
+
readonly propertyKey?: string;
|
|
79
87
|
/**
|
|
80
88
|
* Inferred argument types at the call site, one per argument. An
|
|
81
89
|
* empty-string entry means "unknown" — consumers narrowing overload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-site.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/reference-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,YAAY,
|
|
1
|
+
{"version":3,"file":"reference-site.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/reference-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,YAAY,GAWZ,WAAW,GAKX,OAAO,CAAC;AAEZ;;;;;;;;;GASG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9D"}
|
|
@@ -377,7 +377,7 @@ export interface Reference {
|
|
|
377
377
|
readonly toDef: DefId;
|
|
378
378
|
/** Location of the reference in source. */
|
|
379
379
|
readonly atRange: Range;
|
|
380
|
-
readonly kind: 'call' | 'read' | 'write' | 'type-reference' | 'inherits' | 'import-use' | 'macro';
|
|
380
|
+
readonly kind: 'call' | 'read' | 'write' | 'type-reference' | 'inherits' | 'import-use' | 'value-ref' | 'macro';
|
|
381
381
|
readonly confidence: number;
|
|
382
382
|
readonly evidence: readonly ResolutionEvidence[];
|
|
383
383
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -363,7 +363,7 @@ function parseDataItemClauses(rest) {
|
|
|
363
363
|
result.pic = picMatch[1];
|
|
364
364
|
}
|
|
365
365
|
// USAGE [IS] <usage-type> — including non-standard COMP-6, COMP-X etc.
|
|
366
|
-
const usageMatch = text.match(/\bUSAGE\s+(?:IS\s+)?(COMP(?:UTATIONAL)?(?:-[0-9X])?|BINARY|PACKED-DECIMAL|DISPLAY|INDEX|POINTER|NATIONAL)\b/i);
|
|
366
|
+
const usageMatch = text.match(/\bUSAGE\s+(?:IS\s+)?(PROCEDURE-POINTER|FUNCTION-POINTER|COMP(?:UTATIONAL)?(?:-[0-9X])?|BINARY|PACKED-DECIMAL|DISPLAY|INDEX|POINTER|NATIONAL)\b/i);
|
|
367
367
|
if (usageMatch) {
|
|
368
368
|
result.usage = usageMatch[1].toUpperCase();
|
|
369
369
|
}
|
|
@@ -224,6 +224,10 @@ function mapKindToType(kind) {
|
|
|
224
224
|
case 'type-reference':
|
|
225
225
|
case 'import-use':
|
|
226
226
|
case 'macro':
|
|
227
|
+
// value-ref: function registered as an object-literal property value —
|
|
228
|
+
// a reference, not an invocation; CALLS are synthesized separately by
|
|
229
|
+
// the property-dispatch pass (#2437).
|
|
230
|
+
case 'value-ref':
|
|
227
231
|
return 'USES';
|
|
228
232
|
}
|
|
229
233
|
}
|
|
@@ -5,6 +5,20 @@ import { parseSourceSafe } from '../../../tree-sitter/safe-parse.js';
|
|
|
5
5
|
import { splitCInclude } from './import-decomposer.js';
|
|
6
6
|
import { computeCDeclarationArity, computeCCallArity } from './arity-metadata.js';
|
|
7
7
|
import { markStaticName } from './static-linkage.js';
|
|
8
|
+
import { synthesizeCallableFlowCaptures, } from '../../utils/callable-flow-captures.js';
|
|
9
|
+
const C_CALLABLE_CAPTURE_OPTIONS = {
|
|
10
|
+
functionNodeTypes: new Set(['function_definition']),
|
|
11
|
+
callNodeTypes: new Set(['call_expression']),
|
|
12
|
+
parameterListNodeTypes: new Set(['parameter_list', 'argument_list']),
|
|
13
|
+
parameterNodeTypes: new Set(['parameter_declaration']),
|
|
14
|
+
bindingNodeTypes: new Set(['init_declarator']),
|
|
15
|
+
assignmentNodeTypes: new Set(['assignment_expression']),
|
|
16
|
+
identifierNodeTypes: new Set(['identifier', 'field_identifier', 'type_identifier']),
|
|
17
|
+
callableSignatureDeclarationNodeTypes: new Set(['declaration', 'parameter_declaration']),
|
|
18
|
+
emitCanonicalInvokeReference: true,
|
|
19
|
+
parameterPassingMode: (parameter) => containsNodeType(parameter, 'pointer_declarator') ? 'pointer' : 'value',
|
|
20
|
+
expectedSignature: (container, destination) => functionDeclaratorSignature(destination) ?? functionDeclaratorSignature(container),
|
|
21
|
+
};
|
|
8
22
|
export function emitCScopeCaptures(sourceText, filePath, cachedTree) {
|
|
9
23
|
let tree = cachedTree;
|
|
10
24
|
if (tree === undefined) {
|
|
@@ -106,8 +120,50 @@ export function emitCScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
106
120
|
}
|
|
107
121
|
out.push(grouped);
|
|
108
122
|
}
|
|
123
|
+
out.push(...synthesizeCallableFlowCaptures(tree.rootNode, C_CALLABLE_CAPTURE_OPTIONS));
|
|
109
124
|
return out;
|
|
110
125
|
}
|
|
126
|
+
function functionDeclaratorSignature(node) {
|
|
127
|
+
const declarator = findDescendantOfType(node, 'function_declarator');
|
|
128
|
+
const parameters = declarator?.childForFieldName('parameters');
|
|
129
|
+
if (parameters === null || parameters === undefined)
|
|
130
|
+
return undefined;
|
|
131
|
+
const parameterNodes = parameters.namedChildren.filter((child) => child !== null && child.type === 'parameter_declaration');
|
|
132
|
+
// tree-sitter-c materializes `...` as a NAMED `variadic_parameter` node —
|
|
133
|
+
// the anonymous-token checks never matched, so variadic signatures were
|
|
134
|
+
// emitted with a wrong fixed arity (#2522 review). Keep the token checks
|
|
135
|
+
// for grammar variants that expose `...` as an anonymous literal.
|
|
136
|
+
const hasEllipsis = parameters.children.some((child) => child.type === 'variadic_parameter' ||
|
|
137
|
+
child.type === '...' ||
|
|
138
|
+
(!child.isNamed && child.text === '...'));
|
|
139
|
+
const isVoidOnly = parameterNodes.length === 1 &&
|
|
140
|
+
parameterNodes[0].namedChildCount === 1 &&
|
|
141
|
+
parameterNodes[0].firstNamedChild?.text === 'void';
|
|
142
|
+
if (isVoidOnly)
|
|
143
|
+
return { parameterCount: 0, parameterTypes: [] };
|
|
144
|
+
const parameterTypes = parameterNodes.map((parameter) => parameter.childForFieldName('type')?.text ?? 'unknown');
|
|
145
|
+
if (hasEllipsis)
|
|
146
|
+
parameterTypes.push('...');
|
|
147
|
+
return {
|
|
148
|
+
...(hasEllipsis ? {} : { parameterCount: parameterNodes.length }),
|
|
149
|
+
parameterTypes,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function containsNodeType(root, type) {
|
|
153
|
+
return findDescendantOfType(root, type) !== null;
|
|
154
|
+
}
|
|
155
|
+
function findDescendantOfType(root, type) {
|
|
156
|
+
const stack = [root];
|
|
157
|
+
while (stack.length > 0) {
|
|
158
|
+
const node = stack.pop();
|
|
159
|
+
if (node.type === type)
|
|
160
|
+
return node;
|
|
161
|
+
for (const child of node.namedChildren)
|
|
162
|
+
if (child !== null)
|
|
163
|
+
stack.push(child);
|
|
164
|
+
}
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
111
167
|
/**
|
|
112
168
|
* Check if a C function_definition or declaration has `static` storage class.
|
|
113
169
|
* Walks direct children for a `storage_class_specifier` node with text `static`.
|
|
@@ -117,6 +117,23 @@ const C_SCOPE_QUERY = `
|
|
|
117
117
|
declarator: (pointer_declarator
|
|
118
118
|
declarator: (identifier) @declaration.name)) @declaration.variable
|
|
119
119
|
|
|
120
|
+
;; Declarations — function-pointer variables (\`void (*fp)(int);\`), with and
|
|
121
|
+
;; without initializer. Without these the file-scope pointer has no scope-tree
|
|
122
|
+
;; binding, so callable-flow cells written in one function and read in another
|
|
123
|
+
;; canonicalize to different keys and never join (#2522 review, H1).
|
|
124
|
+
(declaration
|
|
125
|
+
declarator: (function_declarator
|
|
126
|
+
declarator: (parenthesized_declarator
|
|
127
|
+
(pointer_declarator
|
|
128
|
+
declarator: (identifier) @declaration.name)))) @declaration.variable
|
|
129
|
+
|
|
130
|
+
(declaration
|
|
131
|
+
declarator: (init_declarator
|
|
132
|
+
declarator: (function_declarator
|
|
133
|
+
declarator: (parenthesized_declarator
|
|
134
|
+
(pointer_declarator
|
|
135
|
+
declarator: (identifier) @declaration.name))))) @declaration.variable
|
|
136
|
+
|
|
120
137
|
;; Declarations — macro definitions
|
|
121
138
|
(preproc_def
|
|
122
139
|
name: (identifier) @declaration.name) @declaration.macro
|
|
@@ -100,4 +100,10 @@ export const cScopeResolver = {
|
|
|
100
100
|
const simple = def.qualifiedName?.split('.').pop() ?? def.qualifiedName ?? '';
|
|
101
101
|
return isStaticName(def.filePath, simple);
|
|
102
102
|
},
|
|
103
|
+
// Precise linkage-only variant used to associate a visible prototype with
|
|
104
|
+
// its implementation during callable-value actual-to-formal propagation.
|
|
105
|
+
hasFileLocalCallableLinkage: (def) => {
|
|
106
|
+
const simple = def.qualifiedName?.split('.').pop() ?? def.qualifiedName ?? '';
|
|
107
|
+
return isStaticName(def.filePath, simple);
|
|
108
|
+
},
|
|
103
109
|
};
|
|
@@ -44,6 +44,20 @@ export function emitCobolScopeCaptures(sourceText, _filePath, _cachedTree) {
|
|
|
44
44
|
// Run the regex tagger on the preprocessed source
|
|
45
45
|
const extracted = extractCobolSymbolsWithRegex(cleaned, _filePath);
|
|
46
46
|
const out = [];
|
|
47
|
+
const procedurePointers = new Set(extracted.dataItems
|
|
48
|
+
.filter((item) => /(?:PROCEDURE|FUNCTION)-POINTER/.test(item.usage?.toUpperCase() ?? ''))
|
|
49
|
+
.map((item) => item.name.toUpperCase()));
|
|
50
|
+
// Fallback for declarations the clause parser missed. Scan CLEANED lines —
|
|
51
|
+
// on raw fixed-format sources the sequence number (cols 1-6) satisfied
|
|
52
|
+
// `\d+` and the LEVEL NUMBER got captured as the name, so the set never
|
|
53
|
+
// contained the real pointer name and the whole feature no-op'd (#2522
|
|
54
|
+
// review, H3). COBOL data names must contain a letter, so `[A-Z]` first
|
|
55
|
+
// rejects level numbers.
|
|
56
|
+
for (const line of cleaned.split(/\r?\n/)) {
|
|
57
|
+
const declaration = line.match(/^\s*\d{1,2}\s+([A-Z][A-Z0-9-]*).*\b(?:PROCEDURE|FUNCTION)-POINTER\b/i);
|
|
58
|
+
if (declaration !== null)
|
|
59
|
+
procedurePointers.add(declaration[1].toUpperCase());
|
|
60
|
+
}
|
|
47
61
|
// ── 1. PROGRAM-ID → @scope.module ───────────────────────────────────
|
|
48
62
|
// The primary program name (first PROGRAM-ID encountered)
|
|
49
63
|
if (extracted.programName) {
|
|
@@ -208,6 +222,85 @@ export function emitCobolScopeCaptures(sourceText, _filePath, _cachedTree) {
|
|
|
208
222
|
if (m !== null)
|
|
209
223
|
out.push(m);
|
|
210
224
|
}
|
|
225
|
+
// ── 9. Procedure-pointer value flow ────────────────────────────────
|
|
226
|
+
// ISO COBOL exposes callable values through USAGE PROCEDURE-POINTER,
|
|
227
|
+
// SET ... TO ENTRY, and dynamic CALL data-items. The regex provider emits
|
|
228
|
+
// the same normalized facts as AST-backed providers so shared ingestion
|
|
229
|
+
// remains language-agnostic.
|
|
230
|
+
for (const program of extracted.programs) {
|
|
231
|
+
for (let index = 0; index < (program.procedureUsing?.length ?? 0); index++) {
|
|
232
|
+
const parameter = program.procedureUsing[index];
|
|
233
|
+
const ownerRange = rangeOf(program.startLine, 0, program.endLine, 0);
|
|
234
|
+
out.push({
|
|
235
|
+
'@callable-flow.formal': capture('@callable-flow.formal', ownerRange, program.name),
|
|
236
|
+
'@callable-flow.owner': capture('@callable-flow.owner', ownerRange, program.name),
|
|
237
|
+
'@callable-flow.binding': capture('@callable-flow.binding', rangeOf(program.startLine, 0, program.startLine, parameter.length), parameter),
|
|
238
|
+
'@callable-flow.parameter-index': capture('@callable-flow.parameter-index', ownerRange, String(index)),
|
|
239
|
+
'@callable-flow.passing-mode': capture('@callable-flow.passing-mode', ownerRange, 'reference'),
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
for (let index = 0; index < lines.length; index++) {
|
|
244
|
+
const line = lines[index];
|
|
245
|
+
// Comment lines must not seed flows — a commented-out SET produced a
|
|
246
|
+
// live seed and a false CALLS edge from dead code (#2522 review, M1).
|
|
247
|
+
// Fixed format marks comments with '*'/'/' in indicator column 7; free
|
|
248
|
+
// format uses '*>' (also valid inline, so strip the tail).
|
|
249
|
+
if (line[6] === '*' || line[6] === '/')
|
|
250
|
+
continue;
|
|
251
|
+
const code = line.split('*>')[0];
|
|
252
|
+
const lineNumber = index + 1;
|
|
253
|
+
const lineRange = rangeOf(lineNumber, 0, lineNumber, endColFrom(line));
|
|
254
|
+
const entry = code.match(/\bSET\s+([A-Z0-9][A-Z0-9-]*)\s+TO\s+ENTRY\s+(?:"([^"]+)"|'([^']+)')/i);
|
|
255
|
+
if (entry !== null) {
|
|
256
|
+
const destination = entry[1];
|
|
257
|
+
const target = entry[2] ?? entry[3];
|
|
258
|
+
if (procedurePointers.has(destination.toUpperCase())) {
|
|
259
|
+
out.push({
|
|
260
|
+
'@callable-flow.seed': capture('@callable-flow.seed', lineRange, line),
|
|
261
|
+
'@callable-flow.destination': capture('@callable-flow.destination', lineRange, destination),
|
|
262
|
+
'@callable-flow.target': capture('@callable-flow.target', lineRange, target),
|
|
263
|
+
'@callable-flow.target-name': capture('@callable-flow.target-name', lineRange, target),
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
const copy = code.match(/\bSET\s+([A-Z0-9][A-Z0-9-]*)\s+TO\s+([A-Z0-9][A-Z0-9-]*)\b/i);
|
|
269
|
+
if (copy !== null &&
|
|
270
|
+
procedurePointers.has(copy[1].toUpperCase()) &&
|
|
271
|
+
procedurePointers.has(copy[2].toUpperCase())) {
|
|
272
|
+
out.push({
|
|
273
|
+
'@callable-flow.copy': capture('@callable-flow.copy', lineRange, line),
|
|
274
|
+
'@callable-flow.destination': capture('@callable-flow.destination', lineRange, copy[1]),
|
|
275
|
+
'@callable-flow.source': capture('@callable-flow.source', lineRange, copy[2]),
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
for (const call of extracted.calls) {
|
|
280
|
+
const line = lines[call.line - 1] ?? '';
|
|
281
|
+
const lineRange = rangeOf(call.line, 0, call.line, endColFrom(line));
|
|
282
|
+
for (let index = 0; index < (call.parameters?.length ?? 0); index++) {
|
|
283
|
+
const parameter = call.parameters[index];
|
|
284
|
+
out.push({
|
|
285
|
+
'@callable-flow.argument': capture('@callable-flow.argument', lineRange, line),
|
|
286
|
+
'@callable-flow.source': capture('@callable-flow.source', lineRange, parameter),
|
|
287
|
+
'@callable-flow.parameter-index': capture('@callable-flow.parameter-index', lineRange, String(index)),
|
|
288
|
+
...(!call.isQuoted && procedurePointers.has(call.target.toUpperCase())
|
|
289
|
+
? {}
|
|
290
|
+
: {
|
|
291
|
+
'@callable-flow.direct-callee-name': capture('@callable-flow.direct-callee-name', lineRange, call.target),
|
|
292
|
+
}),
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
if (!call.isQuoted && procedurePointers.has(call.target.toUpperCase())) {
|
|
296
|
+
out.push({
|
|
297
|
+
'@callable-flow.invoke': capture('@callable-flow.invoke', lineRange, line),
|
|
298
|
+
'@callable-flow.callee': capture('@callable-flow.callee', lineRange, call.target),
|
|
299
|
+
'@callable-flow.invocation-kind': capture('@callable-flow.invocation-kind', lineRange, 'indirect'),
|
|
300
|
+
'@callable-flow.arity': capture('@callable-flow.arity', lineRange, String(call.parameters?.length ?? 0)),
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}
|
|
211
304
|
return out;
|
|
212
305
|
}
|
|
213
306
|
// ---------------------------------------------------------------------------
|
|
@@ -56,6 +56,13 @@ const cobolScopeResolver = {
|
|
|
56
56
|
return 'compatible';
|
|
57
57
|
return 'incompatible';
|
|
58
58
|
},
|
|
59
|
+
// PROGRAM-ID declarations bridge to legacy Module graph nodes. COBOL's
|
|
60
|
+
// procedure-pointer ENTRY values therefore target Module defs, while every
|
|
61
|
+
// AST-backed provider keeps the shared callable-label default.
|
|
62
|
+
isCallableValueTarget: (def) => def.type === 'Module',
|
|
63
|
+
// Structural COBOL CALLS/IMPORTS remain owned by the established regex
|
|
64
|
+
// processor; this resolver contributes only procedure-pointer CALLS.
|
|
65
|
+
scopeResolutionEdgeMode: 'callable-flow-only',
|
|
59
66
|
// No inheritance in COBOL — empty MRO map.
|
|
60
67
|
buildMro: () => new Map(),
|
|
61
68
|
// Everything lives under the PROGRAM-ID Module scope.
|