@@ -7,7 +7,7 @@ sealed class LocalVariableRenamingRewriter(
77 IVariableNameProvider variableNameProvider )
88 : CSharpSyntaxRewriter , ILocalVariableRenamingRewriter
99{
10- private readonly Dictionary < string , string > _names = [ ] ;
10+ private Dictionary < string , string > Names { get ; init ; } = [ ] ;
1111 private bool _formatCode ;
1212 private bool _isPartial ;
1313 private SemanticModel ? _semanticModel ;
@@ -20,6 +20,14 @@ public SyntaxNode Rewrite(SemanticModel semanticModel, bool formatCode, bool isP
2020 return Visit ( lambda ) ;
2121 }
2222
23+ public ILocalVariableRenamingRewriter Clone ( )
24+ {
25+ return new LocalVariableRenamingRewriter ( triviaTools , variableNameProvider )
26+ {
27+ Names = new Dictionary < string , string > ( Names )
28+ } ;
29+ }
30+
2331 public override SyntaxNode ? VisitVariableDeclarator ( VariableDeclaratorSyntax node ) =>
2432 base . VisitVariableDeclarator ( node . WithIdentifier ( SyntaxFactory . Identifier ( GetUniqueName ( node . Identifier . Text ) ) ) ) ;
2533
@@ -31,7 +39,7 @@ public SyntaxNode Rewrite(SemanticModel semanticModel, bool formatCode, bool isP
3139
3240 public override SyntaxToken VisitToken ( SyntaxToken token )
3341 {
34- if ( _names . TryGetValue ( token . Text , out var newName )
42+ if ( Names . TryGetValue ( token . Text , out var newName )
3543 && token . IsKind ( SyntaxKind . IdentifierToken )
3644 && token . Parent is { } parent
3745 && ( _semanticModel ? . SyntaxTree != parent . SyntaxTree || _semanticModel . GetSymbolInfo ( parent ) . Symbol is ILocalSymbol ) )
@@ -44,10 +52,10 @@ public override SyntaxToken VisitToken(SyntaxToken token)
4452
4553 private string GetUniqueName ( string baseName )
4654 {
47- if ( ! _names . TryGetValue ( baseName , out var newName ) )
55+ if ( ! Names . TryGetValue ( baseName , out var newName ) )
4856 {
4957 newName = variableNameProvider . GetLocalUniqueVariableName ( baseName ) ;
50- _names . Add ( baseName , newName ) ;
58+ Names . Add ( baseName , newName ) ;
5159 }
5260
5361 return newName ;
0 commit comments