tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

sourceModuleFailures.tri (1828B)


      1 !import "source.module" !Local
      2 !import "source.object" !Local
      3 !import "io" !Local
      4 !import "prelude" !Local
      5 root = "__ROOT__"
      6 main = io (onResult_ (do onOk_
      7   _ <- onResult_ (sourceModuleBuild root
      8     "!import prelude *\n!export answer\nanswer = t\n")
      9     (_ : pure (ok t t))
     10     (_ : pure (err "accepted invalid module" t))
     11   _ <- mapIO (putStr "shadow-rejected\n") (_ : ok t t)
     12   _ <- onResult_ (sourceModuleBuild root
     13     "!import prelude *\n!import prelude *\n!export main\nmain = answer\n")
     14     (_ : pure (ok t t))
     15     (_ : pure (err "accepted invalid module" t))
     16   _ <- mapIO (putStr "duplicate-import-rejected\n") (_ : ok t t)
     17   _ <- onResult_ (sourceModuleBuild root
     18     "!export * from base\n!export * from prelude\n")
     19     (_ : pure (ok t t))
     20     (_ : pure (err "accepted invalid module" t))
     21   _ <- mapIO (putStr "duplicate-reexport-rejected\n") (_ : ok t t)
     22   _ <- onResult_ (sourceModuleBuild root
     23     "!export missing\nmain = t\n")
     24     (_ : pure (ok t t))
     25     (_ : pure (err "accepted invalid module" t))
     26   _ <- mapIO (putStr "missing-export-rejected\n") (_ : ok t t)
     27   _ <- onResult_ (sourceModuleBuild root
     28     "!import no-such-alias *\n!export main\nmain = t\n")
     29     (_ : pure (ok t t))
     30     (_ : pure (err "accepted invalid module" t))
     31   _ <- mapIO (putStr "missing-alias-rejected\n") (_ : ok t t)
     32   _ <- onResult_ (sourceObjectGet root sourceObjectTreeDomain "abc/../../outside")
     33     (problem : pure (if (equal? problem "invalid CAS digest")
     34       (ok t t) (err "accepted malformed CAS path" t)))
     35     (_ : pure (err "accepted malformed CAS path" t))
     36   _ <- onResult_ (sourceModuleBuild root
     37     "!export main\nmain = t\n!import prelude *\n")
     38     (_ : pure (ok t t))
     39     (_ : pure (err "accepted invalid module" t))
     40   pure (ok t t))
     41   (_ : putStrLn "failure-gate-failed")
     42   (_ : putStrLn "failure-gate-ok"))
     43 main