Browse Source

Fixed lifting for built-in relational operators.

newNRvisualizers
Daniel Grunwald 14 years ago
parent
commit
7779508e9f
  1. 4
      ICSharpCode.NRefactory.CSharp/Resolver/CSharpOperators.cs
  2. 3
      ICSharpCode.NRefactory.Tests/CSharp/Resolver/BinaryOperatorTests.cs

4
ICSharpCode.NRefactory.CSharp/Resolver/CSharpOperators.cs

@ -825,7 +825,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver @@ -825,7 +825,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
public override OperatorMethod Lift(CSharpOperators operators)
{
return new LiftedBinaryOperatorMethod(operators, this);
var lifted = new LiftedBinaryOperatorMethod(operators, this);
lifted.ReturnType = this.ReturnType; // don't lift the return type for relational operators
return lifted;
}
}

3
ICSharpCode.NRefactory.Tests/CSharp/Resolver/BinaryOperatorTests.cs

@ -368,6 +368,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver @@ -368,6 +368,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
AssertType(typeof(bool), resolver.ResolveBinaryOperator(
BinaryOperatorType.LessThan, MakeResult(typeof(int*)), MakeResult(typeof(uint*))));
TestOperator(MakeResult(typeof(int?)), BinaryOperatorType.LessThan, MakeResult(typeof(int)),
Conversion.IdentityConversion, Conversion.ImplicitNullableConversion, typeof(bool));
}
[Test]

Loading…
Cancel
Save