void emitStaticInvoke(MemberName member,Name name){
  assert (member.equals(name.function.member()));
  Class<?> defc=member.getDeclaringClass();
  String cname=getInternalName(defc);
  String mname=member.getName();
  String mtype;
  byte refKind=member.getReferenceKind();
  if (refKind == REF_invokeSpecial) {
    assert (member.canBeStaticallyBound()) : member;
    refKind=REF_invokeVirtual;
  }
  if (member.getDeclaringClass().isInterface() && refKind == REF_invokeVirtual) {
    refKind=REF_invokeInterface;
  }
  emitPushArguments(name);
  if (member.isMethod()) {
    mtype=member.getMethodType().toMethodDescriptorString();
    mv.visitMethodInsn(refKindOpcode(refKind),cname,mname,mtype,member.getDeclaringClass().isInterface());
  }
 else {
    mtype=MethodType.toFieldDescriptorString(member.getFieldType());
    mv.visitFieldInsn(refKindOpcode(refKind),cname,mname,mtype);
  }
  if (name.type == L_TYPE) {
    Class<?> rtype=member.getInvocationType().returnType();
    assert (!rtype.isPrimitive());
    if (rtype != Object.class && !rtype.isInterface()) {
      assertStaticType(rtype,name);
    }
  }
}

void emitStaticInvoke ( MemberName member , Name name ) { assert ( member . equals ( name . function . member ( ) ) ) ; Class < ? > defc = member . getDeclaringClass ( ) ; String cname = getInternalName ( defc ) ; String mname = member . getName ( ) ; String mtype ; byte refKind = member . getReferenceKind ( ) ; if ( refKind == REF_invokeSpecial ) { assert ( member . canBeStaticallyBound ( ) ) : member ; refKind = REF_invokeVirtual ; } if ( member . getDeclaringClass ( ) . isInterface ( ) && refKind == REF_invokeVirtual ) { refKind = REF_invokeInterface ; } emitPushArguments ( name ) ; if ( member . isMethod ( ) ) { mtype = member . getMethodType ( ) . toMethodDescriptorString ( ) ; mv . visitMethodInsn ( refKindOpcode ( refKind ) , cname , mname , mtype , member . getDeclaringClass ( ) . isInterface ( ) ) ; } else { mtype = MethodType . toFieldDescriptorString ( member . getFieldType ( ) ) ; mv . visitFieldInsn ( refKindOpcode ( refKind ) , cname , mname , mtype ) ; } if ( name . type == L_TYPE ) { Class < ? > rtype = member . getInvocationType ( ) . returnType ( ) ; assert ( ! rtype . isPrimitive ( ) ) ; if ( rtype != Object . class && ! rtype . isInterface ( ) ) { assertStaticType ( rtype , name ) ; } } }
emit an invoke for the given name , using the membername directly .
