> This PR consolidates conflict detection for proposed renames, relocations, or new-to-be-inserted declarations. The ConflictDetectionSession relieves the DeclarationFinder of rename conflict detection 'collateral duty'. The ConflictDetectionSession will generate a non-conflicting name, as part of the conflict evaluation, based on the proposed rename, proposed new Declaration, or proposed Declaration relocation/move. The generated name is used for providing a non-conflict initial...
identifier to the user (e.g., ExtractInterfaceRefactoring), or generating non-user-defined identifiers (e.g., backing field identifiers in EncapsulateFieldRefactoring) The ConflictDetectionSession provides conflict analysis for multiple Declaration identifier (and/or location changes) per session. When checking for conflicts, it takes into account identifiers previously proposed within the session. The PR removes conflict detection code (and tests) from the DeclarationFinder and...
incorporates a ConflictSession where the DeclarationFinder.FindNewDeclarationNameConflicts was used within RenameRefactoring and AssignedByValParameterMakeLocalCopyQuickFix. ExtractInterfaceRefactoring was also updated in order to evaluate the user-provided identifier for the new interface class module. A PR to incorporate use of a ConflictDetectionSession in EncapsulateFieldRefactoring will follow once this PR has been merged. Changes required by EncapsulateFieldRefactoring...
are fairly extensive - so it was excluded from this PR.
@FreeMan Lol feels like it sometimes. I have had 21 people install the Azure Devops package though. Just waiting for someone to post a review (seems quite rare on the the Marketplace).