Table of Contents

Enum ComparisonLiftingKind

Namespace
ICSharpCode.Decompiler.IL
Assembly
ICSharpCode.Decompiler.dll
public enum ComparisonLiftingKind

Fields

CSharp = 1

C#-style lifted comparison:

  • operands that have a ResultType != this.InputType are expected to return a value of type Nullable{T}, where T.GetStackType() == this.InputType.
  • if both operands are null, equality comparisons evaluate to 1, all other comparisons to 0.
  • if one operand is null, inequality comparisons evaluate to 1, all other comparisons to 0.
  • if neither operand is null, the underlying comparison is performed.

Note that even though C#-style lifted comparisons set IsLifted=true, the ResultType remains I4 as with normal comparisons.

None = 0

Not a lifted comparison.

ThreeValuedLogic = 2

SQL-style lifted comparison: works like a lifted binary numeric instruction, that is, if any input operand is null, the comparison evaluates to null.