提交 f284f22d 编写于 作者: C CyrusNajmabadi

Fixup pattern we look for before offering ?.

上级 8730c582
......@@ -291,6 +291,38 @@ void M(object o1, object o2)
{
var v1 = o1?.ToString(o2?.ToString());
}
}");
}
[WorkItem(15505, "https://github.com/dotnet/roslyn/issues/15505")]
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseNullPropagation)]
public async Task TestOtherValueIsNotNull1()
{
await TestMissingAsync(
@"using System;
class C
{
void M(object o)
{
var v = [||]o == null ? 0 : o.ToString();
}
}");
}
[WorkItem(15505, "https://github.com/dotnet/roslyn/issues/15505")]
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseNullPropagation)]
public async Task TestOtherValueIsNotNull2()
{
await TestMissingAsync(
@"using System;
class C
{
void M(object o)
{
var v = [||]o != null ? o.ToString() : 0;
}
}");
}
}
......
......@@ -99,6 +99,19 @@ private void AnalyzeSyntax(SyntaxNodeAnalysisContext context)
return;
}
// Needs to be of the forme:
// x == null ? null : ... or
// x != null ? ... : null;
if (isEquals && !syntaxFacts.IsNullLiteralExpression(whenTrueNode))
{
return;
}
if (isNotEquals && !syntaxFacts.IsNullLiteralExpression(whenFalseNode))
{
return;
}
var conditionPartToCheck = conditionRightIsNull ? conditionLeft : conditionRight;
var whenPartToCheck = isEquals ? whenFalseNode : whenTrueNode;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册