diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-02-05 11:31:35 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-02-05 12:27:57 +0100 |
commit | b579a42ee3c079e9acf53b74085ae01ac6c35f0f (patch) | |
tree | c67100c6a6c4eba0d75ad8b36067b56af07fa356 /test | |
parent | 81d8f9d3da656cfb05f125ba7cf70ca51a477240 (diff) | |
download | scala-b579a42ee3c079e9acf53b74085ae01ac6c35f0f.tar.gz scala-b579a42ee3c079e9acf53b74085ae01ac6c35f0f.tar.bz2 scala-b579a42ee3c079e9acf53b74085ae01ac6c35f0f.zip |
SI-6888 Loosen criteria for $outer search.
In order to cater for nested classes with names that end
with '$', which lead to ambiguity when unmangling expanded
names.
In:
class X { object $ }
We end up with:
orginalName(X$$$$$outer) = $$$outer
This change modifies `outerSource` to consider that to be
and outer accessor name. It is a piecemeal fix, and no doubt
there are other nasty surprises in store for those inclined to
flash their $$$ in identifier names, but the method changed is
not used widely and this solves the reported problem.
SI-2806 remains open to address the deeper problem.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/t6888.check | 3 | ||||
-rw-r--r-- | test/files/run/t6888.scala | 19 |
2 files changed, 22 insertions, 0 deletions
diff --git a/test/files/run/t6888.check b/test/files/run/t6888.check new file mode 100644 index 0000000000..4e8a2de2db --- /dev/null +++ b/test/files/run/t6888.check @@ -0,0 +1,3 @@ +2 +3 +3 diff --git a/test/files/run/t6888.scala b/test/files/run/t6888.scala new file mode 100644 index 0000000000..0c64cbe5b6 --- /dev/null +++ b/test/files/run/t6888.scala @@ -0,0 +1,19 @@ +class C { + val x = 1 + object $ { + val y = x + x + class abc$ { + def xy = x + y + } + object abc$ { + def xy = x + y + } + } +} + +object Test extends App { + val c = new C() + println(c.$.y) + println(c.$.abc$.xy) + println(new c.$.abc$().xy) +} |