Fork of daniellemaywood.uk/gleam — Wasm codegen work
2

Configure Feed

Select the types of activity you want to include in your feed.

add reproduction tests for the renaming bug

author
Andrey
committer
Louis Pilfold
date (Jun 18, 2026, 11:29 AM +0100) commit 87e0e4a9 parent eaf19b18 change-id xzxrqssx
+252
+104
language-server/src/tests/rename.rs
··· 3125 3125 find_position_of("colour: Int, width").under_char('c') 3126 3126 ); 3127 3127 } 3128 + 3129 + // https://github.com/gleam-lang/gleam/issues/5861 3130 + #[test] 3131 + fn rename_item_with_import_alias() { 3132 + assert_rename!( 3133 + TestProject::for_source( 3134 + " 3135 + import wibble.{Wibble as Wobble} 3136 + 3137 + pub fn main() { 3138 + let _ = Wobble 3139 + } 3140 + " 3141 + ) 3142 + .add_module( 3143 + "wibble", 3144 + " 3145 + pub type Wibble { 3146 + Wibble 3147 + } 3148 + " 3149 + ), 3150 + "Wubble", 3151 + find_position_of("= Wobble").under_char('b') 3152 + ); 3153 + } 3154 + 3155 + // https://github.com/gleam-lang/gleam/issues/5861 3156 + #[test] 3157 + fn rename_type_with_import_alias() { 3158 + assert_rename!( 3159 + TestProject::for_source( 3160 + " 3161 + import wibble.{type Wibble as Wobble} 3162 + 3163 + pub fn main() -> Wobble { 3164 + todo 3165 + } 3166 + " 3167 + ) 3168 + .add_module( 3169 + "wibble", 3170 + " 3171 + pub type Wibble { 3172 + Wibble 3173 + } 3174 + " 3175 + ), 3176 + "Wubble", 3177 + find_position_of("-> Wobble").under_char('b') 3178 + ); 3179 + } 3180 + 3181 + // https://github.com/gleam-lang/gleam/issues/5861 3182 + #[test] 3183 + fn rename_type_with_import_alias_and_other_imported_items() { 3184 + assert_rename!( 3185 + TestProject::for_source( 3186 + " 3187 + import wibble.{Wibble as Wobble, type Wibble as Wobble} 3188 + 3189 + pub fn main() -> Wobble { 3190 + Wobble 3191 + } 3192 + " 3193 + ) 3194 + .add_module( 3195 + "wibble", 3196 + " 3197 + pub type Wibble { 3198 + Wibble 3199 + } 3200 + " 3201 + ), 3202 + "Wubble", 3203 + find_position_of("-> Wobble").under_char('b') 3204 + ); 3205 + } 3206 + 3207 + // https://github.com/gleam-lang/gleam/issues/5861 3208 + #[test] 3209 + fn rename_value_with_import_alias_and_other_imported_items() { 3210 + assert_rename!( 3211 + TestProject::for_source( 3212 + " 3213 + import wibble.{Wibble as Wobble, type Wibble as Wobble} 3214 + 3215 + pub fn main() -> Wobble { 3216 + Wobble 3217 + } 3218 + " 3219 + ) 3220 + .add_module( 3221 + "wibble", 3222 + " 3223 + pub type Wibble { 3224 + Wibble 3225 + } 3226 + " 3227 + ), 3228 + "Wubble", 3229 + find_position_of("Wobble").nth_occurrence(4).under_char('b') 3230 + ); 3231 + }
+37
language-server/src/tests/snapshots/gleam_language_server__tests__rename__rename_item_with_import_alias.snap
··· 1 + --- 2 + source: language-server/src/tests/rename.rs 3 + expression: "\nimport wibble.{Wibble as Wobble}\n\npub fn main() {\n let _ = Wobble\n}\n" 4 + --- 5 + ----- BEFORE RENAME 6 + -- wibble.gleam 7 + 8 + pub type Wibble { 9 + Wibble 10 + } 11 + 12 + 13 + -- app.gleam 14 + 15 + import wibble.{Wibble as Wobble} 16 + 17 + pub fn main() { 18 + let _ = Wobble 19 + ↑▔▔▔▔▔ 20 + } 21 + 22 + 23 + ----- AFTER RENAME 24 + -- wibble.gleam 25 + 26 + pub type Wibble { 27 + Wibble 28 + } 29 + 30 + 31 + -- app.gleam 32 + 33 + import wibble.{Wibble as Wubble as Wobble} 34 + 35 + pub fn main() { 36 + let _ = Wubble 37 + }
+37
language-server/src/tests/snapshots/gleam_language_server__tests__rename__rename_type_with_import_alias.snap
··· 1 + --- 2 + source: language-server/src/tests/rename.rs 3 + expression: "\nimport wibble.{type Wibble as Wobble}\n\npub fn main() -> Wobble {\n todo\n}\n" 4 + --- 5 + ----- BEFORE RENAME 6 + -- wibble.gleam 7 + 8 + pub type Wibble { 9 + Wibble 10 + } 11 + 12 + 13 + -- app.gleam 14 + 15 + import wibble.{type Wibble as Wobble} 16 + 17 + pub fn main() -> Wobble { 18 + ↑▔▔▔▔▔ 19 + todo 20 + } 21 + 22 + 23 + ----- AFTER RENAME 24 + -- wibble.gleam 25 + 26 + pub type Wibble { 27 + Wibble 28 + } 29 + 30 + 31 + -- app.gleam 32 + 33 + import wibble.{type Wibble as Wubble as Wobble} 34 + 35 + pub fn main() -> Wubble { 36 + todo 37 + }
+37
language-server/src/tests/snapshots/gleam_language_server__tests__rename__rename_type_with_import_alias_and_other_imported_items.snap
··· 1 + --- 2 + source: language-server/src/tests/rename.rs 3 + expression: "\nimport wibble.{Wibble as Wobble, type Wibble as Wobble}\n\npub fn main() -> Wobble {\n Wobble\n}\n" 4 + --- 5 + ----- BEFORE RENAME 6 + -- wibble.gleam 7 + 8 + pub type Wibble { 9 + Wibble 10 + } 11 + 12 + 13 + -- app.gleam 14 + 15 + import wibble.{Wibble as Wobble, type Wibble as Wobble} 16 + 17 + pub fn main() -> Wobble { 18 + ↑▔▔▔▔▔ 19 + Wobble 20 + } 21 + 22 + 23 + ----- AFTER RENAME 24 + -- wibble.gleam 25 + 26 + pub type Wibble { 27 + Wibble 28 + } 29 + 30 + 31 + -- app.gleam 32 + 33 + import wibble.{Wibble as Wobble, type Wibble as Wubble as Wobble} 34 + 35 + pub fn main() -> Wubble { 36 + Wobble 37 + }
+37
language-server/src/tests/snapshots/gleam_language_server__tests__rename__rename_value_with_import_alias_and_other_imported_items.snap
··· 1 + --- 2 + source: language-server/src/tests/rename.rs 3 + expression: "\nimport wibble.{Wibble as Wobble, type Wibble as Wobble}\n\npub fn main() -> Wobble {\n Wobble\n}\n" 4 + --- 5 + ----- BEFORE RENAME 6 + -- wibble.gleam 7 + 8 + pub type Wibble { 9 + Wibble 10 + } 11 + 12 + 13 + -- app.gleam 14 + 15 + import wibble.{Wibble as Wobble, type Wibble as Wobble} 16 + 17 + pub fn main() -> Wobble { 18 + Wobble 19 + ↑▔▔▔▔▔ 20 + } 21 + 22 + 23 + ----- AFTER RENAME 24 + -- wibble.gleam 25 + 26 + pub type Wibble { 27 + Wibble 28 + } 29 + 30 + 31 + -- app.gleam 32 + 33 + import wibble.{Wibble as Wubble as Wobble, type Wibble as Wobble} 34 + 35 + pub fn main() -> Wobble { 36 + Wubble 37 + }