From 94a63eef9a5da8441d17e1f5214c1823056bcf68 Mon Sep 17 00:00:00 2001 From: Andrii Riabushenko Date: Sat, 8 Dec 2018 11:35:18 +0000 Subject: [PATCH] Fix hintXDeclaredButNotUsed for enum fields marked as used --- compiler/lookups.nim | 3 ++- tests/pragmas/tused.nim | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/compiler/lookups.nim b/compiler/lookups.nim index 2fb4e5241..91d6bd745 100644 --- a/compiler/lookups.nim +++ b/compiler/lookups.nim @@ -169,7 +169,8 @@ proc ensureNoMissingOrUnusedSymbols(c: PContext; scope: PScope) = getSymRepr(c.config, s)) inc missingImpls elif {sfUsed, sfExported} * s.flags == {}: - if s.kind notin {skForVar, skParam, skMethod, skUnknown, skGenericParam}: + if s.kind notin {skForVar, skParam, skMethod, skUnknown, skGenericParam} and + not (s.kind == skEnumField and {sfUsed, sfExported} * s.owner.flags != {}): # XXX: implicit type params are currently skTypes # maybe they can be made skGenericParam as well. if s.typ != nil and tfImplicitTypeParam notin s.typ.flags and diff --git a/tests/pragmas/tused.nim b/tests/pragmas/tused.nim index 83c62b7bb..eb9cb08aa 100644 --- a/tests/pragmas/tused.nim +++ b/tests/pragmas/tused.nim @@ -31,5 +31,10 @@ block: implementArithOpsNew(int) echoAdd 3, 5 +type + MyEnum {.used.} = enum + Val1, Val2, Val3 + + static: echo "compile end"