From 140e57c6dea6e33a15c56afbd8a7e119b0b7e747 Mon Sep 17 00:00:00 2001 From: "Paolo G. Giarrusso" Date: Sun, 26 Aug 2018 03:21:13 +0200 Subject: [PATCH] Fix #5007 (aka scala/bug#5063) Based on scala/scala@bed3304bf86 and Nicolas' suggestion. --- compiler/src/dotty/tools/dotc/typer/Implicits.scala | 1 + tests/neg/t5063.scala | 3 +++ tests/untried/neg/t5063.check | 4 ---- tests/untried/neg/t5063.scala | 3 --- 4 files changed, 4 insertions(+), 7 deletions(-) create mode 100644 tests/neg/t5063.scala delete mode 100644 tests/untried/neg/t5063.check delete mode 100644 tests/untried/neg/t5063.scala diff --git a/compiler/src/dotty/tools/dotc/typer/Implicits.scala b/compiler/src/dotty/tools/dotc/typer/Implicits.scala index feb6bc391a55..546cce74aaf7 100644 --- a/compiler/src/dotty/tools/dotc/typer/Implicits.scala +++ b/compiler/src/dotty/tools/dotc/typer/Implicits.scala @@ -552,6 +552,7 @@ trait Implicits { self: Typer => || (from.tpe isRef defn.NothingClass) || (from.tpe isRef defn.NullClass) || !(ctx.mode is Mode.ImplicitsEnabled) + || from.isInstanceOf[Super] || (from.tpe eq NoPrefix)) NoMatchingImplicitsFailure else { def adjust(to: Type) = to.stripTypeVar.widenExpr match { diff --git a/tests/neg/t5063.scala b/tests/neg/t5063.scala new file mode 100644 index 000000000000..0566e90798f5 --- /dev/null +++ b/tests/neg/t5063.scala @@ -0,0 +1,3 @@ +class A { + super.+("") // error +} diff --git a/tests/untried/neg/t5063.check b/tests/untried/neg/t5063.check deleted file mode 100644 index c6e553c1b5f6..000000000000 --- a/tests/untried/neg/t5063.check +++ /dev/null @@ -1,4 +0,0 @@ -t5063.scala:2: error: value + is not a member of AnyRef - super.+("") - ^ -one error found diff --git a/tests/untried/neg/t5063.scala b/tests/untried/neg/t5063.scala deleted file mode 100644 index 5b34b53fb7fc..000000000000 --- a/tests/untried/neg/t5063.scala +++ /dev/null @@ -1,3 +0,0 @@ -class A { - super.+("") -}