Skip to content

Commit

Permalink
Merge pull request #376 from Yu-zh/zhangyu/annotate-array
Browse files Browse the repository at this point in the history
annotate array types
  • Loading branch information
bobzhang committed May 11, 2024
2 parents 130b0a2 + cb46e84 commit 5f093c9
Show file tree
Hide file tree
Showing 9 changed files with 97 additions and 91 deletions.
150 changes: 78 additions & 72 deletions array/array.mbt

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion array/blit.mbt
Expand Up @@ -56,7 +56,7 @@ pub fn copy[T](self : Array[T]) -> Array[T] {
}

test "copy" {
let a = [1, 2, 3, 4]
let a : Array[_] = [1, 2, 3, 4]
let b = a.copy()
inspect(b, content="[1, 2, 3, 4]")?
inspect(physical_equal(b, a), content="false")?
Expand Down
10 changes: 5 additions & 5 deletions array/sort.mbt
Expand Up @@ -321,7 +321,7 @@ fn bubble_sort[T : Compare](arr : ArraySlice[T]) -> Unit {
}

test "try_bubble_sort" {
let arr = [8, 7, 6, 5, 4, 3, 2, 1]
let arr : Array[_] = [8, 7, 6, 5, 4, 3, 2, 1]
let sorted = try_bubble_sort({ array: arr, start: 0, end: 8 })
@assertion.assert_eq(sorted, true)?
@assertion.assert_eq(arr, [1, 2, 3, 4, 5, 6, 7, 8])?
Expand Down Expand Up @@ -419,13 +419,13 @@ fn sift_down[T : Compare](arr : ArraySlice[T], index : Int) -> Unit {
}

fn test_sort(f : (Array[Int]) -> Unit) -> Result[Unit, String] {
let arr = [5, 4, 3, 2, 1]
let arr : Array[_] = [5, 4, 3, 2, 1]
f(arr)
@assertion.assert_eq(arr, [1, 2, 3, 4, 5])?
let arr = [5, 5, 5, 5, 1]
let arr : Array[_] = [5, 5, 5, 5, 1]
f(arr)
@assertion.assert_eq(arr, [1, 5, 5, 5, 5])?
let arr = [1, 2, 3, 4, 5]
let arr : Array[_] = [1, 2, 3, 4, 5]
f(arr)
@assertion.assert_eq(arr, [1, 2, 3, 4, 5])?
{
Expand Down Expand Up @@ -461,7 +461,7 @@ test "sort" {
}

test "stable_sort" {
let arr = [5, 1, 3, 4, 2]
let arr : Array[_] = [5, 1, 3, 4, 2]
arr.stable_sort()
@assertion.assert_eq(arr, [1, 2, 3, 4, 5])?
let arr = Array::make(1000, 0)
Expand Down
2 changes: 1 addition & 1 deletion array/sort_by.mbt
Expand Up @@ -160,7 +160,7 @@ fn bubble_sort_by[T](arr : ArraySlice[T], cmp : (T, T) -> Int) -> Unit {
}

test "try_bubble_sort" {
let arr = [8, 7, 6, 5, 4, 3, 2, 1]
let arr : Array[_] = [8, 7, 6, 5, 4, 3, 2, 1]
let sorted = try_bubble_sort_by(
{ array: arr, start: 0, end: 8 },
fn(a, b) { a - b },
Expand Down
2 changes: 1 addition & 1 deletion immutable_hashmap/bitset.mbt
Expand Up @@ -102,7 +102,7 @@ test "Bitset::size" {

test "Bitset::ctpop" {
inspect(
[0, 0xf0f0f0f0, 0x3c3c0ff0].map(fn { x => x.popcnt() }),
([0, 0xf0f0f0f0, 0x3c3c0ff0] : Array[_]).map(fn { x => x.popcnt() }),
content="[0, 16, 16]",
)?
}
12 changes: 6 additions & 6 deletions math/trigonometric.mbt
Expand Up @@ -146,13 +146,13 @@ let vf = [
]

test "sin" {
let sin_res = [
let sin_res : Array[_] = [
-9.6466616586009283766724726e-01, 9.9338225271646545763467022e-01, -2.7335587039794393342449301e-01,
9.5586257685042792878173752e-01, -2.099421066779969164496634e-01, 2.135578780799860532750616e-01,
-8.694568971167362743327708e-01, 4.019566681155577786649878e-01, 9.6778633541687993721617774e-01,
-6.734405869050344734943028e-01,
]
let sin_res_large = [
let sin_res_large : Array[_] = [
-9.646661658548936063912e-01, 9.933822527198506903752e-01, -2.7335587036246899796e-01,
9.55862576853689321268e-01, -2.099421066862688873691e-01, 2.13557878070308981163e-01,
-8.694568970959221300497e-01, 4.01956668098863248917e-01, 9.67786335404528727927e-01,
Expand All @@ -167,13 +167,13 @@ test "sin" {
}

test "cos" {
let cos_res = [
let cos_res : Array[_] = [
2.634752140995199110787593e-01, 1.148551260848219865642039e-01, 9.6191297325640768154550453e-01,
2.938141150061714816890637e-01, -9.777138189897924126294461e-01, -9.7693041344303219127199518e-01,
4.940088096948647263961162e-01, -9.1565869021018925545016502e-01, -2.517729313893103197176091e-01,
-7.39241351595676573201918e-01,
]
let cos_res_large = [
let cos_res_large : Array[_] = [
2.634752141185559426744e-01, 1.14855126055543100712e-01, 9.61912973266488928113e-01,
2.9381411499556122552e-01, -9.777138189880161924641e-01, -9.76930413445147608049e-01,
4.940088097314976789841e-01, -9.15658690217517835002e-01, -2.51772931436786954751e-01,
Expand All @@ -188,13 +188,13 @@ test "cos" {
}

test "tan" {
let tan_res = [
let tan_res : Array[_] = [
-3.661316565040227801781974e+00, 8.64900232648597589369854e+00, -2.8417941955033612725238097e-01,
3.253290185974728640827156e+00, 2.147275640380293804770778e-01, -2.18600910711067004921551e-01,
-1.760002817872367935518928e+00, -4.389808914752818126249079e-01, -3.843885560201130679995041e+00,
9.10988793377685105753416e-01,
]
let tan_res_large = [
let tan_res_large : Array[_] = [
-3.66131656475596512705e+00, 8.6490023287202547927e+00, -2.841794195104782406e-01,
3.2532901861033120983e+00, 2.14727564046880001365e-01, -2.18600910700688062874e-01,
-1.760002817699722747043e+00, -4.38980891453536115952e-01, -3.84388555942723509071e+00,
Expand Down
4 changes: 2 additions & 2 deletions mutable_set/mutable_set.mbt
Expand Up @@ -755,7 +755,7 @@ pub fn to_list[T : Compare](self : MutableSet[T]) -> List[T] {

/// Convert MutableSet[T] to Array[T], the result must be ordered.
pub fn to_array[T : Compare](self : MutableSet[T]) -> Array[T] {
fn aux(set : Option[Node[T]]) {
fn aux(set : Option[Node[T]]) -> Array[_] {
match set {
None => []
Some(node) =>
Expand Down Expand Up @@ -785,7 +785,7 @@ pub fn to_string[T : Compare + Show](self : MutableSet[T]) -> String {
}

fn to_array[T](self : Node[T]) -> Array[T] {
fn aux(n : Option[Node[T]]) {
fn aux(n : Option[Node[T]]) -> Array[_] {
match n {
None => abort("Impossible to reach")
_ =>
Expand Down
2 changes: 1 addition & 1 deletion strconv/decimal.mbt
Expand Up @@ -604,7 +604,7 @@ test "to_string" {
}

test "shift" {
let tests = [
let tests : Array[_] = [
(0L, 100, "0"),
(0L, -100, "0"),
(1L, 100, "1267650600228229401496703205376"),
Expand Down
4 changes: 2 additions & 2 deletions tuple/tuple_test.mbt
Expand Up @@ -188,7 +188,7 @@ test "debug_write" {
let tuple2 = (1, 2)
let tuple3 = ("a", "b", "c")
let tuple4 = (1, 2, 3, "hello")
let tuple5 = (List::Cons(1, Nil), "2", 3, [4], 5)
let tuple5 = (List::Cons(1, Nil), "2", 3, ([4] : Array[_]), 5)
let buf = Buffer::make(0)
tuple2.debug_write(buf)
inspect(buf, content="(1, 2)")?
Expand All @@ -207,7 +207,7 @@ test "to_string" {
let tuple2 = (1, 2)
let tuple3 = ("a", "b", "c")
let tuple4 = (1, 2, 3, "hello")
let tuple5 = (List::Cons(1, Nil), "2", 3, [4], 5)
let tuple5 = (List::Cons(1, Nil), "2", 3, ([4] : Array[_]), 5)
inspect(tuple2, content="(1, 2)")?
inspect(tuple3, content="(a, b, c)")?
inspect(tuple4, content="(1, 2, 3, hello)")?
Expand Down

0 comments on commit 5f093c9

Please sign in to comment.