提交 b1070f8d 编写于 作者: C CyrusNajmabadi 提交者: GitHub

Merge pull request #16217 from CyrusNajmabadi/useCollectionIssue

Ensure the 'Add' name actually matches before accepting any invocation expression.
Fixes #16158
......@@ -646,6 +646,43 @@ void M()
}
};
}
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
[WorkItem(16158, "https://github.com/dotnet/roslyn/issues/16158")]
public async Task TestIncorrectAddName()
{
await TestAsync(
@"using System.Collections.Generic;
public class Foo
{
public static void Bar()
{
string item = null;
var items = new List<string>();
var values = new [||]List<string>(); // Collection initialization can be simplified
values.Add(item);
values.AddRange(items);
}
}",
@"using System.Collections.Generic;
public class Foo
{
public static void Bar()
{
string item = null;
var items = new List<string>();
var values = new List<string>
{
item
}; // Collection initialization can be simplified
values.AddRange(items);
}
}");
}
}
......
......@@ -186,7 +186,7 @@ private void AddMatches(ArrayBuilder<TExpressionStatementSyntax> matches)
return false;
}
_syntaxFacts.GetPartsOfMemberAccessExpression(memberAccess, out instance, out var memberName);
_syntaxFacts.GetPartsOfMemberAccessExpression(memberAccess, out var localInstance, out var memberName);
_syntaxFacts.GetNameAndArityOfSimpleName(memberName, out var name, out var arity);
if (arity != 0 || !name.Equals(nameof(IList.Add)))
......@@ -194,6 +194,7 @@ private void AddMatches(ArrayBuilder<TExpressionStatementSyntax> matches)
return false;
}
instance = localInstance;
return true;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册