/* package whatever; // don't place package name! */
import javax.tools.ToolProvider;
import java.lang.invoke.MethodHandles;
import java.math.BigInteger;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone {
public static void scopeExample() {
{ // uses slot zero and slot one
int x = 42;
}
{ // reuses slot zero and one for one long
long l = 0xcafebabeL;
}
{ // again uses slot zero and slot one
float f = 1.234f;
}
}
disasm();
}
private static void disasm() {
try {
MethodHandles.lookup().unreflect(
Class.forName("com.sun.tools.javap.Main", false, ToolProvider.getSystemToolClassLoader())
.
getMethod("main",
String[].
class)) .
asVarargsCollector(String[].
class) .invoke("-c", Ideone.class.getName());
} catch(Throwable t
) { t.
printStackTrace(); } }
private Ideone() {}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmF4LnRvb2xzLlRvb2xQcm92aWRlcjsKaW1wb3J0IGphdmEubGFuZy5pbnZva2UuTWV0aG9kSGFuZGxlczsKaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZSB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2NvcGVFeGFtcGxlKCkgewogICAgICAgIHsgLy8gdXNlcyBzbG90IHplcm8gYW5kIHNsb3Qgb25lCiAgICAgICAgICAgIGludCB4ID0gNDI7CiAgICAgICAgICAgIFN0cmluZyBzID0gImhlbGxvIjsKICAgICAgICB9CiAgICAgICAgeyAvLyByZXVzZXMgc2xvdCB6ZXJvIGFuZCBvbmUgZm9yIG9uZSBsb25nCiAgICAgICAgICAgIGxvbmcgbCA9IDB4Y2FmZWJhYmVMOwogICAgICAgIH0KICAgICAgICB7IC8vIGFnYWluIHVzZXMgc2xvdCB6ZXJvIGFuZCBzbG90IG9uZQogICAgICAgICAgICBCaWdJbnRlZ2VyIGJpZyA9IEJpZ0ludGVnZXIuT05FOwogICAgICAgICAgICBmbG9hdCBmID0gMS4yMzRmOwogICAgICAgIH0KICAgIH0KICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbiB7CiAgICAgICAgZGlzYXNtKCk7CiAgICB9CiAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRpc2FzbSgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNZXRob2RIYW5kbGVzLmxvb2t1cCgpLnVucmVmbGVjdCgKICAgICAgICAgICAgICAgIENsYXNzLmZvck5hbWUoImNvbS5zdW4udG9vbHMuamF2YXAuTWFpbiIsIGZhbHNlLCBUb29sUHJvdmlkZXIuZ2V0U3lzdGVtVG9vbENsYXNzTG9hZGVyKCkpCiAgICAgICAgICAgICAgICAuZ2V0TWV0aG9kKCJtYWluIiwgU3RyaW5nW10uY2xhc3MpKQogICAgICAgICAgICAgICAgLmFzVmFyYXJnc0NvbGxlY3RvcihTdHJpbmdbXS5jbGFzcykKICAgICAgICAgICAgICAgIC5pbnZva2UoIi1jIiwgSWRlb25lLmNsYXNzLmdldE5hbWUoKSk7CiAgICAgICAgfSBjYXRjaChUaHJvd2FibGUgdCkgeyB0LnByaW50U3RhY2tUcmFjZSgpOyB9CiAgICB9CiAgICBwcml2YXRlIElkZW9uZSgpIHt9Cn0=