IKVM.Internal.CodeEmitter.EmitAssertType C# (CSharp) Method

EmitAssertType() private method

private EmitAssertType ( Type type ) : void
type IKVM.Reflection.Type
return void
        internal void EmitAssertType(Type type)
        {
            CodeEmitterLocal lb = DeclareLocal(Types.Object);
            Emit(OpCodes.Stloc, lb);
            Emit(OpCodes.Ldloc, lb);
            Emit(OpCodes.Isinst, type);
            Emit(OpCodes.Dup);
            CodeEmitterLabel ok = DefineLabel();
            Emit(OpCodes.Brtrue_S, ok);
            Emit(OpCodes.Ldloc, lb);
            Emit(OpCodes.Brfalse_S, ok);	// handle null
            EmitThrow("java.lang.IncompatibleClassChangeError");
            MarkLabel(ok);
        }