public static BinaryExpression ReferenceNotEqual(Expression left, Expression right) { RequiresCanRead(left, nameof(left)); RequiresCanRead(right, nameof(right)); if (TypeUtils.HasReferenceEquality(left.Type, right.Type)) { return new LogicalBinaryExpression(ExpressionType.NotEqual, left, right); } throw Error.ReferenceEqualityNotDefined(left.Type, right.Type); }
public void ReferenceNotEquals() { var expected = LinqExpression.ReferenceNotEqual( LinqExpression.Parameter( typeof(object)), LinqExpression.Parameter( typeof(object))); var actual = $@" @prefix : <http://example.com/> . :s a :ReferenceNotEqual ; :binaryLeft [ :parameterType [ :typeName ""System.Object"" ; ] ] ; :binaryRight [ :parameterType [ :typeName ""System.Object"" ; ] ; ] ; . "; ShouldBe(actual, expected); }