Assert.AreEqual (ExpressionType.OrElse, expr.NodeType, "OrElse#01");
Assert.AreEqual (typeof (bool), expr.Type, "OrElse#02");
Assert.IsNull (expr.Method, "OrElse#03");
+#if !NET_4_0
Assert.AreEqual ("(True || False)", expr.ToString(), "OrElse#04");
+#endif
}
[Test]
Assert.AreEqual (typeof (OpClass), expr.Type, "OrElse#06");
Assert.AreEqual (mi, expr.Method, "OrElse#07");
Assert.AreEqual ("op_BitwiseOr", expr.Method.Name, "OrElse#08");
+#if !NET_4_0
Assert.AreEqual ("(value(MonoTests.System.Linq.Expressions.OpClass) || value(MonoTests.System.Linq.Expressions.OpClass))",
expr.ToString(), "OrElse#09");
+#endif
}
public class BrokenMethod {
}
[Test]
+ [Category ("NotWorkingInterpreter")]
public void OrElseTestNullable ()
{
var a = Expression.Parameter (typeof (bool?), "a");
}
[Test]
+ [Category ("NotWorkingInterpreter")]
public void OrElseNullableBoolItem ()
{
var i = Expression.Parameter (typeof (Item<bool?>), "i");
}
[Test]
+ [Category ("NotWorkingInterpreter")]
public void UserDefinedOrElse ()
{
var l = Expression.Parameter (typeof (Slot), "l");
Assert.AreEqual (new Slot (64), orelse (new Slot (64), new Slot (64)));
Assert.AreEqual (new Slot (32), orelse (new Slot (32), new Slot (64)));
}
-
+#if !NET_4_0 // dlr bug 5867
[Test]
public void UserDefinedOrElseLiftedToNull ()
{
Assert.AreEqual (new Slot (32), orelse (new Slot (32), null));
Assert.AreEqual (null, orelse (null, null));
}
-
+#endif
[Test]
+ [Category ("NotWorkingInterpreter")]
public void UserDefinedOrElseShortCircuit ()
{
var i = Expression.Parameter (typeof (Item<Slot>), "i");
[Test]
[Category ("NotDotNet")] // https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=350228
+ [Category ("NotWorkingInterpreter")]
public void UserDefinedLiftedOrElseShortCircuit ()
{
var i = Expression.Parameter (typeof (Item<Slot?>), "i");