diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2014-02-21 15:04:28 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2014-02-21 15:04:28 +0100 |
commit | 00624a39ed84c3fd245dd9df7454d4cec4399e13 (patch) | |
tree | b990aef26c54e0ecd5a8be17492e40409d0f3226 | |
parent | d128f624bc4cf22dc0e277706690e98ed6f084b6 (diff) | |
parent | d5bb19f0f9bb43150feb645cd43e161ded4cccab (diff) | |
download | scala-00624a39ed84c3fd245dd9df7454d4cec4399e13.tar.gz scala-00624a39ed84c3fd245dd9df7454d4cec4399e13.tar.bz2 scala-00624a39ed84c3fd245dd9df7454d4cec4399e13.zip |
Merge pull request #3562 from adriaanm/t8197
SI-8197 Overload resolution should not consider default arguments
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Infer.scala | 2 | ||||
-rw-r--r-- | test/files/run/t8197.scala | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Infer.scala b/src/compiler/scala/tools/nsc/typechecker/Infer.scala index 2d6c94349b..50744f2d72 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Infer.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Infer.scala @@ -1328,7 +1328,7 @@ trait Infer extends Checkable { eligible else eligible filter (alt => - !alt.hasDefault && isApplicableBasedOnArity(alt.tpe, argtpes.length, varargsStar, tuplingAllowed = true) + !mexists(alt.info.paramss)(_.hasDefault) && isApplicableBasedOnArity(alt.tpe, argtpes.length, varargsStar, tuplingAllowed = true) ) } diff --git a/test/files/run/t8197.scala b/test/files/run/t8197.scala new file mode 100644 index 0000000000..5ca67088de --- /dev/null +++ b/test/files/run/t8197.scala @@ -0,0 +1,13 @@ +// NOTE: according to SI-4728, this shouldn't even compile... +class A +class B +// default arguments do not participate in overload resolution +class Foo(val x: A = null) { + def this(bla: B*) { + this(new A) + } +} + +object Test extends App { + assert((new Foo).x != null) +} |