shithub: MicroHs

Download patch

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
--