internal override void Emit (EmitContext ec)
{
- expression.Emit (ec);
+ if (expression.Type == typeof (void)) {
+ ec.ig.Emit (OpCodes.Ldc_I4_0);
+ return;
+ }
- var ig = ec.ig;
- ig.Emit (OpCodes.Isinst, type_operand);
- ig.Emit (OpCodes.Ldnull);
- ig.Emit (OpCodes.Cgt_Un);
+ ec.EmitIsInst (expression, type_operand);
+
+ ec.ig.Emit (OpCodes.Ldnull);
+ ec.ig.Emit (OpCodes.Cgt_Un);
}
}
}