Skip to content

Instantly share code, notes, and snippets.

@j5ik2o
Last active April 30, 2017 05:30
Show Gist options
  • Save j5ik2o/2e765f63f7eb6a07fbd1eeadf5fb9829 to your computer and use it in GitHub Desktop.
Save j5ik2o/2e765f63f7eb6a07fbd1eeadf5fb9829 to your computer and use it in GitHub Desktop.
scala> val getTimeString = new Function0[String] {
| override def apply: String = ZonedDateTime.now.toString
| }
getTimeString: () => String = <function0>
scala> :javap getTimeString
Size 902 bytes
MD5 checksum dc6b8c20b0a3937afbe114e129c22cb9
Compiled from "<console>"
public class $line4.$read$$iw$$iw$$iw$$iw$
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Utf8 $line4/$read$$iw$$iw$$iw$$iw$
#2 = Class #1 // $line4/$read$$iw$$iw$$iw$$iw$
#3 = Utf8 java/lang/Object
#4 = Class #3 // java/lang/Object
#5 = Utf8 <console>
#6 = Utf8 $line4/$read$$iw$
#7 = Class #6 // $line4/$read$$iw$
#8 = Utf8 $line4/$read
#9 = Class #8 // $line4/$read
#10 = Utf8 $iw$
#11 = Utf8 $line4/$read$$iw$$iw$
#12 = Class #11 // $line4/$read$$iw$$iw$
#13 = Utf8 $line4/$read$$iw$$iw$$iw$
#14 = Class #13 // $line4/$read$$iw$$iw$$iw$
#15 = Utf8 $line4/$read$$iw$$iw$$iw$$iw$$anon$1
#16 = Class #15 // $line4/$read$$iw$$iw$$iw$$iw$$anon$1
#17 = Utf8 MODULE$
#18 = Utf8 L$line4/$read$$iw$$iw$$iw$$iw$;
#19 = Utf8 getTimeString
#20 = Utf8 Lscala/Function0;
#21 = Utf8 Lscala/Function0<Ljava/lang/String;>;
#22 = Utf8 <clinit>
#23 = Utf8 ()V
#24 = Utf8 <init>
#25 = NameAndType #24:#23 // "<init>":()V
#26 = Methodref #2.#25 // $line4/$read$$iw$$iw$$iw$$iw$."<init>":()V
#27 = Utf8 ()Lscala/Function0;
#28 = NameAndType #19:#20 // getTimeString:Lscala/Function0;
#29 = Fieldref #2.#28 // $line4/$read$$iw$$iw$$iw$$iw$.getTimeString:Lscala/Function0;
#30 = Utf8 this
#31 = Methodref #4.#25 // java/lang/Object."<init>":()V
#32 = NameAndType #17:#18 // MODULE$:L$line4/$read$$iw$$iw$$iw$$iw$;
#33 = Fieldref #2.#32 // $line4/$read$$iw$$iw$$iw$$iw$.MODULE$:L$line4/$read$$iw$$iw$$iw$$iw$;
#34 = Methodref #16.#25 // $line4/$read$$iw$$iw$$iw$$iw$$anon$1."<init>":()V
#35 = Utf8 Signature
#36 = Utf8 Code
#37 = Utf8 LocalVariableTable
#38 = Utf8 LineNumberTable
#39 = Utf8 ()Lscala/Function0<Ljava/lang/String;>;
#40 = Utf8 SourceFile
#41 = Utf8 InnerClasses
#42 = Utf8 ScalaInlineInfo
#43 = Utf8 Scala
{
public static $line4.$read$$iw$$iw$$iw$$iw$ MODULE$;
descriptor: L$line4/$read$$iw$$iw$$iw$$iw$;
flags: ACC_PUBLIC, ACC_STATIC
public static {};
descriptor: ()V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: new #2 // class $line4/$read$$iw$$iw$$iw$$iw$
3: invokespecial #26 // Method "<init>":()V
6: return
public scala.Function0<java.lang.String> getTimeString();
descriptor: ()Lscala/Function0;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #29 // Field getTimeString:Lscala/Function0;
4: areturn
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this L$line4/$read$$iw$$iw$$iw$$iw$;
LineNumberTable:
line 14: 0
Signature: #39 // ()Lscala/Function0<Ljava/lang/String;>;
public $line4.$read$$iw$$iw$$iw$$iw$();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
0: aload_0
1: invokespecial #31 // Method java/lang/Object."<init>":()V
4: aload_0
5: putstatic #33 // Field MODULE$:L$line4/$read$$iw$$iw$$iw$$iw$;
8: aload_0
9: new #16 // class $line4/$read$$iw$$iw$$iw$$iw$$anon$1
12: dup
13: invokespecial #34 // Method $line4/$read$$iw$$iw$$iw$$iw$$anon$1."<init>":()V
16: putfield #29 // Field getTimeString:Lscala/Function0;
19: return
LocalVariableTable:
Start Length Slot Name Signature
0 20 0 this L$line4/$read$$iw$$iw$$iw$$iw$;
LineNumberTable:
line 20: 0
line 14: 8
line 12: 19
}
SourceFile: "<console>"
InnerClasses:
public static #10= #7 of #9; //$iw$=class $line4/$read$$iw$ of class $line4/$read
public static #10= #12 of #7; //$iw$=class $line4/$read$$iw$$iw$ of class $line4/$read$$iw$
public static #10= #14 of #12; //$iw$=class $line4/$read$$iw$$iw$$iw$ of class $line4/$read$$iw$$iw$
public static #10= #2 of #14; //$iw$=class $line4/$read$$iw$$iw$$iw$$iw$ of class $line4/$read$$iw$$iw$$iw$
public final #16; //class $line4/$read$$iw$$iw$$iw$$iw$$anon$1
Error: unknown attribute
ScalaInlineInfo: length = 0xE
01 01 00 02 00 18 00 17 01 00 13 00 1B 01
Error: unknown attribute
Scala: length = 0x0
scala> val getTimeString: Function0[String] = () => ZonedDateTime.now.toString
getTimeString: () => String = $$Lambda$1151/1815095837@33a3c44a
scala> :javap getTimeString
Size 1845 bytes
MD5 checksum 3c690674978065ace77d1ad9bb7aa006
Compiled from "<console>"
public class $line5.$read$$iw$$iw$$iw$$iw$
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Utf8 $line5/$read$$iw$$iw$$iw$$iw$
#2 = Class #1 // $line5/$read$$iw$$iw$$iw$$iw$
#3 = Utf8 java/lang/Object
#4 = Class #3 // java/lang/Object
#5 = Utf8 <console>
#6 = Utf8 $line5/$read$$iw$
#7 = Class #6 // $line5/$read$$iw$
#8 = Utf8 $line5/$read
#9 = Class #8 // $line5/$read
#10 = Utf8 $iw$
#11 = Utf8 $line5/$read$$iw$$iw$
#12 = Class #11 // $line5/$read$$iw$$iw$
#13 = Utf8 $line5/$read$$iw$$iw$$iw$
#14 = Class #13 // $line5/$read$$iw$$iw$$iw$
#15 = Utf8 java/lang/invoke/MethodHandles$Lookup
#16 = Class #15 // java/lang/invoke/MethodHandles$Lookup
#17 = Utf8 java/lang/invoke/MethodHandles
#18 = Class #17 // java/lang/invoke/MethodHandles
#19 = Utf8 Lookup
#20 = Utf8 MODULE$
#21 = Utf8 L$line5/$read$$iw$$iw$$iw$$iw$;
#22 = Utf8 getTimeString
#23 = Utf8 Lscala/Function0;
#24 = Utf8 Lscala/Function0<Ljava/lang/String;>;
#25 = Utf8 <clinit>
#26 = Utf8 ()V
#27 = Utf8 <init>
#28 = NameAndType #27:#26 // "<init>":()V
#29 = Methodref #2.#28 // $line5/$read$$iw$$iw$$iw$$iw$."<init>":()V
#30 = Utf8 ()Lscala/Function0;
#31 = NameAndType #22:#23 // getTimeString:Lscala/Function0;
#32 = Fieldref #2.#31 // $line5/$read$$iw$$iw$$iw$$iw$.getTimeString:Lscala/Function0;
#33 = Utf8 this
#34 = Utf8 $anonfun$getTimeString$1
#35 = Utf8 ()Ljava/lang/String;
#36 = Utf8 java/time/ZonedDateTime
#37 = Class #36 // java/time/ZonedDateTime
#38 = Utf8 now
#39 = Utf8 ()Ljava/time/ZonedDateTime;
#40 = NameAndType #38:#39 // now:()Ljava/time/ZonedDateTime;
#41 = Methodref #37.#40 // java/time/ZonedDateTime.now:()Ljava/time/ZonedDateTime;
#42 = Utf8 toString
#43 = NameAndType #42:#35 // toString:()Ljava/lang/String;
#44 = Methodref #37.#43 // java/time/ZonedDateTime.toString:()Ljava/lang/String;
#45 = Methodref #4.#28 // java/lang/Object."<init>":()V
#46 = NameAndType #20:#21 // MODULE$:L$line5/$read$$iw$$iw$$iw$$iw$;
#47 = Fieldref #2.#46 // $line5/$read$$iw$$iw$$iw$$iw$.MODULE$:L$line5/$read$$iw$$iw$$iw$$iw$;
#48 = Utf8 java/lang/invoke/LambdaMetafactory
#49 = Class #48 // java/lang/invoke/LambdaMetafactory
#50 = Utf8 altMetafactory
#51 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#52 = NameAndType #50:#51 // altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#53 = Methodref #49.#52 // java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#54 = MethodHandle #6:#53 // invokestatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#55 = Utf8 ()Ljava/lang/Object;
#56 = MethodType #55 // ()Ljava/lang/Object;
#57 = NameAndType #34:#35 // $anonfun$getTimeString$1:()Ljava/lang/String;
#58 = Methodref #2.#57 // $line5/$read$$iw$$iw$$iw$$iw$.$anonfun$getTimeString$1:()Ljava/lang/String;
#59 = MethodHandle #6:#58 // invokestatic $line5/$read$$iw$$iw$$iw$$iw$.$anonfun$getTimeString$1:()Ljava/lang/String;
#60 = MethodType #35 // ()Ljava/lang/String;
#61 = Integer 3
#62 = Integer 1
#63 = Utf8 scala/Serializable
#64 = Class #63 // scala/Serializable
#65 = Utf8 apply
#66 = NameAndType #65:#30 // apply:()Lscala/Function0;
#67 = InvokeDynamic #0:#66 // #0:apply:()Lscala/Function0;
#68 = Utf8 $deserializeLambda$
#69 = Utf8 (Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
#70 = Utf8 scala/runtime/LambdaDeserialize
#71 = Class #70 // scala/runtime/LambdaDeserialize
#72 = Utf8 bootstrap
#73 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;
#74 = NameAndType #72:#73 // bootstrap:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;
#75 = Methodref #71.#74 // scala/runtime/LambdaDeserialize.bootstrap:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;
#76 = MethodHandle #6:#75 // invokestatic scala/runtime/LambdaDeserialize.bootstrap:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;
#77 = Utf8 lambdaDeserialize
#78 = NameAndType #77:#69 // lambdaDeserialize:(Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
#79 = InvokeDynamic #1:#78 // #1:lambdaDeserialize:(Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
#80 = Utf8 Signature
#81 = Utf8 Code
#82 = Utf8 LocalVariableTable
#83 = Utf8 LineNumberTable
#84 = Utf8 ()Lscala/Function0<Ljava/lang/String;>;
#85 = Utf8 BootstrapMethods
#86 = Utf8 SourceFile
#87 = Utf8 InnerClasses
#88 = Utf8 ScalaInlineInfo
#89 = Utf8 Scala
{
public static $line5.$read$$iw$$iw$$iw$$iw$ MODULE$;
descriptor: L$line5/$read$$iw$$iw$$iw$$iw$;
flags: ACC_PUBLIC, ACC_STATIC
public static {};
descriptor: ()V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: new #2 // class $line5/$read$$iw$$iw$$iw$$iw$
3: invokespecial #29 // Method "<init>":()V
6: return
public scala.Function0<java.lang.String> getTimeString();
descriptor: ()Lscala/Function0;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #32 // Field getTimeString:Lscala/Function0;
4: areturn
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this L$line5/$read$$iw$$iw$$iw$$iw$;
LineNumberTable:
line 14: 0
Signature: #84 // ()Lscala/Function0<Ljava/lang/String;>;
public static final java.lang.String $anonfun$getTimeString$1();
descriptor: ()Ljava/lang/String;
flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic #41 // Method java/time/ZonedDateTime.now:()Ljava/time/ZonedDateTime;
3: invokevirtual #44 // Method java/time/ZonedDateTime.toString:()Ljava/lang/String;
6: areturn
LineNumberTable:
line 14: 0
public $line5.$read$$iw$$iw$$iw$$iw$();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
0: aload_0
1: invokespecial #45 // Method java/lang/Object."<init>":()V
4: aload_0
5: putstatic #47 // Field MODULE$:L$line5/$read$$iw$$iw$$iw$$iw$;
8: aload_0
9: invokedynamic #67, 0 // InvokeDynamic #0:apply:()Lscala/Function0;
14: putfield #32 // Field getTimeString:Lscala/Function0;
17: return
LocalVariableTable:
Start Length Slot Name Signature
0 18 0 this L$line5/$read$$iw$$iw$$iw$$iw$;
LineNumberTable:
line 18: 0
line 14: 8
line 12: 17
}
BootstrapMethods:
0: #54 invokestatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
Method arguments:
#56 ()Ljava/lang/Object;
#59 invokestatic $line5/$read$$iw$$iw$$iw$$iw$.$anonfun$getTimeString$1:()Ljava/lang/String;
#60 ()Ljava/lang/String;
#61 3
#62 1
#64 scala/Serializable
1: #76 invokestatic scala/runtime/LambdaDeserialize.bootstrap:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;
Method arguments:
#59 invokestatic $line5/$read$$iw$$iw$$iw$$iw$.$anonfun$getTimeString$1:()Ljava/lang/String;
SourceFile: "<console>"
InnerClasses:
public static #10= #7 of #9; //$iw$=class $line5/$read$$iw$ of class $line5/$read
public static #10= #12 of #7; //$iw$=class $line5/$read$$iw$$iw$ of class $line5/$read$$iw$
public static #10= #14 of #12; //$iw$=class $line5/$read$$iw$$iw$$iw$ of class $line5/$read$$iw$$iw$
public static #10= #2 of #14; //$iw$=class $line5/$read$$iw$$iw$$iw$$iw$ of class $line5/$read$$iw$$iw$$iw$
public static final #19= #16 of #18; //Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
Error: unknown attribute
ScalaInlineInfo: length = 0x13
01 01 00 03 00 22 00 23 01 00 1B 00 1A 01 00 16
00 1E 01
Error: unknown attribute
Scala: length = 0x0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment