diff options
author | odersky <odersky@gmail.com> | 2016-08-21 19:22:22 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-21 19:22:22 +0300 |
commit | bcfa3be8cfe2be5d79d0147e6c8fde2c38717623 (patch) | |
tree | ed265fbaaef7c0f9ef62c09ee86960d08be8f32d /tests/neg | |
parent | ac423a31548cfd0901559513e020331facf66a89 (diff) | |
parent | 2302886d79b3de8846d9295871a3cea6dd94d65e (diff) | |
download | dotty-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.scala | 33 | ||||
-rw-r--r-- | tests/neg/traitParamsMixin.scala | 2 | ||||
-rw-r--r-- | tests/neg/traitParamsTyper.scala | 2 |
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 |