Restructure the Standard Library (#1245)

Split std-lib into two libraries: Base and Test.
This commit is contained in:
Dmitry Bushev 2020-10-29 08:48:48 +03:00 committed by GitHub
parent 79b718e28b
commit 36694e2496
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
85 changed files with 238 additions and 241 deletions

View File

@ -260,13 +260,13 @@ jobs:
shell: bash
if: runner.os != 'Windows'
run: |
$ENGINE_DIST_DIR/bin/enso --run test/Test
$ENGINE_DIST_DIR/bin/enso --run test/Tests
- name: Test Engine Distribution (Windows)
shell: bash
if: runner.os == 'Windows'
run: |
$ENGINE_DIST_DIR/bin/enso.bat --run test/Test
$ENGINE_DIST_DIR/bin/enso.bat --run test/Tests
# Publish
- name: Publish the Engine Distribution Artifact

View File

@ -1,8 +1,8 @@
from Base import all
import Base.Time.Time
import Base.Time.Duration
import Base.Time.Time_Of_Day
import Base.Time.Zone
import Base.Data.Time.Time
import Base.Data.Time.Duration
import Base.Data.Time.Time_Of_Day
import Base.Data.Time.Zone
polyglot java import java.time.Instant
polyglot java import java.time.LocalDate
@ -66,7 +66,7 @@ type Date
example, "d MMM yyyy" will format "2011-12-03" as "3 Dec 2011".
For the list of accepted symbols in pattern refer to
`Base.Time.Time.format` doc.
`Base.Data.Time.Time.format` doc.
> Example
Format "2020-06-02" as "2 June 2020"
@ -122,7 +122,7 @@ parse text =
## Obtains an instance of `Date` from a text using custom format.
For the list of accepted symbols in pattern refer to
`Base.Time.Time.format` doc.
`Base.Data.Time.Time.format` doc.
> Example
Parse "1999-1-1" as Date.

View File

@ -1,5 +1,5 @@
from Base import all
import Base.Time.Time
import Base.Data.Time.Time
polyglot java import java.time.Duration as Java_Duration
polyglot java import java.time.Period as Java_Period

View File

@ -1,8 +1,8 @@
from Base import all
import Base.Time.Date
import Base.Time.Duration
import Base.Time.Time_Of_Day
import Base.Time.Zone
import Base.Data.Time.Date
import Base.Data.Time.Duration
import Base.Data.Time.Time_Of_Day
import Base.Data.Time.Zone
polyglot java import java.time.ZonedDateTime
polyglot java import java.time.format.DateTimeFormatter

View File

@ -1,8 +1,8 @@
from Base import all
import Base.Time.Date
import Base.Time.Duration
import Base.Time.Time
import Base.Time.Zone
import Base.Data.Time.Date
import Base.Data.Time.Duration
import Base.Data.Time.Time
import Base.Data.Time.Zone
polyglot java import java.time.Instant
polyglot java import java.time.LocalTime
@ -70,7 +70,7 @@ type Time_Of_Day
example, "HH-mm-ss.SSS" will format "16:21:10" as "16-21-10.323".
For the list of accepted symbols in pattern refer to
`Base.Time.Time.format` doc.
`Base.Data.Time.Time.format` doc.
> Example
Format "16:21:10" as "16:21:00.1234"
@ -130,7 +130,7 @@ parse text =
## Obtains an instance of Time_Of_Day from a text using custom format.
For the list of accepted symbols in pattern refer to
`Base.Time.Time.format` doc.
`Base.Data.Time.Time.format` doc.
> Example
Parse "04:30:20" as Time_Of_Day.

View File

@ -1,26 +1,26 @@
import Base.List
import Base.Vector
import Base.Number.Extensions
import Base.Text.Extensions
import Base.Data.Number.Extensions
import Base.Data.Text.Extensions
import Base.Data.List
import Base.Data.Vector
import Base.System.File
import Base.Meta.Enso_Project
import Base.Meta.Meta
import Base.Meta
import Base.Error.Extensions
import Base.Polyglot.Java
import Base.Data.Map
import Base.Data.Json
from Builtins import Unit, Number, Integer, Any, True, False, Cons, Boolean
export Base.Meta.Meta
export Base.Meta
from Builtins export all hiding Meta
export Base.Data.Map
export Base.Data.Json
from Base.Data.Number.Extensions export all hiding Math, String
from Base.Data.Text.Extensions export Text
from Base.Meta.Enso_Project export all
from Base.List export Nil, Cons
from Base.Vector export Vector
from Base.Number.Extensions export all hiding Math, String
from Base.Text.Extensions export Text
from Base.Data.List export Nil, Cons
from Base.Data.Vector export Vector
from Base.Error.Extensions export all
from Base.Polyglot.Java export all
export Base.System.File

View File

@ -1,17 +1,17 @@
from Base import all
import Base.Data.Json
import Base.Net.Proxy
import Base.Net.Uri
import Base.Net.Http.Form
import Base.Net.Http.Header
import Base.Net.Http.Method
import Base.Net.Http.Request
import Base.Net.Http.Request.Body as Request_Body
import Base.Net.Http.Response
import Base.Net.Http.Version
import Base.Network.Proxy
import Base.Network.Uri
import Base.Network.Http.Form
import Base.Network.Http.Header
import Base.Network.Http.Method
import Base.Network.Http.Request
import Base.Network.Http.Request.Body as Request_Body
import Base.Network.Http.Response
import Base.Network.Http.Version
import Base.System.File
import Base.Time.Duration
import Base.Time.Time
import Base.Data.Time.Duration
import Base.Data.Time.Time
polyglot java import java.time.Duration as Java_Duration
polyglot java import java.net.InetSocketAddress

View File

@ -1,5 +1,5 @@
from Base import all
import Base.Vector
import Base.Data.Vector
type To_Form

View File

@ -1,10 +1,9 @@
from Base import all
import Base.Vector
import Base.Net.Uri
import Base.Net.Http.Form
import Base.Net.Http.Header
import Base.Net.Http.Method
import Base.Net.Http.Request.Body as Request_Body
import Base.Network.Uri
import Base.Network.Http.Form
import Base.Network.Http.Header
import Base.Network.Http.Method
import Base.Network.Http.Request.Body as Request_Body
import Base.System.File
polyglot java import org.enso.base.Text_Utils

View File

@ -1,9 +1,9 @@
from Base import all
import Base.Net.Http.Header
import Base.Net.Http.Response.Body as Response_Body
import Base.Net.Http.Status_Code
import Base.Vector
import Base.Data.Vector
import Base.Network.Http.Header
import Base.Network.Http.Response.Body as Response_Body
import Base.Network.Http.Status_Code
polyglot java import org.enso.base.Http_Utils

View File

@ -1,5 +1,5 @@
import Base.Process.Exit_Code
from Base.Vector import Vector
import Base.System.Process.Exit_Code
from Base.Data.Vector import Vector
from Builtins import Array, System, True, False
## The builder object that is used to create operating system processes.

View File

@ -0,0 +1,6 @@
license: APLv2
name: Test
enso-version: default
version: "0.0.1"
author: "Enso Team <contact@enso.org>"
maintainer: "Enso Team <contact@enso.org>"

View File

@ -0,0 +1,2 @@
import Test.Test
from Test.Test export all

View File

@ -46,7 +46,7 @@ Unqualified imports are broken up into three main categories:
module name, followed by an optional rename part (using the `as` keyword),
then the keywords `import all`. For example:
```
from Base.List as Builtin_List import all
from Base.Data.List as Builtin_List import all
```
2. **Restricted Imports:** These import a specified set of names for use as
automatically resolved referent names. They consist of the keyword `from`,
@ -54,7 +54,7 @@ Unqualified imports are broken up into three main categories:
word `import` followed by a coma-separated list of referent names to be
imported. For example:
```
from Base.List import Cons, Nil
from Base.Data.List import Cons, Nil
```
3. **Hiding Imports:** These are the inverse of restricted imports, and import
_all_ symbosl other than the named ones. They consist of the `from` keyword,
@ -62,7 +62,7 @@ Unqualified imports are broken up into three main categories:
words `import all hiding`, followed by a coma-separated list of referent
names to be excluded from the import. For example:
```
from Base.List import all hiding Cons, Nil
from Base.Data.List import all hiding Cons, Nil
```
Imports in Enso _may_ introduce ambiguous symbols, but this is not an error
@ -92,7 +92,7 @@ Unqualified exports are broken up into three main categories:
module name, followed by an optional rename part (using the `as` keyword),
then the keywords `export all`. For example:
```
from Base.List as Builtin_List export all
from Base.Data.List as Builtin_List export all
```
2. **Restricted Exports:** These export a specified set of names, behaving as
though they were redefined in the current scope. They consist of the keyword
@ -100,7 +100,7 @@ Unqualified exports are broken up into three main categories:
the word `export` followed by a coma-separated list of names to be exported.
For example:
```
from Base.List export Cons, Nil, from_vector
from Base.Data.List export Cons, Nil, from_vector
```
3. **Hiding Exports:** These are the inverse of restricted exports, and export
_all_ symbols other than the named ones. They consist of the `from` keyword,
@ -108,7 +108,7 @@ Unqualified exports are broken up into three main categories:
words `export all hiding`, followed by a coma-separated list of names to be
excluded from the export. For example:
```
from Base.List export all hiding from_vector, Nil
from Base.Data.List export all hiding from_vector, Nil
```
In essence, an export allows the user to "paste" the contents of the module

View File

@ -373,8 +373,8 @@ propose an explicit mechanism for access modification that works as follows:
modifier from the file in which you want to access those elements.
```ruby
import private Base.Vector
import unsafe Base.Atom
import private Base.Data.Vector
import unsafe Base.Data.Atom
```
- These modified imports are available in _all_ scopes, so it is possible to
@ -382,8 +382,8 @@ propose an explicit mechanism for access modification that works as follows:
```ruby
function_using_modifiers v x =
import private Base.Vector
import unsafe Base.Atom
import private Base.Data.Vector
import unsafe Base.Data.Atom
v.mutate_at_index 0 (_ -> x)
x = MyAtom.mutate_field name="sum" (with = x -> x + 20)

View File

@ -46,8 +46,8 @@ Access modifiers in Enso work as follows:
modifier from the file in which you want to access those elements.
```ruby
import private Base.Vector
import unsafe Base.Atom
import private Base.Data.Vector
import unsafe Base.Data.Atom
```
- These modified imports are available in _all_ scopes, so it is possible to
@ -55,8 +55,8 @@ Access modifiers in Enso work as follows:
```ruby
function_using_modifiers v x =
import private Base.Vector
import unsafe Base.Atom
import private Base.Data.Vector
import unsafe Base.Data.Atom
v.mutate_at_index 0 (_ -> x)
x = MyAtom.mutate_field name="sum" (with = x -> x + 20)

View File

@ -5413,7 +5413,7 @@ object IR {
case object UnresolvedSequenceMacro extends Reason {
override def explain(originalName: Name): String =
"No definition for the sequence macro could be found. Try" +
" importing the default definition from the Base.Vector module."
" importing the default definition from the Base.Data.Vector module."
}
/** An error coming from an unknown annotation name.

View File

@ -74,7 +74,7 @@ case object VectorLiterals extends IRPass {
.resolvedExports
.map(_.module)
)
.find(_.getName.toString == "Base.Vector")
.find(_.getName.toString == "Base.Data.Vector")
val name = IR.Name.Literal("<Sequence Macro>", isReferent = true, None)
module
.map { module =>

View File

@ -1,6 +1,6 @@
from Base import all
import Builtins
import Base.Bench_Utils
import Test.Bench
polyglot java import java.util.Random
@ -27,8 +27,8 @@ main =
list = here.gen_list mil
vec = Vector.new mil (ix -> ix + 1)
vec_decimal = Vector.new mil (ix -> ix + 0.0)
Bench_Utils.measure (here.sum_list_meta list) "list meta-fold" 1000 10
Bench_Utils.measure (list.fold 0 (+)) "list fold" 1000 10
Bench_Utils.measure (vec.fold 0 (+)) "vector fold" 1000 10
Bench_Utils.measure (vec_decimal.fold 0 (+)) "vector decimal fold" 1000 10
Bench_Utils.measure (here.build_map 10000) "build a map" 100 10
Bench.measure (here.sum_list_meta list) "list meta-fold" 1000 10
Bench.measure (list.fold 0 (+)) "list fold" 1000 10
Bench.measure (vec.fold 0 (+)) "vector fold" 1000 10
Bench.measure (vec_decimal.fold 0 (+)) "vector decimal fold" 1000 10
Bench.measure (here.build_map 10000) "build a map" 100 10

View File

@ -1,6 +1,6 @@
from Base import all
import Base.Bench_Utils
import Test.Bench
prep_json size =
single = '{"foo": 543}, {"bar": false}'
@ -10,4 +10,4 @@ prep_json size =
main =
large_json = here.prep_json 1000000
Bench_Utils.measure (Base.Json.parse large_json) "parse json" 10 10
Bench.measure (Base.Json.parse large_json) "parse json" 10 10

View File

@ -1,4 +1,4 @@
import Base.Bench_Utils
import Test.Bench
from Base import all
polyglot java import java.lang.Long
@ -69,17 +69,17 @@ sum_co n =
main =
hundred_mil = 100000000
IO.println "Measuring Sum TCO Corecursive"
Bench_Utils.measure (here.sum_co hundred_mil) "sum_tco_corecursive" 100 10
Bench.measure (here.sum_co hundred_mil) "sum_tco_corecursive" 100 10
IO.println "Measuring Sum TCO Decimal"
Bench_Utils.measure (here.sum_tco_decimal hundred_mil) "sum_tco_float" 100 10
Bench.measure (here.sum_tco_decimal hundred_mil) "sum_tco_float" 100 10
IO.println "Measuring SumTCO"
Bench_Utils.measure (here.sum_tco hundred_mil) "sum_tco" 100 10
Bench.measure (here.sum_tco hundred_mil) "sum_tco" 100 10
IO.println "Measuring SumTCO Java"
Bench_Utils.measure (here.sum_tco_java hundred_mil) "sum_tco_java" 100 10
Bench.measure (here.sum_tco_java hundred_mil) "sum_tco_java" 100 10
IO.println "Measuring SumTCO Eval"
Bench_Utils.measure (here.sum_tco_eval hundred_mil) "sum_tco_eval" 100 10
Bench.measure (here.sum_tco_eval hundred_mil) "sum_tco_eval" 100 10
IO.println "Measuring State"
Bench_Utils.measure (here.sum_state hundred_mil) "sum_state" 100 10
Bench.measure (here.sum_state hundred_mil) "sum_state" 100 10
IO.println "Measuring Co-State"
Bench_Utils.measure (here.sum_co_state hundred_mil) "sum_co_state" 100 10
Bench.measure (here.sum_co_state hundred_mil) "sum_co_state" 100 10
IO.println "Bye."

View File

@ -1,6 +1,6 @@
from Base import all
from Builtins import Prim_Text_Helper
import Base.Bench_Utils
import Test.Bench
polyglot java import java.lang.StringBuilder
@ -16,6 +16,6 @@ build_long_bldr n =
res
main =
Bench_Utils.measure (here.build_long_bldr 1000000) "string append bldr" 100 10
Bench_Utils.measure (here.build_long 1000000) "string append" 100 10
Bench.measure (here.build_long_bldr 1000000) "string append bldr" 100 10
Bench.measure (here.build_long 1000000) "string append" 100 10
IO.println "Bye"

View File

@ -1,45 +0,0 @@
import Base.Test
import Test.Semantic.Import_Loop.Spec as Import_Loop_Spec
import Test.Semantic.Deep_Export.Spec as Deep_Export_Spec
import Test.Semantic.Java_Interop_Spec
import Test.Semantic.Error_Spec
import Test.Semantic.Names_Spec
import Test.Semantic.Meta_Spec
import Test.List_Spec
import Test.Data.Map_Spec
import Test.Data.Json_Spec
import Test.Number_Spec
import Test.Process_Spec
import Test.Vector.Spec as Vector_Spec
import Test.Net.Http_Spec
import Test.Net.Uri_Spec
import Test.Net.Http.Header_Spec
import Test.Net.Http.Request_Spec
import Test.Numbers.Spec as Numbers_Spec
import Test.Text.Spec as Text_Spec
import Test.Time.Spec as Time_Spec
import Test.System.File_Spec
main = Test.Suite.runMain <|
List_Spec.spec
Number_Spec.spec
Import_Loop_Spec.spec
Names_Spec.spec
Error_Spec.spec
Deep_Export_Spec.spec
Process_Spec.spec
Java_Interop_Spec.spec
Vector_Spec.spec
Numbers_Spec.spec
Text_Spec.spec
Time_Spec.spec
File_Spec.spec
Meta_Spec.spec
Map_Spec.spec
Json_Spec.spec
Uri_Spec.spec
Header_Spec.spec
Request_Spec.spec
Http_Spec.spec

View File

@ -1,7 +0,0 @@
import Base.Test
spec = describe "Number" <|
it "should define addition" <|
2+3 . should_equal 5
it "should define multiplication" <|
2*3 . should_equal 6

View File

@ -1,3 +0,0 @@
from Test.Semantic.Deep_Export.Internal_1 import Const
my_fun = Const

View File

@ -1,3 +0,0 @@
from Test.Semantic.Deep_Export.Internal_2 import Const
from Test.Semantic.Deep_Export.Internal_2 export Const

View File

@ -1,3 +0,0 @@
import Test.Semantic.Deep_Export.Internal_3
const = Internal_3.util.const + 5.bar

View File

@ -1,3 +0,0 @@
from Test.Semantic.Deep_Export.Internal_4 import Internal_5
export Test.Semantic.Deep_Export.Internal_4 as Util

View File

@ -1,3 +0,0 @@
import Test.Semantic.Deep_Export.Internal_5
from Test.Semantic.Deep_Export.Internal_5 export Const

View File

@ -1,3 +0,0 @@
from Test.Semantic.Import_Loop.B import My_Type
foo = My_Type.bar 10

View File

@ -1,15 +0,0 @@
from Base import all
import Base.Test
import Test.Time.Duration_Spec
import Test.Time.Time_Of_Day_Spec
import Test.Time.Date_Spec
import Test.Time.Time_Spec
import Test.Time.Zone_Spec
spec =
Zone_Spec.spec
Time_Of_Day_Spec.spec
Date_Spec.spec
Time_Spec.spec
Duration_Spec.spec

View File

@ -1,4 +1,4 @@
name: Test
name: Tests
enso-version: default
version: 0.0.1
license: MIT

View File

@ -1,6 +1,6 @@
from Base import all
import Base.Test
import Test
type Author name year_of_birth
type Book title author

View File

@ -1,4 +1,4 @@
import Base.Test
import Test
from Base import all
spec = describe "List" <|
@ -28,4 +28,3 @@ spec = describe "List" <|
any_eq_five = l.any (== 5)
any_even.should_be_true
any_eq_five.should_be_false

View File

@ -1,6 +1,6 @@
from Base import all
import Base.Test
import Test
spec = describe "Maps" <|
it "should allow inserting and looking up values" <|

View File

@ -1,6 +1,6 @@
from Base import all
import Base.Test
import Test
Integer.is_even = this % 2 == 0
Decimal.get_fun_factor = "Wow, " + this.to_text + " is such a fun number!"
@ -45,6 +45,10 @@ spec =
it "should allow defining extension methods through the Decimal type" <|
32.5.get_fun_factor.should_equal "Wow, 32.5 is such a fun number!"
describe "Numbers" <|
it "should define addition" <|
2+3 . should_equal 5
it "should define multiplication" <|
2*3 . should_equal 6
it "should expose comparison operators" <|
(3 < hundred_factorial).should_be_true
(hundred_factorial < 3).should_be_false

View File

@ -1,5 +1,5 @@
from Base import all
import Base.Test
import Test
type Auto a

View File

@ -1,11 +1,11 @@
from Base import all
import Base.Test
import Base.Time.Date
import Base.Time.Duration
import Base.Time.Time
import Base.Time.Time_Of_Day
import Base.Time.Zone
import Test
import Base.Data.Time.Date
import Base.Data.Time.Duration
import Base.Data.Time.Time
import Base.Data.Time.Time_Of_Day
import Base.Data.Time.Zone
spec =
describe "Date" <|

View File

@ -1,8 +1,8 @@
from Base import all
import Base.Test
import Base.Time.Duration
import Base.Time.Time
import Test
import Base.Data.Time.Duration
import Base.Data.Time.Time
spec =
describe "Duration" <|

View File

@ -0,0 +1,14 @@
from Base import all
import Tests.Data.Time.Duration_Spec
import Tests.Data.Time.Time_Of_Day_Spec
import Tests.Data.Time.Date_Spec
import Tests.Data.Time.Time_Spec
import Tests.Data.Time.Zone_Spec
spec =
Zone_Spec.spec
Time_Of_Day_Spec.spec
Date_Spec.spec
Time_Spec.spec
Duration_Spec.spec

View File

@ -1,11 +1,11 @@
from Base import all
import Base.Test
import Base.Time.Date
import Base.Time.Duration
import Base.Time.Time
import Base.Time.Time_Of_Day
import Base.Time.Zone
import Test
import Base.Data.Time.Date
import Base.Data.Time.Duration
import Base.Data.Time.Time
import Base.Data.Time.Time_Of_Day
import Base.Data.Time.Zone
spec =
describe "Time_Of_Day" <|

View File

@ -1,9 +1,9 @@
from Base import all
import Base.Test
import Base.Time.Time
import Base.Time.Duration
import Base.Time.Zone
import Test
import Base.Data.Time.Time
import Base.Data.Time.Duration
import Base.Data.Time.Zone
spec =
describe "Time" <|

View File

@ -1,7 +1,7 @@
from Base import all
import Base.Test
import Base.Time.Zone
import Test
import Base.Data.Time.Zone
spec =
describe "Zone" <|

View File

@ -1,5 +1,5 @@
from Base import all
import Base.Test
import Test
spec = describe "Vectors" <|
it "should allow accessing elements" <|

43
test/Tests/src/Main.enso Normal file
View File

@ -0,0 +1,43 @@
import Test
import Tests.Semantic.Import_Loop.Spec as Import_Loop_Spec
import Tests.Semantic.Deep_Export.Spec as Deep_Export_Spec
import Tests.Semantic.Java_Interop_Spec
import Tests.Semantic.Error_Spec
import Tests.Semantic.Names_Spec
import Tests.Semantic.Meta_Spec
import Tests.Data.Json_Spec
import Tests.Data.List_Spec
import Tests.Data.Map_Spec
import Tests.Data.Numbers_Spec
import Tests.Data.Text_Spec
import Tests.Data.Time.Spec as Time_Spec
import Tests.Data.Vector_Spec
import Tests.Network.Http_Spec
import Tests.Network.Uri_Spec
import Tests.Network.Http.Header_Spec
import Tests.Network.Http.Request_Spec
import Tests.System.File_Spec
import Tests.System.Process_Spec
main = Test.Suite.runMain <|
List_Spec.spec
Numbers_Spec.spec
Import_Loop_Spec.spec
Names_Spec.spec
Error_Spec.spec
Deep_Export_Spec.spec
Process_Spec.spec
Java_Interop_Spec.spec
Vector_Spec.spec
Text_Spec.spec
Time_Spec.spec
File_Spec.spec
Meta_Spec.spec
Map_Spec.spec
Json_Spec.spec
Uri_Spec.spec
Header_Spec.spec
Request_Spec.spec
Http_Spec.spec

View File

@ -1,7 +1,7 @@
from Base import all
import Base.Test
import Base.Net.Http.Header
import Test
import Base.Network.Http.Header
spec =
describe "Header" <|

View File

@ -1,12 +1,12 @@
from Base import all
import Base.Test
import Base.Net.Http.Form
import Base.Net.Http.Header
import Base.Net.Http.Method
import Base.Net.Http.Request
import Base.Net.Http.Request.Body as Request_Body
import Base.Net.Uri
import Test
import Base.Network.Http.Form
import Base.Network.Http.Header
import Base.Network.Http.Method
import Base.Network.Http.Request
import Base.Network.Http.Request.Body as Request_Body
import Base.Network.Uri
spec =
test_uri = Uri.parse "https://httpbin.org/post"

View File

@ -1,18 +1,18 @@
from Base import all
import Base.Data.Json
import Base.Test
import Base.Net.Http
import Base.Net.Http.Form
import Base.Net.Http.Header
import Base.Net.Http.Request
import Base.Net.Http.Request.Body as Request_Body
import Base.Net.Http.Status_Code
import Base.Net.Http.Version
import Base.Net.Proxy
import Base.Net.Uri
import Test
import Base.Network.Http
import Base.Network.Http.Form
import Base.Network.Http.Header
import Base.Network.Http.Request
import Base.Network.Http.Request.Body as Request_Body
import Base.Network.Http.Status_Code
import Base.Network.Http.Version
import Base.Network.Proxy
import Base.Network.Uri
import Base.System.File
import Base.Time.Duration
import Base.Data.Time.Duration
polyglot java import java.lang.System
polyglot java import java.util.Objects

View File

@ -1,7 +1,7 @@
from Base import all
import Base.Test
import Base.Net.Uri
import Test
import Base.Network.Uri
spec =
describe "Uri" <|

View File

@ -0,0 +1,3 @@
from Tests.Semantic.Deep_Export.Internal_1 import Const
my_fun = Const

View File

@ -0,0 +1,3 @@
from Tests.Semantic.Deep_Export.Internal_2 import Const
from Tests.Semantic.Deep_Export.Internal_2 export Const

View File

@ -0,0 +1,3 @@
import Tests.Semantic.Deep_Export.Internal_3
const = Internal_3.util.const + 5.bar

View File

@ -0,0 +1,3 @@
from Tests.Semantic.Deep_Export.Internal_4 import Internal_5
export Tests.Semantic.Deep_Export.Internal_4 as Util

View File

@ -0,0 +1,3 @@
import Tests.Semantic.Deep_Export.Internal_5
from Tests.Semantic.Deep_Export.Internal_5 export Const

View File

@ -1,8 +1,7 @@
import Base.Test
import Test.Semantic.Deep_Export.Internal
import Test
import Tests.Semantic.Deep_Export.Internal
spec =
describe "Deep Exports" <|
it "should allow to re-export a symbol through a module hierarchy" <|
Internal.my_fun.should_equal 478

View File

@ -1,5 +1,5 @@
from Base import all
import Base.Test
import Test
type My_Type foo
@ -18,4 +18,3 @@ spec =
err_3.target.to_text.should_equal "(My_Type False)"
err_3.method_name.should_equal "nope"

View File

@ -0,0 +1,3 @@
from Tests.Semantic.Import_Loop.B import My_Type
foo = My_Type.bar 10

View File

@ -1,4 +1,4 @@
import Test.Semantic.Import_Loop.A
import Tests.Semantic.Import_Loop.A
type My_Type

View File

@ -1,5 +1,5 @@
import Base.Test
import Test.Semantic.Import_Loop.B
import Test
import Tests.Semantic.Import_Loop.B
spec = describe "Looping Imports" <|
it "should behave correctly and not loop the compiler" <|

View File

@ -1,5 +1,5 @@
from Base import all
import Base.Test
import Test
polyglot java import java.lang.Long
polyglot java import java.lang.Integer

View File

@ -1,5 +1,5 @@
from Base import all
import Base.Test
import Test
type My_Type foo bar baz

View File

@ -1,5 +1,5 @@
from Test.Names.Definitions import My_Type, Another_Constant
import Base.Test
from Tests.Names.Definitions import My_Type, Another_Constant
import Test
Definitions.Foo.my_method = case this of
Definitions.Foo x y z -> x * y * z

View File

@ -1,5 +1,5 @@
from Base import all
import Base.Test
import Test
spec =
sample_file = Enso_Project.data / "sample.txt"
@ -54,4 +54,3 @@ spec =
f.read.should_equal 'line 1!\nline 2!'
f.delete
f.exists.should_be_false

View File

@ -1,8 +1,8 @@
from Base import all
import Base.Process
from Base.Process.Exit_Code import Exit_Success, Exit_Failure
import Base.System.Process
from Base.System.Process.Exit_Code import Exit_Success, Exit_Failure
import Base.System.Platform
import Base.Test
import Test
spec = describe "Process" <|
it "should call simple command" <|