rusty-javac 0.2.1

A Java compiler written in Rust.
Documentation
use javac_ty::Ty;

pub fn store_opcode(ty: &Ty) -> u8 {
    use rust_asm::opcodes;
    match ty {
        Ty::Int | Ty::Boolean | Ty::Byte | Ty::Char | Ty::Short => opcodes::ISTORE,
        Ty::Long => opcodes::LSTORE,
        Ty::Float => opcodes::FSTORE,
        Ty::Double => opcodes::DSTORE,
        _ => opcodes::ASTORE,
    }
}

pub fn load_opcode(ty: &Ty) -> u8 {
    use rust_asm::opcodes;
    match ty {
        Ty::Int | Ty::Boolean | Ty::Byte | Ty::Char | Ty::Short => opcodes::ILOAD,
        Ty::Long => opcodes::LLOAD,
        Ty::Float => opcodes::FLOAD,
        Ty::Double => opcodes::DLOAD,
        _ => opcodes::ALOAD,
    }
}

pub fn return_opcode(ty: &Ty) -> u8 {
    use rust_asm::opcodes;
    match ty {
        Ty::Int | Ty::Boolean | Ty::Byte | Ty::Char | Ty::Short => opcodes::IRETURN,
        Ty::Long => opcodes::LRETURN,
        Ty::Float => opcodes::FRETURN,
        Ty::Double => opcodes::DRETURN,
        Ty::Void => opcodes::RETURN,
        _ => opcodes::ARETURN,
    }
}