Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

eigenlsp: scopes past MAX_FN_SCOPES (256) are silently dropped; rename then edits shadowed locals

Open
#1,341 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
c

Research direction

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.

Written by the indexing model from the issue text.

Description

area:lint-tooling found-by:code-review kind:silent-wrong

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).
Dominant language
C
Stars
3
Forks
7
Avg merge
3h 56m
Merged PRs (30d)
102

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from InauguralSystems/EigenScript

All issues in InauguralSystems/EigenScript

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.