summaryrefslogtreecommitdiff
path: root/src/Parser
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-08-27 18:32:42 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2026-08-27 23:04:38 +0200
commitd8420a37ffe9e752816b071fced4a972ca1fad23 (patch)
treef1e2d8e8b8ec6f547c5ab0e665965eb9a207294a /src/Parser
parent74c751399fc7922d51b2ac8e1987c78b5a65cfdc (diff)
Remove requirement of primitive type for context
Diffstat (limited to 'src/Parser')
-rw-r--r--src/Parser/Core.hs8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/Parser/Core.hs b/src/Parser/Core.hs
index d1826e1..37c6f12 100644
--- a/src/Parser/Core.hs
+++ b/src/Parser/Core.hs
@@ -329,11 +329,9 @@ evalRemainingArguments off (FunctionArguments remaining) expr = do
arg@( _, SomeArgumentType RequiredArgument _ ) -> err $ "missing " <> showType arg <> " argument"
( _, SomeArgumentType OptionalArgument _ ) -> return Nothing
( kw, SomeArgumentType (ExprDefault def) _ ) -> return $ Just ( kw, def )
- ( kw, SomeArgumentType ContextDefault (ExprTypePrim atype) ) -> do
- SomeExpr context <- gets testContext
- context' <- unifyExpr off atype context
- return $ Just ( kw, SomeExpr context' )
- ( _, SomeArgumentType ContextDefault _ ) -> err "non-primitive context requirement"
+ ( kw, SomeArgumentType ContextDefault atype ) -> do
+ context <- unifySomeExpr off atype =<< gets testContext
+ return $ Just ( kw, context )
sline <- getSourceLine
return (FunctionEval sline $ ArgsApp (FunctionArguments $ M.fromAscList defaults) expr)