From f8266c737687e3e45e6a14a5bc39db153b6bc57d Mon Sep 17 00:00:00 2001 From: Mathijs Saey Date: Sat, 8 Jul 2017 07:31:53 +0200 Subject: [PATCH] Fixes #6008 (#6068) --- compiler/semtypes.nim | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index 0c2dd2f96d..de71f16325 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -42,6 +42,8 @@ proc semEnum(c: PContext, n: PNode, prev: PType): PType = counter = lastOrd(base) + 1 rawAddSon(result, base) let isPure = result.sym != nil and sfPure in result.sym.flags + var symbols: TStrTable + if isPure: initStrTable(symbols) var hasNull = false for i in countup(1, sonsLen(n) - 1): case n.sons[i].kind @@ -87,6 +89,8 @@ proc semEnum(c: PContext, n: PNode, prev: PType): PType = addSon(result.n, newSymNode(e)) styleCheckDef(e) if sfGenSym notin e.flags and not isPure: addDecl(c, e) + if isPure and strTableIncl(symbols, e): + wrongRedefinition(e.info, e.name.s) inc(counter) if not hasNull: incl(result.flags, tfNeedsInit)