diff --git a/src/Conjure/Process/Enums.hs b/src/Conjure/Process/Enums.hs index c46be5327..80a22b155 100644 --- a/src/Conjure/Process/Enums.hs +++ b/src/Conjure/Process/Enums.hs @@ -44,7 +44,12 @@ removeEnumsFromModel = preCheckForNameReuse model = do let enumNames = concat [ names | Declaration (LettingDomainDefnEnum _ names) <- mStatements model ] let redefinedTopLevel = [ name | Declaration (FindOrGiven _ name _) <- mStatements model, name `elem` enumNames ] - let redefinedQuantified = [ name | Generator gen <- universeBi (mStatements model), name@Name{} <- universeBi gen, name `elem` enumNames ] + let redefinedQuantified = [ name | Generator gen <- universeBi (mStatements model) + , name@Name{} <- case gen of + GenDomainNoRepr defn _ -> universeBi defn + GenDomainHasRepr defn _ -> universeBi defn + GenInExpr defn _ -> universeBi defn + , name `elem` enumNames ] let redefined = redefinedTopLevel ++ redefinedQuantified let duplicates = [ name | (name, count) <- histogram enumNames, count > 1 ] unless (null duplicates) $ userErr1 $ "Enumerated value defined multiple times:" <+> prettyList id "," duplicates