aboutsummaryrefslogtreecommitdiff
path: root/tests/neg
diff options
context:
space:
mode:
Diffstat (limited to 'tests/neg')
-rw-r--r--tests/neg/i1263.scala33
-rw-r--r--tests/neg/traitParamsMixin.scala2
-rw-r--r--tests/neg/traitParamsTyper.scala2
3 files changed, 35 insertions, 2 deletions
diff --git a/tests/neg/i1263.scala b/tests/neg/i1263.scala
new file mode 100644
index 000000000..e6d8c37b5
--- /dev/null
+++ b/tests/neg/i1263.scala
@@ -0,0 +1,33 @@
+object Test {
+ trait Foo(val s: String)
+
+ val foo1 = new Foo("bar") {}
+ val foo2 = new Foo { override val s = "bar" } // error: parameterized trait lacks argument list
+ def main(args: Array[String]): Unit = {
+ assert(foo1.s == "bar")
+ assert(foo2.s == "bar")
+ }
+}
+object Test1 {
+ trait Foo(private val s0: String) {
+ def s = s0
+ }
+
+ val foo1 = new Foo("bar") {}
+ def main(args: Array[String]): Unit = {
+ assert(foo1.s == "bar")
+ }
+}
+object Test2 {
+ trait Foo(protected val s: String)
+
+ val foo1 = new Foo("bar") {}
+}
+object Test3 {
+ trait Foo(final val s: String)
+
+ val foo1 = new Foo("bar") {}
+ def main(args: Array[String]): Unit = {
+ assert(foo1.s == "bar")
+ }
+}
diff --git a/tests/neg/traitParamsMixin.scala b/tests/neg/traitParamsMixin.scala
index dfb9fbe2f..aa91012d5 100644
--- a/tests/neg/traitParamsMixin.scala
+++ b/tests/neg/traitParamsMixin.scala
@@ -2,8 +2,6 @@ trait T(x: Int) {
def f = x
}
-class C extends T // error
-
trait U extends T
class D extends U { // error
diff --git a/tests/neg/traitParamsTyper.scala b/tests/neg/traitParamsTyper.scala
index e97906b50..caed2727d 100644
--- a/tests/neg/traitParamsTyper.scala
+++ b/tests/neg/traitParamsTyper.scala
@@ -2,6 +2,8 @@ trait T(x: Int) {
def f = x
}
+class C0 extends T // error
+
class C(x: Int) extends T() // error
trait U extends C with T