test/tools/javac/meth/InvokeMH.java

changeset 573
005bec70ca27
parent 554
9d9f26857129
parent 571
f0e3ec1f9d9f
child 674
584365f256a7
     1.1 --- a/test/tools/javac/meth/InvokeMH.java	Thu Jun 17 16:28:21 2010 -0700
     1.2 +++ b/test/tools/javac/meth/InvokeMH.java	Fri Jun 18 15:12:04 2010 -0700
     1.3 @@ -48,28 +48,56 @@
     1.4      void test(MethodHandle mh_SiO,
     1.5                MethodHandle mh_vS,
     1.6                MethodHandle mh_vi,
     1.7 -              MethodHandle mh_vv) {
     1.8 +              MethodHandle mh_vv) throws Throwable {
     1.9          Object o; String s; int i;  // for return type testing
    1.10  
    1.11          // next five must have sig = (String,int)Object
    1.12 -        mh_SiO.invoke("world", 123);
    1.13 -        mh_SiO.invoke("mundus", 456);
    1.14 +        mh_SiO.invokeExact("world", 123);
    1.15 +        mh_SiO.invokeExact("mundus", 456);
    1.16          Object k = "kosmos";
    1.17 -        mh_SiO.invoke((String)k, 789);
    1.18 -        o = mh_SiO.invoke((String)null, 000);
    1.19 -        o = mh_SiO.<Object>invoke("arda", -123);
    1.20 +        mh_SiO.invokeExact((String)k, 789);
    1.21 +        o = mh_SiO.invokeExact((String)null, 000);
    1.22 +        o = mh_SiO.<Object>invokeExact("arda", -123);
    1.23  
    1.24          // sig = ()String
    1.25 -        s = mh_vS.<String>invoke();
    1.26 +        s = mh_vS.<String>invokeExact();
    1.27  
    1.28          // sig = ()int
    1.29 -        i = mh_vi.<int>invoke();
    1.30 -        o = mh_vi.<int>invoke();
    1.31 -        //s = mh_vi.<int>invoke(); //BAD
    1.32 -        mh_vi.<int>invoke();
    1.33 +        i = mh_vi.<int>invokeExact();
    1.34 +        o = mh_vi.<int>invokeExact();
    1.35 +        //s = mh_vi.<int>invokeExact(); //BAD
    1.36 +        mh_vi.<int>invokeExact();
    1.37  
    1.38          // sig = ()void
    1.39 -        //o = mh_vv.<void>invoke(); //BAD
    1.40 -        mh_vv.<void>invoke();
    1.41 +        //o = mh_vv.<void>invokeExact(); //BAD
    1.42 +        mh_vv.<void>invokeExact();
    1.43 +    }
    1.44 +
    1.45 +    void testGen(MethodHandle mh_SiO,
    1.46 +                 MethodHandle mh_vS,
    1.47 +                 MethodHandle mh_vi,
    1.48 +                 MethodHandle mh_vv) throws Throwable {
    1.49 +        Object o; String s; int i;  // for return type testing
    1.50 +
    1.51 +        // next five must have sig = (*,*)*
    1.52 +        mh_SiO.invokeGeneric((Object)"world", (Object)123);
    1.53 +        mh_SiO.<void>invokeGeneric((Object)"mundus", (Object)456);
    1.54 +        Object k = "kosmos";
    1.55 +        mh_SiO.invokeGeneric(k, 789);
    1.56 +        o = mh_SiO.invokeGeneric(null, 000);
    1.57 +        o = mh_SiO.<Object>invokeGeneric("arda", -123);
    1.58 +
    1.59 +        // sig = ()String
    1.60 +        o = mh_vS.invokeGeneric();
    1.61 +
    1.62 +        // sig = ()int
    1.63 +        i = mh_vi.<int>invokeGeneric();
    1.64 +        o = mh_vi.invokeGeneric();
    1.65 +        //s = mh_vi.<int>invokeGeneric(); //BAD
    1.66 +        mh_vi.<void>invokeGeneric();
    1.67 +
    1.68 +        // sig = ()void
    1.69 +        //o = mh_vv.<void>invokeGeneric(); //BAD
    1.70 +        o = mh_vv.invokeGeneric();
    1.71      }
    1.72  }

mercurial