From a14ed7d026ebc32650507237eec8cb8bfe2072e8 Mon Sep 17 00:00:00 2001 From: Rakarake Date: Mon, 8 May 2023 15:07:03 +0200 Subject: [PATCH] PEnum checks outputted constructors now --- src/Monomorphizer/Monomorphizer.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Monomorphizer/Monomorphizer.hs b/src/Monomorphizer/Monomorphizer.hs index 1e9427e..7eac86b 100644 --- a/src/Monomorphizer/Monomorphizer.hs +++ b/src/Monomorphizer/Monomorphizer.hs @@ -324,7 +324,11 @@ morphPattern p expectedType = case p of L.PVar ident -> return $ Just ((M.PVar ident, expectedType), Set.singleton ident) L.PLit lit -> return $ Just ((M.PLit (convertLit lit), expectedType), Set.empty) L.PCatch -> return $ Just ((M.PCatch, expectedType), Set.empty) - L.PEnum ident -> return $ Just ((M.PEnum (newName expectedType ident), expectedType), Set.empty) + L.PEnum ident -> do + let newIdent = newName expectedType ident + isMarked <- isConsMarked newIdent + if isMarked then return $ Just ((M.PEnum newIdent, expectedType), Set.empty) + else return Nothing L.PInj ident pts -> do let newIdent = newName expectedType ident isMarked <- isConsMarked newIdent if isMarked