Context
Java records are emitted as source-backed type nodes, but their component types are skipped during reference extraction. Reproduced on v8 (0.8.51, 73710d3).
Reproducer
class PaymentGateway {}
class Item {}
record Order(PaymentGateway gateway, List<Item> items) {}
Cache result
Label-normalized relevant edges from graphify-out/cache/ast/v0.8.51/<content-hash>.json:
[
{
"source": "RecordComponents.java",
"target": "PaymentGateway",
"relation": "contains",
"confidence": "EXTRACTED"
},
{
"source": "RecordComponents.java",
"target": "Item",
"relation": "contains",
"confidence": "EXTRACTED"
},
{
"source": "RecordComponents.java",
"target": "Order",
"relation": "contains",
"confidence": "EXTRACTED"
}
]
Order has no references to PaymentGateway, List, or Item.
Expected
Emit references edges from Order to PaymentGateway and List with context=field, and to Item with context=generic_arg.
Context
Java records are emitted as source-backed type nodes, but their component types are skipped during reference extraction. Reproduced on
v8(0.8.51,73710d3).Reproducer
Cache result
Label-normalized relevant
edgesfromgraphify-out/cache/ast/v0.8.51/<content-hash>.json:[ { "source": "RecordComponents.java", "target": "PaymentGateway", "relation": "contains", "confidence": "EXTRACTED" }, { "source": "RecordComponents.java", "target": "Item", "relation": "contains", "confidence": "EXTRACTED" }, { "source": "RecordComponents.java", "target": "Order", "relation": "contains", "confidence": "EXTRACTED" } ]Orderhas no references toPaymentGateway,List, orItem.Expected
Emit
referencesedges fromOrdertoPaymentGatewayandListwithcontext=field, and toItemwithcontext=generic_arg.