Skip to content

Commit 0d1bc02

Browse files
committed
Avoid recomputing the target module for an import directive.
1 parent b83739a commit 0d1bc02

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/librustc_resolve/resolve_imports.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -430,15 +430,18 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
430430
names_to_string(&directive.module_path),
431431
module_to_string(self.resolver.current_module));
432432

433-
let target_module = match self.resolver.resolve_module_path(&directive.module_path,
434-
DontUseLexicalScope,
435-
directive.span) {
436-
Success(module) => module,
437-
Indeterminate => return Indeterminate,
438-
Failed(err) => return Failed(err),
433+
let target_module = match directive.target_module.get() {
434+
Some(module) => module,
435+
_ => match self.resolver.resolve_module_path(&directive.module_path,
436+
DontUseLexicalScope,
437+
directive.span) {
438+
Success(module) => module,
439+
Indeterminate => return Indeterminate,
440+
Failed(err) => return Failed(err),
441+
},
439442
};
440-
directive.target_module.set(Some(target_module));
441443

444+
directive.target_module.set(Some(target_module));
442445
let (source, target, value_determined, type_determined) = match directive.subclass {
443446
SingleImport { source, target, ref value_determined, ref type_determined } =>
444447
(source, target, value_determined, type_determined),

0 commit comments

Comments
 (0)