Skip to content

Commit d50627d

Browse files
report errors in the commit phase
1 parent 109e387 commit d50627d

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

compiler/rustc_resolve/src/imports.rs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,17 @@ impl<'ra> ImportResolutionOutputs<'ra> {
8585
for (ns, pending_binding) in import_bindings.into_iter_with() {
8686
match pending_binding {
8787
PendingBinding::Ready(Some(binding)) => {
88+
if binding.is_assoc_item()
89+
&& !r.tcx.features().import_trait_associated_functions()
90+
{
91+
feature_err(
92+
r.tcx.sess,
93+
sym::import_trait_associated_functions,
94+
import.span,
95+
"`use` associated items of traits is unstable",
96+
)
97+
.emit();
98+
}
8899
r.define_binding_local(parent, *target, ns, binding);
89100
}
90101
PendingBinding::Ready(None) => {
@@ -105,6 +116,16 @@ impl<'ra> ImportResolutionOutputs<'ra> {
105116
continue;
106117
};
107118

119+
if module.is_trait() && !r.tcx.features().import_trait_associated_functions() {
120+
feature_err(
121+
r.tcx.sess,
122+
sym::import_trait_associated_functions,
123+
import.span,
124+
"`use` associated items of traits is unstable",
125+
)
126+
.emit();
127+
}
128+
108129
module.glob_importers.borrow_mut().push(import);
109130

110131
for (binding, key, warn_ambiguity) in import_bindings {
@@ -987,17 +1008,6 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
9871008
);
9881009
let pending_binding = match binding_result {
9891010
Ok(binding) => {
990-
if binding.is_assoc_item()
991-
&& !this.tcx.features().import_trait_associated_functions()
992-
{
993-
feature_err(
994-
this.tcx.sess,
995-
sym::import_trait_associated_functions,
996-
import.span,
997-
"`use` associated items of traits is unstable",
998-
)
999-
.emit();
1000-
}
10011011
// We need the `target`, `source` can be extracted.
10021012
let imported_binding = this.import(binding, import);
10031013
PendingBinding::Ready(Some(imported_binding))
@@ -1579,16 +1589,6 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
15791589
return SideEffectBindings::None;
15801590
};
15811591

1582-
if module.is_trait() && !self.tcx.features().import_trait_associated_functions() {
1583-
feature_err(
1584-
self.tcx.sess,
1585-
sym::import_trait_associated_functions,
1586-
import.span,
1587-
"`use` associated items of traits is unstable",
1588-
)
1589-
.emit();
1590-
}
1591-
15921592
if module == import.parent_scope.module {
15931593
return SideEffectBindings::None;
15941594
}

0 commit comments

Comments
 (0)