Skip to content

Commit 57aeff4

Browse files
committed
Fix string comparison in PChecker runtime
Fix the implementation of PString in the checker runtime to compute string ordering correctly.
1 parent 369b8a9 commit 57aeff4

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

Src/PChecker/CheckerCore/Runtime/Values/PString.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -92,73 +92,73 @@ private PString(string value)
9292
[MethodImpl(MethodImplOptions.AggressiveInlining)]
9393
public static PBool operator <(in PString pString1, in PString pString2)
9494
{
95-
return string.Compare(pString1.value, pString2.value) == -1;
95+
return string.Compare(pString1.value, pString2.value) < 0;
9696
}
9797

9898
[MethodImpl(MethodImplOptions.AggressiveInlining)]
9999
public static PBool operator <(in IPValue pValue1, in PString pValue2)
100100
{
101-
return pValue1 is PString pString && string.Compare(pString.value, pValue2.value) == -1;
101+
return pValue1 is PString pString && string.Compare(pString.value, pValue2.value) < 0;
102102
}
103103

104104
[MethodImpl(MethodImplOptions.AggressiveInlining)]
105105
public static PBool operator <(in PString pValue1, in IPValue pValue2)
106106
{
107-
return pValue2 is PString pString && string.Compare(pString.value, pValue1.value) == -1;
107+
return pValue2 is PString pString && string.Compare(pString.value, pValue1.value) < 0;
108108
}
109109

110110
[MethodImpl(MethodImplOptions.AggressiveInlining)]
111111
public static PBool operator >(in PString pString1, in PString pString2)
112112
{
113-
return string.Compare(pString1.value, pString2.value) == 1;
113+
return string.Compare(pString1.value, pString2.value) > 0;
114114
}
115115

116116
[MethodImpl(MethodImplOptions.AggressiveInlining)]
117117
public static PBool operator >(in IPValue pValue1, in PString pValue2)
118118
{
119-
return pValue1 is PString pString && string.Compare(pString.value, pValue2.value) == 1;
119+
return pValue1 is PString pString && string.Compare(pString.value, pValue2.value) > 0;
120120
}
121121

122122
[MethodImpl(MethodImplOptions.AggressiveInlining)]
123123
public static PBool operator >(in PString pValue1, in IPValue pValue2)
124124
{
125-
return pValue2 is PString pString && string.Compare(pString.value, pValue1.value) == 1;
125+
return pValue2 is PString pString && string.Compare(pString.value, pValue1.value) > 0;
126126
}
127127

128128
[MethodImpl(MethodImplOptions.AggressiveInlining)]
129129
public static PBool operator <=(in PString pString1, in PString pString2)
130130
{
131-
return string.Compare(pString1.value, pString2.value) != 1;
131+
return string.Compare(pString1.value, pString2.value) <= 0;
132132
}
133133

134134
[MethodImpl(MethodImplOptions.AggressiveInlining)]
135135
public static PBool operator <=(in IPValue pValue1, in PString pValue2)
136136
{
137-
return pValue1 is PString pString && string.Compare(pString.value, pValue2.value) != 1;
137+
return pValue1 is PString pString && string.Compare(pString.value, pValue2.value) <= 0;
138138
}
139139

140140
[MethodImpl(MethodImplOptions.AggressiveInlining)]
141141
public static PBool operator <=(in PString pValue1, in IPValue pValue2)
142142
{
143-
return pValue2 is PString pString && string.Compare(pString.value, pValue1.value) != 1;
143+
return pValue2 is PString pString && string.Compare(pString.value, pValue1.value) <= 0;
144144
}
145145

146146
[MethodImpl(MethodImplOptions.AggressiveInlining)]
147147
public static PBool operator >=(in PString pString1, in PString pString2)
148148
{
149-
return string.Compare(pString1.value, pString2.value) != -1;
149+
return string.Compare(pString1.value, pString2.value) >= 0;
150150
}
151151

152152
[MethodImpl(MethodImplOptions.AggressiveInlining)]
153153
public static PBool operator >=(in IPValue pValue1, in PString pValue2)
154154
{
155-
return pValue1 is PString pString && string.Compare(pString.value, pValue2.value) != -1;
155+
return pValue1 is PString pString && string.Compare(pString.value, pValue2.value) >= 0;
156156
}
157157

158158
[MethodImpl(MethodImplOptions.AggressiveInlining)]
159159
public static PBool operator >=(in PString pValue1, in IPValue pValue2)
160160
{
161-
return pValue2 is PString pString && string.Compare(pString.value, pValue1.value) != -1;
161+
return pValue2 is PString pString && string.Compare(pString.value, pValue1.value) >= 0;
162162
}
163163

164164
[MethodImpl(MethodImplOptions.AggressiveInlining)]
@@ -194,4 +194,4 @@ public object ToDict()
194194
return ToString();
195195
}
196196
}
197-
}
197+
}

0 commit comments

Comments
 (0)