summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-05-16 16:06:39 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2026-05-17 22:20:07 +0200
commit9e1d65b41b0f5435859794682880c93767d1dc44 (patch)
tree1aee5eacba9b970e6fc63b7e8f3b9adc2bc5b8d1 /src
parentd41cc2a1cdf9fc7a9d5781779363b9bb3eb82c00 (diff)
More generic unification in for statement
Diffstat (limited to 'src')
-rw-r--r--src/Parser/Statement.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/Parser/Statement.hs b/src/Parser/Statement.hs
index c0a85e5..67f2f88 100644
--- a/src/Parser/Statement.hs
+++ b/src/Parser/Statement.hs
@@ -55,7 +55,8 @@ forStatement = do
wsymbol "in"
loff <- stateOffset <$> getParserState
- SomeExpr e <- someExpr FunctionTerm
+ tvar <- newTypeVar
+ SomeExpr e <- unifySomeExpr loff (ExprTypeApp (ExprTypeConstr1 (Proxy :: Proxy [])) [ ExprTypeVar tvar ]) =<< someExpr FunctionTerm
let err = parseError $ FancyError loff $ S.singleton $ ErrorFail $ T.unpack $
"expected a list, expression has type '" <> textExprType e <> "'"
ExprListUnpacker unpack _ <- maybe err return $ exprListUnpacker e