public static CallSite bootstrap(MethodHandles.Lookup lookup, String name, MethodType type, String splatmapString, String file, int line) { String[] targetAndMethod = name.split(":"); String superName = JavaNameMangler.demangleMethodName(targetAndMethod[1]); InvokeSite site; switch (targetAndMethod[0]) { case "invokeInstanceSuper": site = new InstanceSuperInvokeSite(type, superName, splatmapString, file, line); break; case "invokeClassSuper": site = new ClassSuperInvokeSite(type, superName, splatmapString, file, line); break; default: throw new RuntimeException("invalid super call: " + name); } return InvokeSite.bootstrap(site, lookup); }
public static CallSite bootstrap(MethodHandles.Lookup lookup, String name, MethodType type, String splatmapString, String file, int line) { String[] targetAndMethod = name.split(":"); String superName = JavaNameMangler.demangleMethodName(targetAndMethod[1]); InvokeSite site; switch (targetAndMethod[0]) { case "invokeInstanceSuper": site = new InstanceSuperInvokeSite(type, superName, splatmapString, file, line); break; case "invokeClassSuper": site = new ClassSuperInvokeSite(type, superName, splatmapString, file, line); break; default: throw new RuntimeException("invalid super call: " + name); } return InvokeSite.bootstrap(site, lookup); }
public static CallSite bootstrap(MethodHandles.Lookup lookup, String name, MethodType type, String splatmapString, String file, int line) { List<String> targetAndMethod = StringSupport.split(name, ':'); String superName = JavaNameMangler.demangleMethodName(targetAndMethod.get(1)); InvokeSite site; switch (targetAndMethod.get(0)) { case "invokeInstanceSuper": site = new InstanceSuperInvokeSite(type, superName, splatmapString, file, line); break; case "invokeClassSuper": site = new ClassSuperInvokeSite(type, superName, splatmapString, file, line); break; case "invokeUnresolvedSuper": site = new UnresolvedSuperInvokeSite(type, superName, splatmapString, file, line); break; case "invokeZSuper": site = new ZSuperInvokeSite(type, superName, splatmapString, file, line); break; default: throw new RuntimeException("invalid super call: " + name); } return InvokeSite.bootstrap(site, lookup); }
public static CallSite bootstrap(MethodHandles.Lookup lookup, String name, MethodType type, String splatmapString, String file, int line) { List<String> targetAndMethod = StringSupport.split(name, ':'); String superName = JavaNameMangler.demangleMethodName(targetAndMethod.get(1)); InvokeSite site; switch (targetAndMethod.get(0)) { case "invokeInstanceSuper": site = new InstanceSuperInvokeSite(type, superName, splatmapString, file, line); break; case "invokeClassSuper": site = new ClassSuperInvokeSite(type, superName, splatmapString, file, line); break; case "invokeUnresolvedSuper": site = new UnresolvedSuperInvokeSite(type, superName, splatmapString, file, line); break; case "invokeZSuper": site = new ZSuperInvokeSite(type, superName, splatmapString, file, line); break; default: throw new RuntimeException("invalid super call: " + name); } return InvokeSite.bootstrap(site, lookup); }