Skip to content

Commit a5cca66

Browse files
Merge pull request #5785 from dotty-staging/fix-#209
Fix #209: Add regression test
2 parents 4c5ca04 + 9f68f86 commit a5cca66

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

tests/neg/i209.scala

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
case class Foo(a: Int) {
3+
private def copy(i: Int): Foo = Foo(2 * i)
4+
}
5+
6+
object Test {
7+
val foo = Foo(2)
8+
foo.copy(3) // error
9+
}

tests/run/i209.scala

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
case class Foo(a: Int) {
2+
def copy(i: Int = 9): Foo = Foo(i)
3+
}
4+
5+
case class Bar(a: Int, b: Int) {
6+
def copy(i: Int = 4, j: Int = 6): Bar = Bar(i, j)
7+
}
8+
9+
case class Baz(a: Int) {
10+
def copy(i: Int): Baz = Baz(2 * i)
11+
}
12+
13+
case class PBaz(a: Int) {
14+
private def copy(i: Int): PBaz = PBaz(2 * i)
15+
def copy2(i: Int): PBaz = copy(i)
16+
}
17+
18+
object Test {
19+
def main(args: Array[String]): Unit = {
20+
val a = Foo(2)
21+
assert(a == Foo(2))
22+
assert(a.copy(5) == Foo(5))
23+
assert(a.copy() == Foo(9))
24+
25+
val b = Bar(2, 3)
26+
assert(b == Bar(2, 3))
27+
assert(b.copy(5, 7) == Bar(5, 7))
28+
assert(b.copy(5) == Bar(5, 6))
29+
assert(b.copy(j = 5) == Bar(4, 5))
30+
assert(b.copy() == Bar(4, 6))
31+
32+
val c = Baz(2)
33+
assert(c == Baz(2))
34+
assert(c.copy(3) == Baz(6))
35+
36+
val d = PBaz(2)
37+
assert(d == PBaz(2))
38+
assert(d.copy2(3) == PBaz(6))
39+
}
40+
}

0 commit comments

Comments
 (0)