eigenlsp: scopes past MAX_FN_SCOPES (256) are silently dropped; rename then edits shadowed locals
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
Direzione di ricerca
Start in build_scopes in src/eigenlsp.c and trace how the scope count is returned and consumed by rename resolution. Add a regression test with more than 256 scopes, then run the rename path and execute the renamed program. Done means scope handling no longer silently loses late scopes and a late same-named parameter remains untouched.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Found by /code-review on PR #1330. The limit itself predates that PR, but #1330 makes it bite sooner.
build_scopes in src/eigenlsp.c stops recording scopes after MAX_FN_SCOPES (256), with no warning; the returned count is simply lower. #1330 gives each lambda a scope too, so lambdas now use slots from the same budget as define and for.
In a file with ~200 defines and ~60 early lambdas, the later defines get no scope. Renaming a global x then also rewrites a later define g(x): signature and body, and a later local x resolves to the global. That is a silent wrong edit.
Done when
- The scope table grows as needed (no fixed cap), or rename refuses with an error when the limit is reached rather than guessing.
- A test: a file with more than 256 scopes, where a rename of a global leaves a late
define's same-named parameter untouched (checked by running the renamed program).
- Lingua principale
- C
- Stelle
- 3
- Fork
- 7
- Merge medio
- 3h 56m
- PR unite (30g)
- 102
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di InauguralSystems/EigenScript
-
area:lint-tooling bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
InauguralSystems/EigenScript#1340 ·
I maintainer di solito rispondono entro 1 giorno
-
area:stdlib found-by:code-review kind:silent-wrong
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
InauguralSystems/EigenScript#1338 ·
I maintainer di solito rispondono entro 1 giorno
-
area:lint-tooling found-by:critic kind:docs-drift
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
InauguralSystems/EigenScript#1335 ·
I maintainer di solito rispondono entro 1 giorno
-
area:ci found-by:critic kind:gate-defect
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
InauguralSystems/EigenScript#1311 ·
I maintainer di solito rispondono entro 1 giorno
-
enrolment: decide test_gc_runner_controls.py (exempt vs enrol) and whether floors need a ratchetApertaarea:gates found-by:critic kind:decision
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
InauguralSystems/EigenScript#1280 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di InauguralSystems/EigenScript
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
libretro/libretro-common#233 ·
-
[Bug]: chunk_span_bounds and _validated_chunk_spans reject Pydantic models ChunkSpan and AudioFileAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
BasedHardware/omi#19047 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
obsproject/obs-studio#13936 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno