From 81d6d9f99ce8ea56df2c926156a3e3600a1a4117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 25 Apr 2026 10:51:21 +0200 Subject: Polymorphic types in function arguments --- src/Parser/Expr.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/Parser/Expr.hs') diff --git a/src/Parser/Expr.hs b/src/Parser/Expr.hs index 53bd1a1..8d1fe03 100644 --- a/src/Parser/Expr.hs +++ b/src/Parser/Expr.hs @@ -426,17 +426,17 @@ recordSelector (SomeExpr expr) = do checkFunctionArguments :: FunctionArguments SomeArgumentType -> Int -> Maybe ArgumentKeyword -> SomeExpr -> TestParser SomeExpr -checkFunctionArguments (FunctionArguments argTypes) poff kw sexpr@(SomeExpr expr) = do +checkFunctionArguments (FunctionArguments argTypes) poff kw expr = do case M.lookup kw argTypes of - Just (SomeArgumentType (_ :: ArgumentType expected)) -> do - withRecovery (\e -> registerParseError e >> return sexpr) $ do - SomeExpr <$> unifyExpr poff (Proxy @expected) expr + Just (SomeArgumentType _ stype) -> do + withRecovery (\e -> registerParseError e >> return expr) $ do + unifySomeExpr poff stype expr Nothing -> do registerParseError $ FancyError poff $ S.singleton $ ErrorFail $ T.unpack $ case kw of Just (ArgumentKeyword tkw) -> "unexpected parameter with keyword ‘" <> tkw <> "’" Nothing -> "unexpected parameter" - return sexpr + return expr functionArguments :: (Int -> Maybe ArgumentKeyword -> a -> TestParser b) -> TestParser a -> TestParser a -> (Int -> Text -> TestParser a) -> TestParser (FunctionArguments b) -- cgit v1.2.3