aboutsummaryrefslogtreecommitdiff
path: root/compiler/test/dotty/tools/dotc/reporting
diff options
context:
space:
mode:
authorEnno <enno@runne.net>2017-02-12 17:54:33 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-02-12 17:54:33 +0100
commit8bdc91f7a5fc3efd93b6be255ec1bfb83787c69b (patch)
treeb4174a4f6eb2e7fb50fe216f944476053426f3a4 /compiler/test/dotty/tools/dotc/reporting
parente360c2a57ca679588fa2116309c44f2b17902b4e (diff)
downloaddotty-8bdc91f7a5fc3efd93b6be255ec1bfb83787c69b.tar.gz
dotty-8bdc91f7a5fc3efd93b6be255ec1bfb83787c69b.tar.bz2
dotty-8bdc91f7a5fc3efd93b6be255ec1bfb83787c69b.zip
Change 'overrides nothing' to report via Message (see #1965) (#1968)
* Change 'overrides nothing' to report via Message, split into two different messages * Change 'overrides nothing' to report via Message, split into two different messages
Diffstat (limited to 'compiler/test/dotty/tools/dotc/reporting')
-rw-r--r--compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala43
1 files changed, 43 insertions, 0 deletions
diff --git a/compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala b/compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala
index f43d559d4..be641fe15 100644
--- a/compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala
+++ b/compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala
@@ -42,4 +42,47 @@ class ErrorMessagesTests extends ErrorMessagesTest {
// is a type reference to `java.lang.String`
assert(expected.dealias =:= defn.StringType, s"expected was: $expected")
}
+
+ @Test def overridesNothing =
+ checkMessagesAfter("refchecks") {
+ """
+ |object Foo {
+ | override def bar: Unit = {}
+ |}
+ """.stripMargin
+ }
+ .expect { (ictx, messages) =>
+ implicit val ctx: Context = ictx
+ val defn = ictx.definitions
+
+ assertMessageCount(1, messages)
+ val OverridesNothing(member) :: Nil = messages
+ assertEquals("bar", member.name.show)
+ }
+
+ @Test def overridesNothingDifferentSignature =
+ checkMessagesAfter("refchecks") {
+ """
+ |class Bar {
+ | def bar(s: String): Unit = {}
+ | def bar(s: Int): Unit = {}
+ | final def bar(s: Long): Unit = {}
+ |}
+ |object Foo extends Bar {
+ | override def bar: Unit = {}
+ |}
+ """.stripMargin
+ }
+ .expect { (ictx, messages) =>
+ implicit val ctx: Context = ictx
+ val defn = ictx.definitions
+
+ assertMessageCount(1, messages)
+ val OverridesNothingButNameExists(member, sameName) :: Nil = messages
+ // check expected context data
+ assertEquals("bar", member.name.show)
+ assertEquals(3, sameName.size)
+ assert(sameName.forall(_.symbol.name.show == "bar"),
+ "at least one method had an unexpected name")
+ }
}