aboutsummaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorodersky <odersky@gmail.com>2017-02-22 14:47:07 +0100
committerGitHub <noreply@github.com>2017-02-22 14:47:07 +0100
commit8a826ee3d7a7a7230dea8cc1fa4f87b70e8efe81 (patch)
treeb201e8017cd3bec32071d7ebe3fec338d7105f76 /compiler
parent5c7ef22a5464456a3e95869c0f6154a2ae8a5f84 (diff)
parent5e53ff36f1d9ac2bd433fa01e28a194810c1be74 (diff)
downloaddotty-8a826ee3d7a7a7230dea8cc1fa4f87b70e8efe81.tar.gz
dotty-8a826ee3d7a7a7230dea8cc1fa4f87b70e8efe81.tar.bz2
dotty-8a826ee3d7a7a7230dea8cc1fa4f87b70e8efe81.zip
Merge pull request #2014 from dotty-staging/fix-#2002
Fix #2000: Make implicit and non-implicit functions incomparable
Diffstat (limited to 'compiler')
-rw-r--r--compiler/src/dotty/tools/dotc/core/TypeComparer.scala2
-rw-r--r--compiler/test/dotc/tests.scala1
2 files changed, 2 insertions, 1 deletions
diff --git a/compiler/src/dotty/tools/dotc/core/TypeComparer.scala b/compiler/src/dotty/tools/dotc/core/TypeComparer.scala
index 6063cbf38..fca111702 100644
--- a/compiler/src/dotty/tools/dotc/core/TypeComparer.scala
+++ b/compiler/src/dotty/tools/dotc/core/TypeComparer.scala
@@ -489,7 +489,7 @@ class TypeComparer(initctx: Context) extends DotClass with ConstraintHandling {
case tp1 @ MethodType(_, formals1) =>
(tp1.signature consistentParams tp2.signature) &&
matchingParams(formals1, formals2, tp1.isJava, tp2.isJava) &&
- (!tp1.isImplicit || tp2.isImplicit) && // non-implicit functions shadow implicit ones
+ (tp1.isImplicit == tp2.isImplicit) &&
isSubType(tp1.resultType, tp2.resultType.subst(tp2, tp1))
case _ =>
false
diff --git a/compiler/test/dotc/tests.scala b/compiler/test/dotc/tests.scala
index 7af903364..a720f1294 100644
--- a/compiler/test/dotc/tests.scala
+++ b/compiler/test/dotc/tests.scala
@@ -184,6 +184,7 @@ class tests extends CompilerTest {
@Test def neg_autoTupling = compileFile(negCustomArgs, "autoTuplingTest", args = "-language:noAutoTupling" :: Nil)
@Test def neg_i1050 = compileFile(negCustomArgs, "i1050", List("-strict"))
@Test def neg_i1240 = compileFile(negCustomArgs, "i1240")(allowDoubleBindings)
+ @Test def neg_i2002 = compileFile(negCustomArgs, "i2002")(allowDoubleBindings)
val negTailcallDir = negDir + "tailcall/"
@Test def neg_tailcall_t1672b = compileFile(negTailcallDir, "t1672b")