diff --git a/builtin/array.mbt b/builtin/array.mbt index 2ce7d666..bf77dbe6 100644 --- a/builtin/array.mbt +++ b/builtin/array.mbt @@ -982,3 +982,7 @@ pub fn iter2[A](self : Array[A]) -> Iter2[Int, A] { }, ) } + +pub fn Array::default[T]() -> Array[T] { + [] +} diff --git a/builtin/array_test.mbt b/builtin/array_test.mbt index b1afdea0..9c25e395 100644 --- a/builtin/array_test.mbt +++ b/builtin/array_test.mbt @@ -566,3 +566,11 @@ test "array_dedup - edge cases" { array.dedup() inspect!(array, content="[1, 2, 3, 4, 5]") } + +struct MX { + mm_num : Array[Int] +} derive(Default, ToJson) + +test { + @json.inspect!(MX::default(), content={ "mm_num": [] }) +} diff --git a/builtin/builtin.mbti b/builtin/builtin.mbti index 54fd2a5b..ee9c282a 100644 --- a/builtin/builtin.mbti +++ b/builtin/builtin.mbti @@ -55,6 +55,7 @@ impl Array { compare[T : Compare + Eq](Self[T], Self[T]) -> Int contains[T : Eq](Self[T], T) -> Bool dedup[T : Eq](Self[T]) -> Unit + default[T]() -> Self[T] drain[T](Self[T], Int, Int) -> Self[T] each[T](Self[T], (T) -> Unit) -> Unit eachi[T](Self[T], (Int, T) -> Unit) -> Unit