summaryrefslogtreecommitdiff
path: root/test/files/run/t8944c.check
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-11-10 23:48:55 +1000
committerJason Zaugg <jzaugg@gmail.com>2014-11-12 16:25:50 +1000
commitff2cd805111b4fcd39ce7fb1f4bd0268a50faeee (patch)
treeb0bc440231aa8d75f2471a1f4a43174cc0772e71 /test/files/run/t8944c.check
parent15ae8ddd1cc68bee0b4b38b3830720d422656642 (diff)
downloadscala-ff2cd805111b4fcd39ce7fb1f4bd0268a50faeee.tar.gz
scala-ff2cd805111b4fcd39ce7fb1f4bd0268a50faeee.tar.bz2
scala-ff2cd805111b4fcd39ce7fb1f4bd0268a50faeee.zip
SI-8944 A more resiliant naming scheme for case accessors
Case class parameters that are less that public have an extra accessor method created to ensure universal pattern matchability. See #4081 for more background. Currently, this is given a fresh name based on the parameter name. However, this is fragile and the name can change based on unrelated edits higher up in the source file. This commit switches to a stable naming scheme for these methods. A non-public case field `foo` has a corresponding accessor `foo$access$N`, where `N` is the index of the parameter within the constructor parameter list. The enclosed tests show a case that used to trigger a linkage error under separate compilation that now works; shows that by choosing the `foo$access$1` rather than `foo$1` we don't clash with lambda lifted methods in the class; and shows the names of the accessor methods as seen via Java reflection.
Diffstat (limited to 'test/files/run/t8944c.check')
-rw-r--r--test/files/run/t8944c.check5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/files/run/t8944c.check b/test/files/run/t8944c.check
new file mode 100644
index 0000000000..7738f76980
--- /dev/null
+++ b/test/files/run/t8944c.check
@@ -0,0 +1,5 @@
+private java.lang.Object Foo.ant()
+public java.lang.Object Foo.ant$access$0()
+private scala.collection.Seq Foo.cat()
+public scala.collection.Seq Foo.cat$access$2()
+public java.lang.Object Foo.elk()