diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-05-16 16:06:39 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-05-17 22:20:07 +0200 |
| commit | 9e1d65b41b0f5435859794682880c93767d1dc44 (patch) | |
| tree | 1aee5eacba9b970e6fc63b7e8f3b9adc2bc5b8d1 /src | |
| parent | d41cc2a1cdf9fc7a9d5781779363b9bb3eb82c00 (diff) | |
More generic unification in for statement
Diffstat (limited to 'src')
| -rw-r--r-- | src/Parser/Statement.hs | 3 |
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 |