diff --git a/ChangeLog.md b/ChangeLog.md index bfe23a0082..e46fb516ab 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fix analyzer [RCS1172](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1172) ([PR](https://github.com/dotnet/roslynator/pull/1710)) - [CLI] Fix `loc` command ([PR](https://github.com/dotnet/roslynator/pull/1711)) - Exclude ref-field backed properties from [RCS1085](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1085) ([PR](https://github.com/dotnet/roslynator/pull/1718) by @ovska) +- [CLI] Fix `rename-symbol` support for top-level statement ([PR](https://github.com/dotnet/roslynator/pull/1721)) ## [4.14.1] - 2025-10-05 diff --git a/src/CSharp.Workspaces/CSharp/FindSymbols/LocalSymbolFinder.cs b/src/CSharp.Workspaces/CSharp/FindSymbols/LocalSymbolFinder.cs index 6b847bc86b..39c02b14fc 100644 --- a/src/CSharp.Workspaces/CSharp/FindSymbols/LocalSymbolFinder.cs +++ b/src/CSharp.Workspaces/CSharp/FindSymbols/LocalSymbolFinder.cs @@ -2,6 +2,7 @@ using System.Collections.Immutable; using System.Diagnostics; +using System.Linq; using System.Threading; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; @@ -102,6 +103,15 @@ public static ImmutableArray FindLocalSymbols( walker.Visit(declaration.BodyOrExpressionBody()); break; } + case SyntaxKind.CompilationUnit: + { + var declaration = (CompilationUnitSyntax)node; + foreach (GlobalStatementSyntax globalStatement in declaration.Members.OfType()) + { + walker.Visit(globalStatement); + } + break; + } case SyntaxKind.Parameter: case SyntaxKind.RecordDeclaration: { diff --git a/src/Workspaces.Core/Rename/SymbolListHelpers.cs b/src/Workspaces.Core/Rename/SymbolListHelpers.cs index 0544553e16..49c168970e 100644 --- a/src/Workspaces.Core/Rename/SymbolListHelpers.cs +++ b/src/Workspaces.Core/Rename/SymbolListHelpers.cs @@ -93,7 +93,7 @@ public static List SortAndFilterMemberSymbols(IEnumerable symb results.Add(symbol); results.AddRange(methodSymbol.TypeParameters); - results.AddRange(methodSymbol.Parameters); + results.AddRange(methodSymbol.Parameters.Where(p => !p.IsImplicitlyDeclared)); } else {