Merge pull request #66 from abailly/no-prelude

check noprelude option when starting up without loading a file
This commit is contained in:
Edwin Brady 2019-07-30 16:47:08 +01:00 committed by GitHub
commit f39b736110
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 84 additions and 16 deletions

View File

@ -126,8 +126,10 @@ stMain opts
u <- newRef UST initUState
updateREPLOpts
session <- getSession
case fname of
Nothing => logTime "Loading prelude" $
when (not $ noprelude session) $
readPrelude
Just f => logTime "Loading main file" $
loadMainFile f

View File

@ -28,7 +28,7 @@ idrisTests
"basic011", "basic012", "basic013", "basic014", "basic015",
"basic016", "basic017", "basic018", "basic019", "basic020",
"basic021", "basic022", "basic023", "basic024", "basic025",
"basic026", "basic027",
"basic026", "basic027", "basic028",
"coverage001", "coverage002", "coverage003", "coverage004",
"error001", "error002", "error003", "error004", "error005",
"error006", "error007", "error008", "error009", "error010",
@ -143,4 +143,3 @@ main
where
testPaths : String -> List String -> List String
testPaths dir tests = map (\test => dir ++ "/" ++ test) tests

View File

@ -0,0 +1,49 @@
data Maybe a = Nothing
| Just a
infixl 1 >>=
(>>=) : Maybe a -> (a -> Maybe b) -> Maybe b
(>>=) Nothing k = Nothing
(>>=) (Just x) k = k x
data Nat : Type where
Z : Nat
S : Nat -> Nat
plus : Nat -> Nat -> Nat
plus Z y = y
plus (S k) y = S (plus k y)
maybeAdd' : Maybe Nat -> Maybe Nat -> Maybe Nat
maybeAdd' x y
= x >>= \x' =>
y >>= \y' =>
Just (plus x' y')
maybeAdd : Maybe Nat -> Maybe Nat -> Maybe Nat
maybeAdd x y
= do x' <- x
y' <- y
Just (plus x' y')
data Either : Type -> Type -> Type where
Left : a -> Either a b
Right : b -> Either a b
mEmbed : Maybe a -> Maybe (Either String a)
mEmbed Nothing = Just (Left "FAIL")
mEmbed (Just x) = Just (Right x)
mPatBind : Maybe Nat -> Maybe Nat -> Maybe Nat
mPatBind x y
= do Right res <- mEmbed (maybeAdd x y)
| Left err => Just Z
Just res
mLetBind : Maybe Nat -> Maybe Nat -> Maybe Nat
mLetBind x y
= do let Just res = maybeAdd x y
| Nothing => Just Z
Just res

View File

@ -0,0 +1,7 @@
Welcome to Idris 2 version 0.0. Enjoy yourself!
Main> 1/1: Building Do (Do.idr)
Main> Just (S (S (S Z)))
Main> Just Z
Main> Just (S (S (S Z)))
Main> Just Z
Main> Bye for now!

View File

@ -0,0 +1,6 @@
:l Do.idr
mPatBind (Just (S Z)) (Just (S (S Z)))
mPatBind (Just (S Z)) Nothing
mLetBind (Just (S Z)) (Just (S (S Z)))
mLetBind (Just (S Z)) Nothing
:q

5
tests/idris2/basic028/run Executable file
View File

@ -0,0 +1,5 @@
unset IDRIS2_PATH
$1 --no-prelude < input
rm -rf build