From c31bbb07fb2d1ea8f69b47de50631442154bd3de 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 --- 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 ebbf75e351..afc06234d3 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -148,6 +148,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: addInterfaceOverloadableSymAt(c, c.currentScope, e) 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 +