protected override void EmitUnaryOperator(MethodContext method, Compiler compiler, ExpressionContext inner, Parse.UnaryExpression expression)
{
switch (expression.Operator)
{
case Parse.Operator.Exists:
method.IL.EmitCall(OpCodes.Callvirt, typeof(ICollection<>).MakeGenericType(inner.Type.GetNative(compiler.Emitter)).GetProperty("Count").GetGetMethod(), null);
method.IL.Emit(OpCodes.Ldc_I4_0);
method.IL.Emit(OpCodes.Cgt);
break;
case Parse.Operator.IsNull:
method.IL.Emit(OpCodes.Pop);
method.IL.Emit(OpCodes.Ldc_I4_0);
break;
default: throw NotSupported(expression);
}
}