ref: 7d7fdb28416445dc7a44dd53fa415312036b094f
parent: 28c2e7dd96c57255aefd4c30a4615d432ba6f2f8
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Wed Sep 20 10:12:16 EDT 2023
Fast special tcPat case.
--- a/src/MicroHs/TypeCheck.hs
+++ b/src/MicroHs/TypeCheck.hs
@@ -979,6 +979,8 @@
T.return (pp, aalts)
tcPat ::forall a . EType -> EPat -> (EPat -> T a) -> T a
+tcPat t p@(EVar v) ta | not (isConIdent v) = T.do -- simple special case
+ withExtVals [(v, t)] $ ta p
tcPat t ap ta = T.do
-- traceM $ "tcPat: " ++ show ap
env <- T.mapM (\ v -> (v,) <$> newUVar) $ filter (not . isUnderscore) $ patVars ap
--
⑨