+ Expression LiftOperand (ResolveContext rc, Expression expr)
+ {
+ TypeSpec type;
+ if (expr.IsNull) {
+ type = Left.IsNull ? Right.Type : Left.Type;
+ } else {
+ type = expr.Type;
+ }
+
+ if (!type.IsNullableType)
+ type = rc.Module.PredefinedTypes.Nullable.TypeSpec.MakeGenericType (rc.Module, new[] { type });
+
+ return Wrap.Create (expr, type);
+ }
+