aboutsummaryrefslogtreecommitdiff
path: root/tests/neg
diff options
context:
space:
mode:
authorodersky <odersky@gmail.com>2016-08-21 19:22:22 +0300
committerGitHub <noreply@github.com>2016-08-21 19:22:22 +0300
commitbcfa3be8cfe2be5d79d0147e6c8fde2c38717623 (patch)
treeed265fbaaef7c0f9ef62c09ee86960d08be8f32d /tests/neg
parentac423a31548cfd0901559513e020331facf66a89 (diff)
parent2302886d79b3de8846d9295871a3cea6dd94d65e (diff)
downloaddotty-bcfa3be8cfe2be5d79d0147e6c8fde2c38717623.tar.gz
dotty-bcfa3be8cfe2be5d79d0147e6c8fde2c38717623.tar.bz2
dotty-bcfa3be8cfe2be5d79d0147e6c8fde2c38717623.zip
Merge pull request #1456 from dotty-staging/fix-#1444
Fix #1444: Pass implicits to parameterless traits if needed
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