diff options
author | Andrii Riabushenko <cdome@bk.ru> | 2018-12-08 11:35:18 +0000 |
---|---|---|
committer | Andrii Riabushenko <cdome@bk.ru> | 2018-12-08 11:35:18 +0000 |
commit | 94a63eef9a5da8441d17e1f5214c1823056bcf68 (patch) | |
tree | f069314fab297e7cbd2a418f9144ef23e8fd310f | |
parent | 160a03464310d8a9e1ffaf83d73904df3439df78 (diff) | |
download | Nim-94a63eef9a5da8441d17e1f5214c1823056bcf68.tar.gz |
Fix hintXDeclaredButNotUsed for enum fields marked as used
-rw-r--r-- | compiler/lookups.nim | 3 | ||||
-rw-r--r-- | tests/pragmas/tused.nim | 5 |
2 files changed, 7 insertions, 1 deletions
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" |