未验证 提交 f7b4b1f1 编写于 作者: M msftbot[bot] 提交者: GitHub

Merge pull request #43066 from CyrusNajmabadi/renameOOP

Remove unnecessary rename parameters.
......@@ -40,8 +40,8 @@ private InlineRenameLocation ConvertLocation(RenameLocation location)
public async Task<IInlineRenameReplacementInfo> GetReplacementsAsync(string replacementText, OptionSet optionSet, CancellationToken cancellationToken)
{
var conflicts = await ConflictResolver.ResolveConflictsAsync(
_renameLocationSet, _renameLocationSet.Symbol.Name,
_renameInfo.GetFinalSymbolName(replacementText), optionSet, nonConflictSymbols: null, cancellationToken: cancellationToken).ConfigureAwait(false);
_renameLocationSet, _renameInfo.GetFinalSymbolName(replacementText),
nonConflictSymbols: null, cancellationToken: cancellationToken).ConfigureAwait(false);
return new InlineRenameReplacementInfo(conflicts);
}
......
......@@ -79,7 +79,7 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.Rename
Dim locations = RenameLocations.FindAsync(symbolAndProjectId, workspace.CurrentSolution, optionSet, CancellationToken.None).Result
Dim originalName = symbol.Name.Split("."c).Last()
Dim result = ConflictResolver.ResolveConflictsAsync(locations, originalName, renameTo, optionSet, nonConflictSymbols:=Nothing, cancellationToken:=CancellationToken.None).Result
Dim result = ConflictResolver.ResolveConflictsAsync(locations, renameTo, nonConflictSymbols:=Nothing, cancellationToken:=CancellationToken.None).Result
engineResult = New RenameEngineResult(workspace, result, renameTo)
engineResult.AssertUnlabeledSpansRenamedAndHaveNoConflicts()
......
......@@ -56,17 +56,15 @@ private class Session
public Session(
RenameLocations renameLocationSet,
Location renameSymbolDeclarationLocation,
string originalText,
string replacementText,
OptionSet optionSet,
ImmutableHashSet<ISymbol> nonConflictSymbols,
CancellationToken cancellationToken)
{
_renameLocationSet = renameLocationSet;
_renameSymbolDeclarationLocation = renameSymbolDeclarationLocation;
_originalText = originalText;
_originalText = renameLocationSet.Symbol.Name;
_replacementText = replacementText;
_optionSet = optionSet;
_optionSet = renameLocationSet.Options;
_nonConflictSymbols = nonConflictSymbols;
_cancellationToken = cancellationToken;
......
......@@ -41,9 +41,7 @@ internal static partial class ConflictResolver
/// resolves them where possible.
/// </summary>
/// <param name="renameLocationSet">The locations to perform the renaming at.</param>
/// <param name="originalText">The original name of the identifier.</param>
/// <param name="replacementText">The new name of the identifier</param>
/// <param name="optionSet">The option for rename</param>
/// <param name="nonConflictSymbols">Used after renaming references. References that now bind to any of these
/// symbols are not considered to be in conflict. Useful for features that want to rename existing references to
/// point at some existing symbol. Normally this would be a conflict, but this can be used to override that
......@@ -52,9 +50,7 @@ internal static partial class ConflictResolver
/// <returns>A conflict resolution containing the new solution.</returns>
public static Task<ConflictResolution> ResolveConflictsAsync(
RenameLocations renameLocationSet,
string originalText,
string replacementText,
OptionSet optionSet,
ImmutableHashSet<ISymbol> nonConflictSymbols,
CancellationToken cancellationToken)
{
......@@ -70,8 +66,7 @@ internal static partial class ConflictResolver
var session = new Session(
renameLocationSet, renameSymbolDeclarationLocation,
originalText, replacementText,
optionSet, nonConflictSymbols, cancellationToken);
replacementText, nonConflictSymbols, cancellationToken);
return session.ResolveConflictsAsync();
}
......
......@@ -47,12 +47,12 @@ private class SearchResult
internal OptionSet Options { get; }
// can be default
private readonly ImmutableArray<SearchResult> _overloadsResult;
private readonly ImmutableArray<RenameLocation> _stringsResult;
private readonly ImmutableArray<RenameLocation> _commentsResult;
// possibly null fields
private readonly SearchResult _originalSymbolResult;
private readonly List<SearchResult> _overloadsResult;
internal RenameLocations(
ImmutableHashSet<RenameLocation> locations,
......@@ -73,7 +73,7 @@ private class SearchResult
Solution solution,
OptionSet options,
SearchResult originalSymbolResult,
List<SearchResult> overloadsResult,
ImmutableArray<SearchResult> overloadsResult,
ImmutableArray<RenameLocation> stringsResult,
ImmutableArray<RenameLocation> commentsResult)
{
......@@ -101,7 +101,9 @@ private class SearchResult
var renameMethodGroupReferences =
options.GetOption(RenameOptions.RenameOverloads) || !GetOverloadedSymbols(symbolAndProjectId).Any();
var overloadsToMerge = (options.GetOption(RenameOptions.RenameOverloads) ? overloadsResult : null) ?? SpecializedCollections.EmptyEnumerable<SearchResult>();
var overloadsToMerge = options.GetOption(RenameOptions.RenameOverloads)
? overloadsResult.NullToEmpty()
: ImmutableArray<SearchResult>.Empty;
foreach (var result in overloadsToMerge.Concat(originalSymbolResult))
{
mergedLocations.AddRange(renameMethodGroupReferences
......@@ -135,7 +137,7 @@ private class SearchResult
symbolAndProjectId = await ReferenceProcessing.FindDefinitionSymbolAsync(symbolAndProjectId, solution, cancellationToken).ConfigureAwait(false);
var originalSymbolResult = await AddLocationsReferenceSymbolsAsync(symbolAndProjectId, solution, cancellationToken).ConfigureAwait(false);
var intermediateResult = new RenameLocations(
symbolAndProjectId, solution, optionSet, originalSymbolResult, overloadsResult: null, stringsResult: default, commentsResult: default);
symbolAndProjectId, solution, optionSet, originalSymbolResult, overloadsResult: default, stringsResult: default, commentsResult: default);
return await intermediateResult.FindWithUpdatedOptionsAsync(optionSet, cancellationToken).ConfigureAwait(false);
}
......@@ -146,9 +148,11 @@ internal async Task<RenameLocations> FindWithUpdatedOptionsAsync(OptionSet optio
Contract.ThrowIfNull(Options, "FindWithUpdatedOptionsAsync can only be called on a result of FindAsync");
using (Logger.LogBlock(FunctionId.Rename_AllRenameLocations, cancellationToken))
{
var overloadsResult = _overloadsResult ?? (optionSet.GetOption(RenameOptions.RenameOverloads)
? await GetOverloadsAsync(_symbolAndProjectId, _solution, cancellationToken).ConfigureAwait(false)
: null);
var overloadsResult = !_overloadsResult.IsDefault
? _overloadsResult
: optionSet.GetOption(RenameOptions.RenameOverloads)
? await GetOverloadsAsync(_symbolAndProjectId, _solution, cancellationToken).ConfigureAwait(false)
: default;
var stringsAndComments = await ReferenceProcessing.GetRenamableLocationsInStringsAndCommentsAsync(
_symbolAndProjectId.Symbol,
......@@ -160,22 +164,20 @@ internal async Task<RenameLocations> FindWithUpdatedOptionsAsync(OptionSet optio
return new RenameLocations(
_symbolAndProjectId, _solution, optionSet, _originalSymbolResult,
_overloadsResult ?? overloadsResult,
_overloadsResult.IsDefault ? overloadsResult : _overloadsResult,
_stringsResult.IsDefault ? stringsAndComments.Item1 : _stringsResult,
_commentsResult.IsDefault ? stringsAndComments.Item2 : _commentsResult);
}
}
private static async Task<List<SearchResult>> GetOverloadsAsync(
private static async Task<ImmutableArray<SearchResult>> GetOverloadsAsync(
SymbolAndProjectId symbolAndProjectId, Solution solution, CancellationToken cancellationToken)
{
var overloadsResult = new List<SearchResult>();
using var _ = ArrayBuilder<SearchResult>.GetInstance(out var overloadsResult);
foreach (var overloadedSymbol in GetOverloadedSymbols(symbolAndProjectId))
{
overloadsResult.Add(await AddLocationsReferenceSymbolsAsync(overloadedSymbol, solution, cancellationToken).ConfigureAwait(false));
}
return overloadsResult;
return overloadsResult.ToImmutable();
}
internal static IEnumerable<SymbolAndProjectId> GetOverloadedSymbols(
......
......@@ -61,8 +61,7 @@ public static class Renamer
cancellationToken.ThrowIfCancellationRequested();
var conflictResolution = await ConflictResolver.ResolveConflictsAsync(
locations, locations.SymbolAndProjectId.Symbol.Name, newName,
locations.Options, nonConflictSymbols, cancellationToken).ConfigureAwait(false);
locations, newName, nonConflictSymbols, cancellationToken).ConfigureAwait(false);
return conflictResolution.NewSolution;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册