summaryrefslogtreecommitdiff
path: root/test/files/pos
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-05-11 17:04:30 +0200
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-05-11 17:04:30 +0200
commit389a15bf1e63934644e4aa423cac31435438ff36 (patch)
tree8f3644b45f1e1473151ed59ee7c2288669ceb83c /test/files/pos
parent2422b064e7a52c04dfb2239fc8e7b9ffbab24251 (diff)
downloadscala-389a15bf1e63934644e4aa423cac31435438ff36.tar.gz
scala-389a15bf1e63934644e4aa423cac31435438ff36.tar.bz2
scala-389a15bf1e63934644e4aa423cac31435438ff36.zip
Fix for unnecessary InnerClasses for top-level objects.
Mirror classes (with static forwarders) for top-level objects would get unnecessary InnerClasses entries in some cases. See the following comment I introduced to the place I fixed: We need to make sure that we do not confuse inner classes of the class we mirror with inner classes of the class we are mirroring. These two sets can be different as seen in this case: ```scala class A { class B def b: B = new B } object C extends A ``` Here mirror class of C has a static forwarder for (inherited) method `b` therefore it refers to class `B` and needs InnerClasses entry. However, the real class for `C` (named `C$`) is empty and does not refer to `B` thus does not need InnerClasses entry it. NOTE: This logic has been refactored in GenASM and everything is implemented in a much cleaner way by having two separate buffers.
Diffstat (limited to 'test/files/pos')
0 files changed, 0 insertions, 0 deletions