Created
February 26, 2013 15:36
-
-
Save chemikadze/5039385 to your computer and use it in GitHub Desktop.
Structural type argument
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class structural.C extends java.lang.Object implements scala.ScalaObject{ | |
public static {}; | |
Code: | |
0: iconst_0 | |
1: anewarray #8; //class java/lang/Class | |
4: putstatic #14; //Field reflParams$Cache1:[Ljava/lang/Class; | |
7: new #16; //class java/lang/ref/SoftReference | |
10: dup | |
11: new #18; //class scala/runtime/EmptyMethodCache | |
14: dup | |
15: invokespecial #21; //Method scala/runtime/EmptyMethodCache."<init>":()V | |
18: invokespecial #24; //Method java/lang/ref/SoftReference."<init>":(Ljava/lang/Object;)V | |
21: putstatic #28; //Field reflPoly$Cache1:Ljava/lang/ref/SoftReference; | |
24: return | |
public static java.lang.reflect.Method reflMethod$Method1(java.lang.Class); | |
Code: | |
0: getstatic #28; //Field reflPoly$Cache1:Ljava/lang/ref/SoftReference; | |
3: invokevirtual #34; //Method java/lang/ref/SoftReference.get:()Ljava/lang/Object; | |
6: checkcast #36; //class scala/runtime/MethodCache | |
9: ifnonnull 29 | |
12: new #16; //class java/lang/ref/SoftReference | |
15: dup | |
16: new #18; //class scala/runtime/EmptyMethodCache | |
19: dup | |
20: invokespecial #21; //Method scala/runtime/EmptyMethodCache."<init>":()V | |
23: invokespecial #24; //Method java/lang/ref/SoftReference."<init>":(Ljava/lang/Object;)V | |
26: putstatic #28; //Field reflPoly$Cache1:Ljava/lang/ref/SoftReference; | |
29: getstatic #28; //Field reflPoly$Cache1:Ljava/lang/ref/SoftReference; | |
32: invokevirtual #34; //Method java/lang/ref/SoftReference.get:()Ljava/lang/Object; | |
35: checkcast #36; //class scala/runtime/MethodCache | |
38: aload_0 | |
39: invokevirtual #39; //Method scala/runtime/MethodCache.find:(Ljava/lang/Class;)Ljava/lang/reflect/Method; | |
42: astore_1 | |
43: aload_1 | |
44: ifnonnull 89 | |
47: getstatic #45; //Field scala/runtime/ScalaRunTime$.MODULE$:Lscala/runtime/ScalaRunTime$; | |
50: aload_0 | |
51: ldc #47; //String y | |
53: getstatic #14; //Field reflParams$Cache1:[Ljava/lang/Class; | |
56: invokevirtual #51; //Method java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; | |
59: invokevirtual #55; //Method scala/runtime/ScalaRunTime$.ensureAccessible:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method; | |
62: astore_1 | |
63: new #16; //class java/lang/ref/SoftReference | |
66: dup | |
67: getstatic #28; //Field reflPoly$Cache1:Ljava/lang/ref/SoftReference; | |
70: invokevirtual #34; //Method java/lang/ref/SoftReference.get:()Ljava/lang/Object; | |
73: checkcast #36; //class scala/runtime/MethodCache | |
76: aload_0 | |
77: aload_1 | |
78: invokevirtual #59; //Method scala/runtime/MethodCache.add:(Ljava/lang/Class;Ljava/lang/reflect/Method;)Lscala/runtime/MethodCache; | |
81: invokespecial #24; //Method java/lang/ref/SoftReference."<init>":(Ljava/lang/Object;)V | |
84: putstatic #28; //Field reflPoly$Cache1:Ljava/lang/ref/SoftReference; | |
87: aload_1 | |
88: areturn | |
89: aload_1 | |
90: areturn | |
public int f(java.lang.Object); | |
Code: | |
0: aload_1 | |
1: astore_2 | |
2: aconst_null | |
3: astore_3 | |
4: aload_2 | |
5: invokevirtual #70; //Method java/lang/Object.getClass:()Ljava/lang/Class; | |
8: invokestatic #72; //Method reflMethod$Method1:(Ljava/lang/Class;)Ljava/lang/reflect/Method; | |
11: aload_2 | |
12: iconst_0 | |
13: anewarray #66; //class java/lang/Object | |
16: invokevirtual #78; //Method java/lang/reflect/Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; | |
19: astore_3 | |
20: aload_3 | |
21: checkcast #80; //class java/lang/Integer | |
24: invokestatic #85; //Method scala/runtime/BoxesRunTime.unboxToInt:(Ljava/lang/Object;)I | |
27: ireturn | |
28: astore 4 | |
30: aload 4 | |
32: invokevirtual #91; //Method java/lang/reflect/InvocationTargetException.getCause:()Ljava/lang/Throwable; | |
35: athrow | |
Exception table: | |
from to target type | |
4 20 28 Class java/lang/reflect/InvocationTargetException | |
public structural.C(); | |
Code: | |
0: aload_0 | |
1: invokespecial #98; //Method java/lang/Object."<init>":()V | |
4: return | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package structural | |
class C { | |
def f(x: {val y: Int}) = x.y | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment