jjg@309: /* jjg@309: * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. jjg@309: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. jjg@309: * jjg@309: * This code is free software; you can redistribute it and/or modify it jjg@309: * under the terms of the GNU General Public License version 2 only, as jjg@309: * published by the Free Software Foundation. jjg@309: * jjg@309: * This code is distributed in the hope that it will be useful, but WITHOUT jjg@309: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or jjg@309: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License jjg@309: * version 2 for more details (a copy is included in the LICENSE file that jjg@309: * accompanied this code). jjg@309: * jjg@309: * You should have received a copy of the GNU General Public License version jjg@309: * 2 along with this work; if not, write to the Free Software Foundation, jjg@309: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. jjg@309: * jjg@309: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, jjg@309: * CA 95054 USA or visit www.sun.com if you need additional information or jjg@309: * have any questions. jjg@309: */ jjg@309: jjg@309: /* jjg@309: * ##test jjg@309: * ##bug 6754038 jjg@309: * ##summary Generate call sites for method handle jjg@309: * ##author jrose jjg@309: * jjg@309: * ##compile/fail -source 7 -target 7 InvokeMH_BAD72.java jjg@309: */ jjg@309: jjg@309: /* jjg@309: * Standalone testing: jjg@309: * jjg@309: * $ cd $MY_REPO_DIR/langtools jjg@309: * $ (cd make; make) jjg@309: * $ ./dist/bootstrap/bin/javac -d dist test/tools/javac/meth/InvokeMH_BAD72.java jjg@309: * $ javap -c -classpath dist meth.InvokeMH_BAD72 jjg@309: * jjg@309: */ jjg@309: jjg@309: package meth; jjg@309: jjg@309: import java.dyn.MethodHandle; jjg@309: jjg@309: public class InvokeMH_BAD72 { jjg@309: void test(MethodHandle mh_SiO, jjg@309: MethodHandle mh_vS, jjg@309: MethodHandle mh_vi, jjg@309: MethodHandle mh_vv) { jjg@309: Object o; String s; int i; // for return type testing jjg@309: jjg@309: // next five must have sig = (String,int)Object jjg@309: mh_SiO.invoke("world", 123); jjg@309: mh_SiO.invoke("mundus", 456); jjg@309: Object k = "kosmos"; jjg@309: mh_SiO.invoke((String)k, 789); jjg@309: o = mh_SiO.invoke((String)null, 000); jjg@309: o = mh_SiO.invoke("arda", -123); jjg@309: jjg@309: // sig = ()String jjg@309: s = mh_vS.invoke(); jjg@309: jjg@309: // sig = ()int jjg@309: i = mh_vi.invoke(); jjg@309: o = mh_vi.invoke(); jjg@309: //s = mh_vi.invoke(); //BAD jjg@309: mh_vi.invoke(); jjg@309: jjg@309: // sig = ()void jjg@309: o = mh_vv.invoke(); //BAD jjg@309: mh_vv.invoke(); jjg@309: } jjg@309: }