summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-02-22 12:32:38 -0600
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-02-22 12:32:38 -0600
commitc2d6fc6fa1124ff5d4d46e0d97e5552d0f2a06a1 (patch)
treeaf2b067ed574eff20a511121e6b18a2f0374f53e
parentb0dcf798752220c7fe173318930215248aa0bfbb (diff)
parent17a3639adb5969e8381fd08655cc6fb2aea19c24 (diff)
downloadscala-c2d6fc6fa1124ff5d4d46e0d97e5552d0f2a06a1.tar.gz
scala-c2d6fc6fa1124ff5d4d46e0d97e5552d0f2a06a1.tar.bz2
scala-c2d6fc6fa1124ff5d4d46e0d97e5552d0f2a06a1.zip
Merge pull request #3572 from retronym/ticket/8197
SI-8197 Only consider immediate params for defaults, overloading
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Infer.scala3
-rw-r--r--test/files/run/t8197b.scala8
2 files changed, 10 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Infer.scala b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
index 50744f2d72..b42113c84f 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Infer.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
@@ -1328,7 +1328,8 @@ trait Infer extends Checkable {
eligible
else
eligible filter (alt =>
- !mexists(alt.info.paramss)(_.hasDefault) && isApplicableBasedOnArity(alt.tpe, argtpes.length, varargsStar, tuplingAllowed = true)
+ !alt.info.params.exists(_.hasDefault) // run/t8197b first parameter list only!
+ && isApplicableBasedOnArity(alt.tpe, argtpes.length, varargsStar, tuplingAllowed = true)
)
}
diff --git a/test/files/run/t8197b.scala b/test/files/run/t8197b.scala
new file mode 100644
index 0000000000..8b3e0af0db
--- /dev/null
+++ b/test/files/run/t8197b.scala
@@ -0,0 +1,8 @@
+object O {
+ def foo[T](t: T) = 0
+ def foo(s: String)(implicit i: DummyImplicit = null) = 1
+}
+
+object Test extends App {
+ assert(O.foo("") == 1)
+}