gleam-lang/gleam

LSP: Renaming aliased value when alias has same name breaks alias

Open

#5,681 opened on May 3, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Rust (960 forks)batch import
help wanted

Repository metrics

Stars
 (21,417 stars)
PR merge metrics
 (Avg merge 8d 6h) (59 merged PRs in 30d)

Description

Sorry, I know the title is hard to understand. An example will make much more sense:

// foo.gleam
pub type Foo { Bar }
//             ^^^ (a)

// main.gleam
import foo.{Bar as Bar}
//      (b) ^^^    ^^^ (c)
pub fn main() {
    let _ = Bar
    //      ^^^ (d)
}

To reproduce: Move the cursor over (a) and trigger a rename to a new name.

Expected outcome: (a) and (b) change to the new value, (c) and (d) remain unchanged.

Actual outcome: (a), (b), and (d) change to the new value. (c) remains Bar. However, since (d) changes to the new value as well, the rename causes an unknown variable error at (d).

Gleam version: 1.16.0 OS: macOS Tahoe 26.4 (25E246) Editor: helix 25.07.1 (a05c151b)

Contributor guide