PEnum checks outputted constructors now
This commit is contained in:
parent
b3b71c0ef7
commit
a14ed7d026
1 changed files with 5 additions and 1 deletions
|
|
@ -324,7 +324,11 @@ morphPattern p expectedType = case p of
|
||||||
L.PVar ident -> return $ Just ((M.PVar ident, expectedType), Set.singleton ident)
|
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.PLit lit -> return $ Just ((M.PLit (convertLit lit), expectedType), Set.empty)
|
||||||
L.PCatch -> return $ Just ((M.PCatch, 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
|
L.PInj ident pts -> do let newIdent = newName expectedType ident
|
||||||
isMarked <- isConsMarked newIdent
|
isMarked <- isConsMarked newIdent
|
||||||
if isMarked
|
if isMarked
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue