diff options
Diffstat (limited to 'compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala')
-rw-r--r-- | compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala | 43 |
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") + } } |