mirror of
https://github.com/colbymchenry/codegraph.git
synced 2026-10-22 09:35:22 +08:00
Squash danusha2345's PR #1511 atd282f9e8onto main8c9c4761, preserving its nine non-merge commits and main's existing Unreleased notes. Calls in Kotlin, Java, TS/JS, Scala, Rust and Python declaration initializers now retain the owner established by the upstream regression expectations. Include the upstream CFML, dynamic-dispatch summary and viewer follow-ups. Linux fail-to-pass validation (Node 22.19.0, rebuilt dist and native kernel): - Before: TS load belonged to file:app.ts; Python/Kotlin/Scala/Rust calls vanished; Java lost the field-lambda, anonymous override and eager calls. - After: all six languages PASS; 12 native/WASM LF/CRLF parity checks PASS. - Focused initializer regressions: 10 passed with CODEGRAPH_KERNEL=0 and 10 passed with the kernel enabled; Kotlin's grammar fallback is recorded. - Related regression suites: 879 passed, 1 skipped across 15 test files. - Evidence: /workspace/cg-1510-repro/before and /workspace/cg-1510-repro/after (combined test output: after/vitest.log). Fixes #1510 Supersedes #1511 Co-authored-by: Colby McHenry <colbymchenry@users.noreply.github.com> Co-authored-by: danusha2345 <ewidusoc498@gmail.com>
This commit is contained in:
@@ -483,18 +483,26 @@ impl<'t> Walker<'t> {
|
||||
}
|
||||
}
|
||||
|
||||
// Walk the initializer for calls — except the object/store shapes
|
||||
// whose members are extracted method-by-method below.
|
||||
// Walk the initializer for calls, ATTRIBUTED to the declared symbol
|
||||
// (#693) — except the object/store shapes whose members are
|
||||
// extracted method-by-method below (walking those too would
|
||||
// double-count each member arrow's calls). Before this the walk ran
|
||||
// with only the FILE on the stack (`const cfg = load()` recorded the
|
||||
// file as load's caller) and object literals were skipped outright.
|
||||
let members_extracted_separately = extract_object_methods
|
||||
|| rtk_endpoints.is_some()
|
||||
|| pinia_setup.is_some()
|
||||
|| !store_collections.is_empty();
|
||||
if let Some(v) = value {
|
||||
let vk = v.kind();
|
||||
if vk != "object"
|
||||
&& vk != "object_expression"
|
||||
&& !(extract_object_methods && vk == "call_expression")
|
||||
&& rtk_endpoints.is_none()
|
||||
&& pinia_setup.is_none()
|
||||
&& store_collections.is_empty()
|
||||
{
|
||||
self.visit_function_body(v);
|
||||
if !members_extracted_separately {
|
||||
match var_row {
|
||||
Some(row) => {
|
||||
self.stack.push(Scope { row, kind, name: name.clone() });
|
||||
self.visit_function_body(v);
|
||||
self.stack.pop();
|
||||
}
|
||||
None => self.visit_function_body(v),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user