Rename of enum field does not rename references.
Zig Version
0.14.0-dev.1820+ea527f7a8
ZLS Version
0.14.0-dev.167+063d7ff
Client / Code Editor / Extensions
Visual Studio Code-1.94.0
Steps to Reproduce and Observed Behavior
Init new project with zig init.
Edit main.zig as follows:
const std = @import("std");
const log = std.log;
const SomeEnum = enum(u8) {
zero,
one,
two,
};
pub fn main() !void {
const e = SomeEnum.two;
switch (e) {
.zero => log.info("zero", .{}),
.one => log.info("one", .{}),
.two => log.info("two", .{}),
}
}
Right click the field of enum SomeEnum, for example zero, to rename. Enter new name and press enter. The field name is successfully renamed but its usages, .zero in the switch in this example, are not renamed.
Expected Behavior
Enum field itself and all the usages are renamed.
Relevant log output
No response
Notes
This would be the continuation of #2042. By #2043, the rename operation itself stopped failing. But it still does not work as expected.
So this one is a little harder to tackle, because ZLS cannot infer enum types like the zig compiler can, and the compiler itself does not expose an API to query type information after the Sema phase.
Though maybe in cases like this where there can only be one obvious type that .zero belongs to, we can use the AST to find references? Worth trying.
this works now, fixed by bcc5d9fd67d815613cce0294a0d45b0d76cecd88