One table-driven enclosing-scope and in-file test-scope walker instead of per-language copies
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 58/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- cli, developer-experience, tooling
Research direction
Start in src/ingest_names.h by comparing the generic and per-language scope walkers, then read CONTRIBUTING §3 for the constexpr-table style. Use the existing gates, a before/after output map, and ripwire --clones to verify byte-identical results, removal of the duplicate group, and no new per-language functions.
Written by the indexing model from the issue text.
Description
Part of the language-architecture cleanup tracked in #354 ("common stays common").
Problem. The same idea is written once per language in src/ingest_names.h:
- enclosing scope:
rustEnclosingScopeOfandkotlinEnclosingScopeOfare near-copies of the genericenclosingScopeOf(0.82 similar byripwire --clones); - in-file test scope: four parallel
*InFileTestScopefunctions (C#, JS, Python, Rust).
Change. One table-driven walker for each: a small constexpr per-language table (node kinds that open a scope, how the scope name is read, which nodes mark a test scope) and one function that reads it. The style rule is CONTRIBUTING §3, "Declarative constexpr tables over scattered switch/if".
Acceptance. Output byte-identical on every language (existing gates + a before/after map); ripwire --clones no longer reports the group; no new per-language functions.
Size: about a day. A good way to learn the ingest pipeline. Comment here to claim it.
- Dominant language
- C++
- Stars
- 2.3k
- Forks
- 145
- Avg merge
- 8h 50m
- Merged PRs (30d)
- 211
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from redhat-et/ripwire
-
Difficulty 2/5 Under an hour Newbie friendliness 78/100
redhat-et/ripwire#334 · 7 comments ·
Maintainers usually reply within 1 day
-
help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
redhat-et/ripwire#68 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
One shared inert-region mechanism (quote, discard, comment forms) instead of per-language checksOpenenhancement help wanted
Difficulty 3/5 Half a day Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
enhancement help wanted
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 1 day
All issues in redhat-et/ripwire
Similar issues
-
bug
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
isl-org/Open3D#7585 · 1 comment ·
Maintainers usually reply within 2 days
-
Unconfirmed bug
Difficulty 1/5 Under an hour Newbie friendliness 88/100
luanti-org/luanti#17605 · 1 comment ·
Maintainers usually reply within 2 days
-
area: config area: firmware priority: P2 - medium size: S type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Mizithra/ActiveTerrain#16 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
grumpycoders/pcsx-redux#2171 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 2 days