diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs index 35d5619969db..8fe5b74ccb95 100644 --- a/src/librustc_typeck/astconv.rs +++ b/src/librustc_typeck/astconv.rs @@ -568,7 +568,7 @@ impl<'o, 'gcx: 'tcx, 'tcx> AstConv<'gcx, 'tcx>+'o { } tcx.check_stability(assoc_ty.def_id, Some(ref_id), binding.span); - if speculative { + if !speculative { dup_bindings.entry(assoc_ty.def_id) .and_modify(|prev_span| { let mut err = self.tcx().struct_span_lint_node( diff --git a/src/test/ui/lint/issue-50589-multiple-associated-types.stderr b/src/test/ui/lint/issue-50589-multiple-associated-types.stderr index e115e523d873..7f0a1ee1f330 100644 --- a/src/test/ui/lint/issue-50589-multiple-associated-types.stderr +++ b/src/test/ui/lint/issue-50589-multiple-associated-types.stderr @@ -10,3 +10,14 @@ LL | fn test() -> Box> { = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #50589 +warning: associated type binding `Item` specified more than once + --> $DIR/issue-50589-multiple-associated-types.rs:17:39 + | +LL | fn test() -> Box> { + | --------- ^^^^^^^^^^^ used more than once + | | + | first use of `Item` + | + = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! + = note: for more information, see issue #50589 +