mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-24 08:47:19 +03:00
Merge branch 'wip/rt1' of github.com:unisonweb/unison into wip/rt1
This commit is contained in:
commit
aee8de62d6
@ -7,12 +7,15 @@
|
||||
module Unison.Builtin where
|
||||
|
||||
import Control.Arrow ( first )
|
||||
import Control.Applicative ( liftA2 )
|
||||
import Control.Applicative ( liftA2
|
||||
, (<|>)
|
||||
)
|
||||
import qualified Data.Map as Map
|
||||
import Data.Set ( Set )
|
||||
import qualified Data.Set as Set
|
||||
import qualified Text.Megaparsec.Error as MPE
|
||||
import qualified Unison.ABT as ABT
|
||||
import Unison.Codebase.CodeLookup ( CodeLookup(..) )
|
||||
import qualified Unison.ConstructorType as CT
|
||||
import Unison.DataDeclaration ( DataDeclaration'
|
||||
, EffectDeclaration'
|
||||
@ -140,6 +143,14 @@ builtinDataDecls = l
|
||||
builtinEffectDecls :: Var v => [(v, (R.Reference, EffectDeclaration v))]
|
||||
builtinEffectDecls = []
|
||||
|
||||
codeLookup :: (Applicative m, Var v) => CodeLookup m v Ann
|
||||
codeLookup = CodeLookup (const $ pure Nothing) $ \r ->
|
||||
pure
|
||||
$ lookup r [ (r, Right x) | (R.DerivedId r, x) <- snd <$> builtinDataDecls ]
|
||||
<|> lookup
|
||||
r
|
||||
[ (r, Left x) | (R.DerivedId r, x) <- snd <$> builtinEffectDecls ]
|
||||
|
||||
toSymbol :: Var v => R.Reference -> v
|
||||
toSymbol (R.Builtin txt) = Var.named txt
|
||||
toSymbol _ = error "unpossible"
|
||||
|
@ -109,9 +109,11 @@ makePassingTest rt how filepath = scope shortName $ do
|
||||
(True, Right file) -> do
|
||||
values <- io $ unpack <$> Data.Text.IO.readFile valueFile
|
||||
let untypedFile = UF.discardTypes file
|
||||
let term = Parsers.parseTerm values $ UF.toNames untypedFile
|
||||
watches <- io
|
||||
$ evaluateWatches mempty (const $ pure Nothing) rt untypedFile
|
||||
let term = Parsers.parseTerm values $ UF.toNames untypedFile
|
||||
watches <- io $ evaluateWatches Builtin.codeLookup
|
||||
(const $ pure Nothing)
|
||||
rt
|
||||
untypedFile
|
||||
case term of
|
||||
Right tm ->
|
||||
expect $ (view _4 <$> Map.elems watches) == [amap (const ()) tm]
|
||||
|
Loading…
Reference in New Issue
Block a user