diff options
author | Paweł Dybiec <pawel.to.malpa@gmail.com> | 2020-01-09 18:12:52 +0100 |
---|---|---|
committer | Paweł Dybiec <pawel.to.malpa@gmail.com> | 2020-01-09 18:12:52 +0100 |
commit | 0c4936c130cadb135faa54034ec2009cf189636e (patch) | |
tree | bcfa352b5cf7db5e655d52d709748c8cf9b1659e /src/Typecheck.hs | |
parent | Add package.yaml (diff) |
Fix variant type
Diffstat (limited to 'src/Typecheck.hs')
-rw-r--r-- | src/Typecheck.hs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Typecheck.hs b/src/Typecheck.hs index d8b8128..02b9871 100644 --- a/src/Typecheck.hs +++ b/src/Typecheck.hs @@ -19,7 +19,11 @@ inferExpr :: Expr -> Environment -> Maybe Typ inferExpr (Var name) env = lookup name env inferExpr (IntLit _) _ = Just TInt inferExpr (Record _) _ = undefined -inferExpr (Variant _ _) _ = undefined +inferExpr (Variant t v e) env = do + ts <- assertVar t + tt <- lookup v ts + checkExpr e env tt + return t inferExpr (Add e1 e2) env = do checkExpr e1 env TInt checkExpr e1 env TInt |