diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/sd128.check | 17 | ||||
-rw-r--r-- | test/files/neg/sd128/A.java | 3 | ||||
-rw-r--r-- | test/files/neg/sd128/Test.scala | 19 |
3 files changed, 39 insertions, 0 deletions
diff --git a/test/files/neg/sd128.check b/test/files/neg/sd128.check new file mode 100644 index 0000000000..8f6fcb1213 --- /dev/null +++ b/test/files/neg/sd128.check @@ -0,0 +1,17 @@ +Test.scala:4: error: class C1 inherits conflicting members: + method f in trait A of type ()Int and + method f in trait T of type => Int +(Note: this can be resolved by declaring an override in class C1.) +class C1 extends A with T // error + ^ +Test.scala:5: error: class C2 inherits conflicting members: + method f in trait T of type => Int and + method f in trait A of type ()Int +(Note: this can be resolved by declaring an override in class C2.) +class C2 extends T with A // error + ^ +Test.scala:14: error: overriding method f in trait A of type ()Int; + method f needs `override' modifier + def f() = 9999 // need override modifier + ^ +three errors found diff --git a/test/files/neg/sd128/A.java b/test/files/neg/sd128/A.java new file mode 100644 index 0000000000..6774deba2e --- /dev/null +++ b/test/files/neg/sd128/A.java @@ -0,0 +1,3 @@ +interface A { + default int f() { return -10; } +} diff --git a/test/files/neg/sd128/Test.scala b/test/files/neg/sd128/Test.scala new file mode 100644 index 0000000000..66ca3d0940 --- /dev/null +++ b/test/files/neg/sd128/Test.scala @@ -0,0 +1,19 @@ +trait T { + def f = 99 +} +class C1 extends A with T // error +class C2 extends T with A // error + +trait U extends A { + override def f = 999 +} +class D1 extends A with U // OK +class D2 extends U with A // OK + +class E1 extends A { + def f() = 9999 // need override modifier +} + +class E2 extends A { + override def f() = 9999 // OK +} |