Skip to content

Commit e8000f7

Browse files
Merge pull request #1232 from icsharpcode/fix-issue-1089-16460915266695110559
Fix Issue #1089: Don't optimize Option Compare Text empty string
2 parents de01dc2 + 37d93aa commit e8000f7

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

CodeConverter/CSharp/VisualBasicEqualityComparison.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,12 @@ private static ObjectCreationExpressionSyntax NewStringFromArg(ExpressionSyntax
179179
public bool TryConvertToNullOrEmptyCheck(VBSyntax.BinaryExpressionSyntax node, ExpressionSyntax lhs,
180180
ExpressionSyntax rhs, out CSharpSyntaxNode? visitBinaryExpression)
181181
{
182+
if (OptionCompareTextCaseInsensitive)
183+
{
184+
visitBinaryExpression = null;
185+
return false;
186+
}
187+
182188
bool lhsEmpty = IsNothingOrEmpty(node.Left);
183189
bool rhsEmpty = IsNothingOrEmpty(node.Right);
184190

Tests/CSharp/ExpressionTests/StringExpressionTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,11 +208,11 @@ public void Foo()
208208
{
209209
throw new Exception();
210210
}
211-
if (string.IsNullOrEmpty(s1))
211+
if (CultureInfo.CurrentCulture.CompareInfo.Compare(s1 ?? """", """", CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth) == 0)
212212
{
213213
//
214214
}
215-
if (string.IsNullOrEmpty(s1))
215+
if (CultureInfo.CurrentCulture.CompareInfo.Compare(s1 ?? """", """", CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth) == 0)
216216
{
217217
//
218218
}

0 commit comments

Comments
 (0)