package me.august.lumen.compile.parser.ast.expr; import me.august.lumen.compile.codegen.BuildContext; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; public class NullExpr extends TerminalExpression { private static final Type OBJECT_TYPE = Type.getType(Object.class); @Override public boolean isConstant() { return true; } // null can be any object @Override public Type expressionType() { return OBJECT_TYPE; } @Override public void generate(MethodVisitor visitor, BuildContext context) { visitor.visitInsn(Opcodes.ACONST_NULL); } }