Merge pull request #5223 from unisonweb/cp/skip-eval

This commit is contained in:
Arya Irani 2024-07-15 17:30:59 +00:00 committed by GitHub
commit 9516c5983c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -40,7 +40,9 @@ import Unison.Syntax.Parser qualified as Parser
import Unison.Term (Term)
import Unison.Term qualified as Term
import Unison.UnisonFile (TypecheckedUnisonFile)
import Unison.UnisonFile qualified as UF
import Unison.UnisonFile.Names qualified as UF
import Unison.Util.Timing qualified as Timing
import Unison.WatchKind qualified as WK
handleLoad :: Maybe FilePath -> Cli ()
@ -65,11 +67,14 @@ loadUnisonFile sourceName text = do
pped <- Cli.prettyPrintEnvDeclFromNames names
let ppe = PPE.suffixifiedPPE pped
Cli.respond $ Output.Typechecked sourceName ppe sr unisonFile
(bindings, e) <- evalUnisonFile Permissive ppe unisonFile []
let e' = Map.map go e
go (ann, kind, _hash, _uneval, eval, isHit) = (ann, kind, eval, isHit)
when (not (null e')) do
Cli.respond $ Output.Evaluated text ppe bindings e'
when (not . null $ UF.watchComponents unisonFile) do
Timing.time "evaluating watches" do
(bindings, e) <- evalUnisonFile Permissive ppe unisonFile []
let e' = Map.map go e
go (ann, kind, _hash, _uneval, eval, isHit) = (ann, kind, eval, isHit)
when (not (null e')) do
Cli.respond $ Output.Evaluated text ppe bindings e'
#latestTypecheckedFile .= Just (Right unisonFile)
where
withFile ::
@ -81,8 +86,8 @@ loadUnisonFile sourceName text = do
pp <- Cli.getCurrentProjectPath
State.modify' \loopState ->
loopState
& #latestFile .~ Just (Text.unpack sourceName, False)
& #latestTypecheckedFile .~ Nothing
& (#latestFile .~ Just (Text.unpack sourceName, False))
& (#latestTypecheckedFile .~ Nothing)
Cli.Env {codebase, generateUniqueName} <- ask
uniqueName <- liftIO generateUniqueName
let parsingEnv =