From 2e87171e14d4f28012c53fdc54919b5491f328be Mon Sep 17 00:00:00 2001 From: Jake Leahy Date: Tue, 28 Nov 2023 08:08:05 +1100 Subject: [PATCH] Register declaration of enum field has a use (#22990) Currently when using `use` with nimsuggest on an enum field, it doesn't return the definition of the field. Breaks renaming in IDEs since it will replace all the usages, but not the declaration (cherry picked from commit c31bbb07fb2d1ea8f69b47de50631442154bd3de) --- compiler/semtypes.nim | 1 + nimsuggest/tests/tuse_enum.nim | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 nimsuggest/tests/tuse_enum.nim diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index bc590db868..f8da92f079 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -142,6 +142,7 @@ proc semEnum(c: PContext, n: PNode, prev: PType): PType = result.n.add symNode styleCheckDef(c, e) onDef(e.info, e) + suggestSym(c.graph, e.info, e, c.graph.usageSym) if sfGenSym notin e.flags: if not isPure: if overloadableEnums in c.features: diff --git a/nimsuggest/tests/tuse_enum.nim b/nimsuggest/tests/tuse_enum.nim new file mode 100644 index 0000000000..8a40a83489 --- /dev/null +++ b/nimsuggest/tests/tuse_enum.nim @@ -0,0 +1,15 @@ +discard """ +$nimsuggest --tester $file +>use $1 +def;;skEnumField;;tuse_enum.Colour.Red;;Colour;;$file;;10;;4;;"";;100 +use;;skEnumField;;tuse_enum.Colour.Red;;Colour;;$file;;14;;8;;"";;100 +""" + +type + Colour = enum + Red + Green + Blue + +discard #[!]#Red +