removed pretty printing of tvars
This commit is contained in:
parent
e7cd3b2c3a
commit
0d30cb80e0
1 changed files with 62 additions and 61 deletions
|
|
@ -7,7 +7,7 @@
|
||||||
module TypeChecker.TypeCheckerHm where
|
module TypeChecker.TypeCheckerHm where
|
||||||
|
|
||||||
import Auxiliary (int, litType, maybeToRightM, unzip4)
|
import Auxiliary (int, litType, maybeToRightM, unzip4)
|
||||||
import qualified Auxiliary as Aux
|
import Auxiliary qualified as Aux
|
||||||
import Control.Monad.Except
|
import Control.Monad.Except
|
||||||
import Control.Monad.Identity (Identity, runIdentity)
|
import Control.Monad.Identity (Identity, runIdentity)
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
|
|
@ -18,14 +18,14 @@ import Data.Function (on)
|
||||||
import Data.List (foldl', nub, sortOn)
|
import Data.List (foldl', nub, sortOn)
|
||||||
import Data.List.Extra (unsnoc)
|
import Data.List.Extra (unsnoc)
|
||||||
import Data.Map (Map)
|
import Data.Map (Map)
|
||||||
import qualified Data.Map as M
|
import Data.Map qualified as M
|
||||||
import Data.Maybe (fromJust)
|
import Data.Maybe (fromJust)
|
||||||
import Data.Set (Set)
|
import Data.Set (Set)
|
||||||
import qualified Data.Set as S
|
import Data.Set qualified as S
|
||||||
import Debug.Trace (trace)
|
import Debug.Trace (trace)
|
||||||
import Grammar.Abs
|
import Grammar.Abs
|
||||||
import Grammar.Print (printTree)
|
import Grammar.Print (printTree)
|
||||||
import qualified TypeChecker.TypeCheckerIr as T
|
import TypeChecker.TypeCheckerIr qualified as T
|
||||||
|
|
||||||
{-
|
{-
|
||||||
TODO
|
TODO
|
||||||
|
|
@ -46,10 +46,11 @@ typecheck = onLeft msg . run . checkPrg
|
||||||
checkPrg :: Program -> Infer (T.Program' Type)
|
checkPrg :: Program -> Infer (T.Program' Type)
|
||||||
checkPrg (Program bs) = do
|
checkPrg (Program bs) = do
|
||||||
preRun bs
|
preRun bs
|
||||||
sgs <- gets sigs
|
-- sgs <- gets sigs
|
||||||
bs <- map snd . sortOn fst <$> bindCount bs
|
bs <- map snd . sortOn fst <$> bindCount bs
|
||||||
bs <- checkDef bs
|
bs <- checkDef bs
|
||||||
return . prettify sgs . T.Program $ bs
|
-- return . prettify sgs . T.Program $ bs
|
||||||
|
return . T.Program $ bs
|
||||||
|
|
||||||
-- | Send the map of user declared signatures to not rename stuff the user defined
|
-- | Send the map of user declared signatures to not rename stuff the user defined
|
||||||
prettify :: Map T.Ident (Maybe Type) -> T.Program' Type -> T.Program' Type
|
prettify :: Map T.Ident (Maybe Type) -> T.Program' Type -> T.Program' Type
|
||||||
|
|
@ -615,7 +616,7 @@ currently this is not the case, the TAll pattern match is incorrectly implemente
|
||||||
|
|
||||||
skipForalls :: Type -> Type
|
skipForalls :: Type -> Type
|
||||||
skipForalls = \case
|
skipForalls = \case
|
||||||
TAll _ t -> t
|
TAll _ t -> skipForalls t
|
||||||
t -> t
|
t -> t
|
||||||
|
|
||||||
foralls :: Type -> [T.Ident]
|
foralls :: Type -> [T.Ident]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue