about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-12-17 18:21:20 +0000
committerbors <bors@rust-lang.org>2020-12-17 18:21:20 +0000
commiteb4fc71dc9024f15a0c9cc44bcc10c861e9d585e (patch)
tree98e37a458058d875b8a5d7cb0d3a5a99e8414b9d /src
parentd23e08448332425a84ae23124bea4dbd685536ce (diff)
parent2edd3016c8bab6f849ca3a907ecd800777e36846 (diff)
Auto merge of #79945 - jackh726:existential_trait_ref, r=nikomatsakis
Move binder for dyn to each list item

This essentially changes `ty::Binder<&'tcx List<ExistentialTraitRef>>` to `&'tcx List<ty::Binder<ExistentialTraitRef>>`.

This is a first step in moving the `dyn Trait` representation closer to Chalk, which we've talked about in `@rust-lang/wg-traits.`

r? `@nikomatsakis`
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/issues/issue-40000.nll.stderr8
-rw-r--r--src/tools/clippy/clippy_lints/src/utils/mod.rs4
2 files changed, 9 insertions, 3 deletions
diff --git a/src/test/ui/issues/issue-40000.nll.stderr b/src/test/ui/issues/issue-40000.nll.stderr
index f673fbae8b7..4e2bde06a52 100644
--- a/src/test/ui/issues/issue-40000.nll.stderr
+++ b/src/test/ui/issues/issue-40000.nll.stderr
@@ -4,5 +4,11 @@ error: higher-ranked subtype error
 LL |     foo(bar);
    |         ^^^
 
-error: aborting due to previous error
+error: higher-ranked subtype error
+  --> $DIR/issue-40000.rs:6:9
+   |
+LL |     foo(bar);
+   |         ^^^
+
+error: aborting due to 2 previous errors
 
diff --git a/src/tools/clippy/clippy_lints/src/utils/mod.rs b/src/tools/clippy/clippy_lints/src/utils/mod.rs
index 3a6b64c90e8..0deaee3a944 100644
--- a/src/tools/clippy/clippy_lints/src/utils/mod.rs
+++ b/src/tools/clippy/clippy_lints/src/utils/mod.rs
@@ -1449,8 +1449,8 @@ pub fn is_must_use_ty<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>) -> bool {
             false
         },
         ty::Dynamic(binder, _) => {
-            for predicate in binder.skip_binder().iter() {
-                if let ty::ExistentialPredicate::Trait(ref trait_ref) = predicate {
+            for predicate in binder.iter() {
+                if let ty::ExistentialPredicate::Trait(ref trait_ref) = predicate.skip_binder() {
                     if must_use_attr(&cx.tcx.get_attrs(trait_ref.def_id)).is_some() {
                         return true;
                     }