diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2015-03-24 13:55:42 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2015-03-24 13:55:42 +1000 |
commit | 0abafb54f3c90072798c6987933c924216a8e1f7 (patch) | |
tree | 7b8dc3afa6c12c60ca84621dd21932a6ad0bcaa5 | |
parent | f25a78e7c7e65d428b250d2b219e27119f2d6223 (diff) | |
parent | 2dc3b19fb3fe18dada28c3506a14dd9602065e06 (diff) | |
download | scala-0abafb54f3c90072798c6987933c924216a8e1f7.tar.gz scala-0abafb54f3c90072798c6987933c924216a8e1f7.tar.bz2 scala-0abafb54f3c90072798c6987933c924216a8e1f7.zip |
Merge pull request #4387 from retronym/ticket/9231
SI-9231 Don't attempt implicit search for erroneous parameter
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 2 | ||||
-rw-r--r-- | test/files/neg/t9231.check | 4 | ||||
-rw-r--r-- | test/files/neg/t9231.scala | 9 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 758425aad5..c8970727d4 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -151,7 +151,7 @@ trait Typers extends Adaptations with Tags with TypersTracking with PatternTyper for(ar <- argResultsBuff) paramTp = paramTp.subst(ar.subst.from, ar.subst.to) - val res = if (paramFailed || (paramTp.isError && {paramFailed = true; true})) SearchFailure else inferImplicit(fun, paramTp, context.reportErrors, isView = false, context) + val res = if (paramFailed || (paramTp.isErroneous && {paramFailed = true; true})) SearchFailure else inferImplicit(fun, paramTp, context.reportErrors, isView = false, context) argResultsBuff += res if (res.isSuccess) { diff --git a/test/files/neg/t9231.check b/test/files/neg/t9231.check new file mode 100644 index 0000000000..43c14f53ca --- /dev/null +++ b/test/files/neg/t9231.check @@ -0,0 +1,4 @@ +t9231.scala:8: error: not found: type DoesNotExist + foo[DoesNotExist] + ^ +one error found diff --git a/test/files/neg/t9231.scala b/test/files/neg/t9231.scala new file mode 100644 index 0000000000..05b1d24e9a --- /dev/null +++ b/test/files/neg/t9231.scala @@ -0,0 +1,9 @@ +class M[A] +class C { + implicit def M1: M[Int] = null + implicit def M2: M[String] = null + + def foo[A](implicit M: M[A]) = null + + foo[DoesNotExist] +} |