rajatnagda45
912637d314
fix(rust): extract macro_rules! definitions and resolve their invocations
...
A `macro_rules! name { ... }` is a named, invocable item, but its node
type (macro_definition) had no branch, so the macro was dropped entirely:
it never became a node, and a `name!(...)` invocation of it (a
macro_invocation, never a call_expression) had nothing to resolve to.
Emit a node per macro_definition and resolve a bare `name!` invocation to
it with a calls edge. Macros are tracked in their own name registry, not
the function/type label map, because a macro and a function can share a
name (`vec!` vs `vec`); the node id is macro-qualified for the same
reason and the label carries a `!`. A scoped invocation (`log::info!`)
is cross-module/crate and stays unresolved (fail-closed).
Adds regression tests for the dropped definition, the resolved local
invocation, name coexistence with a same-named function, and the
unresolved scoped case.
(cherry picked from commit 7010322250 )
2026-10-04 01:43:04 +01:00
..
2026-09-21 19:19:26 +01:00
2026-09-30 20:41:10 +01:00
2026-09-30 20:41:10 +01:00
2026-09-12 17:36:09 +01:00
2026-09-12 22:23:00 +01:00
2026-09-29 13:49:39 +01:00
2026-10-02 17:10:08 +01:00
2026-09-21 19:44:17 +01:00
2026-09-22 15:00:07 +01:00
2026-09-22 14:58:22 +01:00
2026-09-17 11:01:38 +01:00
2026-09-30 20:41:10 +01:00
2026-09-14 18:55:31 +01:00
2026-09-25 15:44:08 +01:00
2026-10-02 17:10:07 +01:00
2026-09-30 20:16:06 +01:00
2026-10-02 17:10:07 +01:00
2026-09-27 18:56:31 +01:00
2026-09-13 17:47:56 +01:00
2026-10-02 16:50:45 +01:00
2026-10-02 16:50:45 +01:00
2026-09-27 18:39:52 +01:00
2026-09-25 16:01:47 +01:00
2026-09-25 16:01:47 +01:00
2026-09-26 13:53:08 +01:00
2026-10-02 17:10:08 +01:00
2026-09-28 10:15:38 +01:00
2026-09-16 15:37:30 +01:00
2026-10-02 16:50:45 +01:00
2026-09-23 16:54:04 +01:00
2026-09-29 13:49:39 +01:00
2026-09-16 16:20:01 +01:00
2026-09-23 19:45:40 +01:00
2026-10-04 01:43:04 +01:00
2026-09-30 20:10:34 +01:00
2026-09-22 14:58:12 +01:00
2026-09-22 14:58:12 +01:00
2026-09-30 20:41:10 +01:00
2026-10-02 17:10:07 +01:00
2026-09-30 20:41:10 +01:00
2026-09-25 16:15:15 +01:00
2026-09-20 13:59:26 +01:00
2026-09-28 09:13:29 +01:00
2026-09-30 20:41:10 +01:00
2026-09-20 13:59:25 +01:00
2026-09-30 20:10:34 +01:00
2026-09-14 18:49:19 +01:00
2026-09-12 21:31:34 +01:00
2026-10-02 17:10:08 +01:00
2026-09-13 17:47:55 +01:00
2026-09-27 18:39:52 +01:00
2026-10-02 16:50:45 +01:00
2026-09-30 20:41:10 +01:00
2026-09-22 17:30:28 +01:00
2026-10-04 01:43:04 +01:00
2026-09-23 17:01:39 +01:00
2026-09-13 17:47:57 +01:00
2026-10-02 16:50:45 +01:00
2026-09-30 20:41:10 +01:00
2026-09-16 14:50:54 +01:00
2026-09-17 11:01:37 +01:00
2026-10-02 17:10:07 +01:00
2026-09-26 13:45:58 +01:00
2026-09-28 10:18:13 +01:00
2026-09-17 11:01:38 +01:00
2026-09-25 15:44:21 +01:00
2026-09-27 18:40:06 +01:00
2026-09-28 09:14:38 +01:00
2026-09-13 17:47:54 +01:00
2026-09-21 18:04:04 +01:00
2026-09-28 10:15:38 +01:00
2026-09-12 17:36:10 +01:00
2026-10-02 17:10:07 +01:00
2026-09-16 14:43:05 +01:00
2026-10-02 17:10:07 +01:00
2026-10-04 01:43:04 +01:00
2026-09-18 15:16:09 +01:00
2026-10-02 17:10:07 +01:00
2026-09-13 17:47:54 +01:00
2026-09-14 18:52:06 +01:00
2026-09-22 17:30:28 +01:00
2026-09-29 14:37:10 +01:00
2026-09-27 18:39:51 +01:00
2026-09-12 21:49:56 +01:00
2026-09-30 20:41:10 +01:00
2026-10-02 17:10:07 +01:00
2026-09-23 17:01:39 +01:00
2026-09-20 13:59:25 +01:00
2026-09-15 18:01:35 +01:00
2026-09-27 18:39:51 +01:00
2026-09-12 17:39:27 +01:00
2026-10-02 17:10:07 +01:00
2026-09-20 18:53:35 +01:00
2026-09-30 20:41:10 +01:00
2026-09-30 20:41:10 +01:00
2026-10-02 17:10:08 +01:00
2026-09-28 10:15:38 +01:00