check binders with bound vars for global bounds that don't hold

(instead of just late bound vars)
This commit is contained in:
Rémy Rakic
2023-11-06 15:46:17 +00:00
parent e1fcecb1b9
commit 2beca157c9
@@ -32,6 +32,7 @@
use rustc_trait_selection::traits::{
self, ObligationCause, ObligationCauseCode, ObligationCtxt, WellFormedLoc,
};
use rustc_type_ir::TypeFlags;
use std::cell::LazyCell;
use std::ops::{ControlFlow, Deref};
@@ -1877,7 +1878,7 @@ fn check_false_global_bounds(&mut self) {
continue;
}
// Match the existing behavior.
if pred.is_global() && !pred.has_late_bound_vars() {
if pred.is_global() && !pred.has_type_flags(TypeFlags::HAS_BINDER_VARS) {
let pred = self.normalize(span, None, pred);
let hir_node = tcx.hir().find_by_def_id(self.body_def_id);