46 |
46 |
47 public class InvokeMH { |
47 public class InvokeMH { |
48 void test(MethodHandle mh_SiO, |
48 void test(MethodHandle mh_SiO, |
49 MethodHandle mh_vS, |
49 MethodHandle mh_vS, |
50 MethodHandle mh_vi, |
50 MethodHandle mh_vi, |
51 MethodHandle mh_vv) { |
51 MethodHandle mh_vv) throws Throwable { |
52 Object o; String s; int i; // for return type testing |
52 Object o; String s; int i; // for return type testing |
53 |
53 |
54 // next five must have sig = (String,int)Object |
54 // next five must have sig = (String,int)Object |
55 mh_SiO.invoke("world", 123); |
55 mh_SiO.invokeExact("world", 123); |
56 mh_SiO.invoke("mundus", 456); |
56 mh_SiO.invokeExact("mundus", 456); |
57 Object k = "kosmos"; |
57 Object k = "kosmos"; |
58 mh_SiO.invoke((String)k, 789); |
58 mh_SiO.invokeExact((String)k, 789); |
59 o = mh_SiO.invoke((String)null, 000); |
59 o = mh_SiO.invokeExact((String)null, 000); |
60 o = mh_SiO.<Object>invoke("arda", -123); |
60 o = mh_SiO.<Object>invokeExact("arda", -123); |
61 |
61 |
62 // sig = ()String |
62 // sig = ()String |
63 s = mh_vS.<String>invoke(); |
63 s = mh_vS.<String>invokeExact(); |
64 |
64 |
65 // sig = ()int |
65 // sig = ()int |
66 i = mh_vi.<int>invoke(); |
66 i = mh_vi.<int>invokeExact(); |
67 o = mh_vi.<int>invoke(); |
67 o = mh_vi.<int>invokeExact(); |
68 //s = mh_vi.<int>invoke(); //BAD |
68 //s = mh_vi.<int>invokeExact(); //BAD |
69 mh_vi.<int>invoke(); |
69 mh_vi.<int>invokeExact(); |
70 |
70 |
71 // sig = ()void |
71 // sig = ()void |
72 //o = mh_vv.<void>invoke(); //BAD |
72 //o = mh_vv.<void>invokeExact(); //BAD |
73 mh_vv.<void>invoke(); |
73 mh_vv.<void>invokeExact(); |
|
74 } |
|
75 |
|
76 void testGen(MethodHandle mh_SiO, |
|
77 MethodHandle mh_vS, |
|
78 MethodHandle mh_vi, |
|
79 MethodHandle mh_vv) throws Throwable { |
|
80 Object o; String s; int i; // for return type testing |
|
81 |
|
82 // next five must have sig = (*,*)* |
|
83 mh_SiO.invokeGeneric((Object)"world", (Object)123); |
|
84 mh_SiO.<void>invokeGeneric((Object)"mundus", (Object)456); |
|
85 Object k = "kosmos"; |
|
86 mh_SiO.invokeGeneric(k, 789); |
|
87 o = mh_SiO.invokeGeneric(null, 000); |
|
88 o = mh_SiO.<Object>invokeGeneric("arda", -123); |
|
89 |
|
90 // sig = ()String |
|
91 o = mh_vS.invokeGeneric(); |
|
92 |
|
93 // sig = ()int |
|
94 i = mh_vi.<int>invokeGeneric(); |
|
95 o = mh_vi.invokeGeneric(); |
|
96 //s = mh_vi.<int>invokeGeneric(); //BAD |
|
97 mh_vi.<void>invokeGeneric(); |
|
98 |
|
99 // sig = ()void |
|
100 //o = mh_vv.<void>invokeGeneric(); //BAD |
|
101 o = mh_vv.invokeGeneric(); |
74 } |
102 } |
75 } |
103 } |