PEnum checks outputted constructors now

This commit is contained in:
Rakarake 2023-05-08 15:07:03 +02:00
parent b3b71c0ef7
commit a14ed7d026

View file

@ -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