diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-01-26 16:56:20 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-01-26 16:56:32 +0100 |
commit | 11ac963c811f2a9a00fac5bb874efeaab35c4041 (patch) | |
tree | 974f7451bb86bddd8f6d4addef4641d326609ad9 /test | |
parent | 2fa859e1b3eb2ac57058feaba87d96adfbac9209 (diff) | |
download | scala-11ac963c811f2a9a00fac5bb874efeaab35c4041.tar.gz scala-11ac963c811f2a9a00fac5bb874efeaab35c4041.tar.bz2 scala-11ac963c811f2a9a00fac5bb874efeaab35c4041.zip |
[backport] Fix for SI-6206, inconsistency with apply.
Squashed commit of the following:
commit f6bbf85150cfd7e461989ec1d6765ff4b4aeba51
Author: Paul Phillips <paulp@improving.org>
Date: Mon Oct 1 09:10:45 2012 -0700
Fix for SI-6206, inconsistency with apply.
The code part of this patch is 100% written by retronym, who
apparently has higher standards than I do because I found it just
lying around in his repository. I think I'll go pick through his
trash and see if he's throwing away any perfectly good muffins.
I made the test case more exciting so as to feel useful.
(cherry picked from commit 267650cf9c3b07e360a59f3c5b70b37fea9de453)
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/t6206.check | 4 | ||||
-rw-r--r-- | test/files/run/t6206.scala | 37 |
2 files changed, 41 insertions, 0 deletions
diff --git a/test/files/run/t6206.check b/test/files/run/t6206.check new file mode 100644 index 0000000000..8064573667 --- /dev/null +++ b/test/files/run/t6206.check @@ -0,0 +1,4 @@ +outer +outer +inner +inner diff --git a/test/files/run/t6206.scala b/test/files/run/t6206.scala new file mode 100644 index 0000000000..07ff246d02 --- /dev/null +++ b/test/files/run/t6206.scala @@ -0,0 +1,37 @@ +class Outer { + def apply( position : Inner ) {} + class Inner + + this.apply(new Inner) + this (new Inner) // error, +} + + +class Outer1 { + + self => + + def apply( position : Inner ) : String = "outer" + + class Inner( ) { + + def apply(arg: Inner): String = "inner" + + def testMe = { + List( + self.apply( this ), // a) this works + self( this ), // b) this does not work! + this apply this, + this(this) + ) foreach println + } + } +} + +object Test { + def main(args: Array[String]): Unit = { + val o = new Outer1 + val i = new o.Inner + i.testMe + } +} |