Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/syntax_helpers/suggest_name.rs')
-rw-r--r--crates/ide-db/src/syntax_helpers/suggest_name.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/crates/ide-db/src/syntax_helpers/suggest_name.rs b/crates/ide-db/src/syntax_helpers/suggest_name.rs
index 3a785fbe80..09e6115320 100644
--- a/crates/ide-db/src/syntax_helpers/suggest_name.rs
+++ b/crates/ide-db/src/syntax_helpers/suggest_name.rs
@@ -123,6 +123,20 @@ impl NameGenerator {
generator
}
+ pub fn new_from_scope_non_locals(scope: Option<SemanticsScope<'_>>) -> Self {
+ let mut generator = Self::default();
+ if let Some(scope) = scope {
+ scope.process_all_names(&mut |name, scope| {
+ if let hir::ScopeDef::Local(_) = scope {
+ return;
+ }
+ generator.insert(name.as_str());
+ });
+ }
+
+ generator
+ }
+
/// Suggest a name without conflicts. If the name conflicts with existing names,
/// it will try to resolve the conflict by adding a numeric suffix.
pub fn suggest_name(&mut self, name: &str) -> SmolStr {