Fix unnecessary import rename warning (#5828)

This commit is contained in:
Laurenz 2025-02-06 22:10:43 +01:00
parent f64d029fe6
commit 20dd19c64e
2 changed files with 7 additions and 7 deletions

View File

@ -44,11 +44,10 @@ impl Eval for ast::ModuleImport<'_> {
} }
// If there is a rename, import the source itself under that name. // If there is a rename, import the source itself under that name.
let bare_name = self.bare_name();
let new_name = self.new_name(); let new_name = self.new_name();
if let Some(new_name) = new_name { if let Some(new_name) = new_name {
if let Ok(source_name) = &bare_name { if let ast::Expr::Ident(ident) = self.source() {
if source_name == new_name.as_str() { if ident.as_str() == new_name.as_str() {
// Warn on `import x as x` // Warn on `import x as x`
vm.engine.sink.warn(warning!( vm.engine.sink.warn(warning!(
new_name.span(), new_name.span(),
@ -57,6 +56,7 @@ impl Eval for ast::ModuleImport<'_> {
} }
} }
// Define renamed module on the scope.
vm.define(new_name, source.clone()); vm.define(new_name, source.clone());
} }

View File

@ -255,6 +255,10 @@
// Warning: 17-21 unnecessary import rename to same name // Warning: 17-21 unnecessary import rename to same name
#import enum as enum #import enum as enum
--- import-rename-necessary ---
#import "module.typ" as module: a
#test(module.a, a)
--- import-rename-unnecessary-mixed --- --- import-rename-unnecessary-mixed ---
// Warning: 17-21 unnecessary import rename to same name // Warning: 17-21 unnecessary import rename to same name
#import enum as enum: item #import enum as enum: item
@ -263,10 +267,6 @@
// Warning: 31-35 unnecessary import rename to same name // Warning: 31-35 unnecessary import rename to same name
#import enum as enum: item as item #import enum as enum: item as item
--- import-item-rename-unnecessary-string ---
// Warning: 25-31 unnecessary import rename to same name
#import "module.typ" as module
--- import-item-rename-unnecessary-but-ok --- --- import-item-rename-unnecessary-but-ok ---
#import "modul" + "e.typ" as module #import "modul" + "e.typ" as module
#test(module.b, 1) #test(module.b, 1)