Skip to content

Commit ce61b50

Browse files
committed
impl for def repl in VCArrayOps.scala
1 parent db1c8ab commit ce61b50

7 files changed

+53
-15
lines changed

src/dotty/runtime/vc/VCArrayOps.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ class VCArrayOps[T](xs: Array[T]) extends ArrayOps[T] {
2424
case vc: VCObjectArray[_] => vc.ct.asInstanceOf[ClassTag[T]]
2525
}
2626

27+
override def repr = xs
28+
2729
override protected[this] def newBuilder = new VCArrayBuilder[T]()(elemTag).asInstanceOf[ArrayBuilder[T]]
2830
//override protected[this] def newBuilder = new ArrayBuilder.ofRef[T]()(ClassTag[T](arrayElementClass(repr.getClass)))
2931

tests/run/valueclasses-array-functions.check

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,9 @@ X-9
66
X-11
77
X-32
88
List(X-11)
9-
r6: Set(X-7, X-9, X-11)
10-
r7: List(X-7, X-9, X-11)
9+
r7: List(X-7, X-9, X-11)
10+
List(X-3, X-4, X-5)
11+
List(X-3, X-4, X-5, X-6)
12+
List(X-7, X-3, X-4, X-5)
13+
List(X-3, X-4, X-5)
14+
List(X-3, X-3)

tests/run/valueclasses-array-functions.scala

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,21 @@ object Test {
1515
println(r3)
1616
println(r5)
1717
val r6 = test.toSet
18-
println(s"r6: $r6")
1918
val r7 = test.toList
2019
println(s"r7: $r7")
2120

2221
val t1: ArrayOps[X] = Array(new X(7))
22+
def a1 = Array(Array[X]())
23+
def a2 = Array.ofDim[X](2)
24+
def a3 = new Array[X](5)
25+
def a4: Array[X] = Array(new X(3), new X(4), new X(5))
26+
println(a4.toArray.toList)
27+
println(a4.:+(new X(6)).toList)
28+
println(a4.+:(new X(7)).toList)
29+
println(a4.par.toList)
30+
val a5 = Array(new X(1), new X(2))
31+
val a6 = Array(new X(3), new X(4))
32+
println(a5.map(x => a6(0)).toList)
2333
}
2434

2535
def test: Array[X] = Array(new X(7), new X(9), new X(11))
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
r: Set(X(6), X(8), X(10))
2-
r3: Set(X(1), X(2), X(3))
3-
r4: Set(X(1), X(2), X(3))
4-
r5: Set(X(3), X(6), X(9))
5-
r6: Set(Z(1), Z(2), Z(3))
6-
v7: Set(Z(X(3)), Z(X(4)), Z(X(5)))
1+
r: List(X(6), X(8), X(10))
2+
r3: List(X(1), X(2), X(3))
3+
r4: List(X(1), X(2), X(3))
4+
r5: List(X(3), X(6), X(9))
5+
r6: List(Z(1), Z(2), Z(3))
6+
v7: List(Z(X(3)), Z(X(4)), Z(X(5)))

tests/run/valueclasses-array-functions2.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ class Z(val z: String) extends AnyVal {
99
object Test {
1010
def main(args: Array[String]) = {
1111
val r = test map { v1 => new X(v1.x*2) }
12-
println(s"r: ${r.toSet}")
12+
println(s"r: ${r.toList}")
1313
val r3 = Array(1,2,3).map(v3 => new X(v3))
14-
println(s"r3: ${r3.toSet}")
14+
println(s"r3: ${r3.toList}")
1515
val r4 = test2 map (v4 => new X(v4.y))
16-
println(s"r4: ${r4.toSet}")
16+
println(s"r4: ${r4.toList}")
1717
val r5 = test3 map {x => new X(x.asInstanceOf[X].x*3)}
18-
println(s"r5: ${r5.toSet}")
18+
println(s"r5: ${r5.toList}")
1919
val r6 = test2 map (v6 => new Z(v6.y.toString))
20-
println(s"r6: ${r6.toSet}")
20+
println(s"r6: ${r6.toList}")
2121
val r7 = test map (v7 => new Z(v7.toString))
22-
println(s"v7: ${r7.toSet}")
22+
println(s"v7: ${r7.toList}")
2323
}
2424
def test = Array(new X(3), new X(4), new X(5))
2525
def test2 = Array(new Y(1), new Y(2), new Y(3))
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
List(Y(Z()), Y(Z()), Y(Z()))
2+
List(Y(Z()), Y(Z()), Y(Z()), Y(Z()))
3+
List(Y(Z()), Y(Z()), Y(Z()), Y(Z()))
4+
List(Y(Z()), Y(Z()), Y(Z()))
5+
List(Y(Z()), Y(Z()))
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
case class Y(val y: Object) extends AnyVal
2+
case class Z()
3+
object Test {
4+
def main(args: Array[String]) = {
5+
def a1 = Array(Array[Y]())
6+
def a2 = Array.ofDim[Y](2)
7+
def a3 = new Array[Y](5)
8+
def a4: Array[Y] = Array(Y(Z()), Y(Z()), Y(Z()))
9+
println(a4.toArray.toList)
10+
println(a4.:+(Y(Z())).toList)
11+
println(a4.+:(Y(Z())).toList)
12+
println(a4.par.toList)
13+
val a5 = Array(Y(Z()), Y(Z()))
14+
val a6 = Array(Y(Z()), Y(Z()))
15+
println(a5.map(x => a6(0)).toList)
16+
}
17+
}

0 commit comments

Comments
 (0)