diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2014-12-16 10:50:10 +0100 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2015-01-16 23:18:12 +0100 |
commit | afebceee78155c66564921eab7dd2170f820fdbf (patch) | |
tree | 65fba50f00339b69e4b0713f4120722115cf9a9c /test/files/jvm/t8582.scala | |
parent | 7c1983d153a81ba43858a1bb5f0b59c5708bbfcf (diff) | |
download | scala-afebceee78155c66564921eab7dd2170f820fdbf.tar.gz scala-afebceee78155c66564921eab7dd2170f820fdbf.tar.bz2 scala-afebceee78155c66564921eab7dd2170f820fdbf.zip |
Construct ClassBTypes from parsed classfiles
This infrastructure is required for the inliner: when inlining code
from a classfile, the corresponding ClassBType is needed for various
things (eg access checks, InnerClass attribute).
The test creates two ClassBTypes for the same class: once using the
(unpickled) Symbol, once using the parsed ASM ClassNode, and verifies
that the two are the same.
There's a cleanup to the InnerClass attribute:
object T { class Member; def foo = { class Local } }
class T
For Java compatibility the InnerClass entry for Member says the class
is nested in T (not in the module class T$). We now make sure to add
that entry only to T, not to T$ (unless Member is actually referenced
in the classfile T$, in that case it will be added, as required).
Diffstat (limited to 'test/files/jvm/t8582.scala')
-rw-r--r-- | test/files/jvm/t8582.scala | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/files/jvm/t8582.scala b/test/files/jvm/t8582.scala index 8a57ef7952..e9a01f9016 100644 --- a/test/files/jvm/t8582.scala +++ b/test/files/jvm/t8582.scala @@ -55,9 +55,9 @@ object Test extends BytecodeTest { println(nested(classOf[A2#B2])) println(nested(classOf[A2#B2#C2])) - nprintln("Mirror classes have the same InnerClass attributes as the corresponding module class:") + nprintln("The InnerClass attribute of a mirror class contains the members of the module class:") printInner("p1.p2.Singleton") // mirror class - println("Module class") + println("The module members are not in the InnerClass table of the module class (unless referenced):") printInner("p1.p2.Singleton$") nprintln("An outer class has a InnerClass attribute for direct nested classes") |