Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DO NOT MERGE] bootstrap with next solver enabled #124812

Closed
wants to merge 18 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add fixme :(
  • Loading branch information
lcnr committed May 24, 2024
commit 46fa6aefd1f29ddccb7d258b4dcb6998f33d2f01
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,16 @@ pub(super) fn is_rigid_alias<'tcx>(
// which is non-trivial. We may be forced to handle this case
// in the future.
alias.self_ty().is_placeholder()
&& no_blanket_impls(tcx, alias.trait_def_id(tcx))
&& no_applicable_blanket_impls(tcx, alias.trait_def_id(tcx))
&& !may_normalize_via_env(param_env, alias)
}

// FIXME: This could check whether the blanket impl has any where-bounds
// which definitely don't hold. Doing so is quite annoying, both just in
// general, but we also have to be careful about builtin blanket impls,
// e.g. `DiscriminantKind`.
#[instrument(level = "trace", skip(tcx), ret)]
fn no_blanket_impls<'tcx>(tcx: TyCtxt<'tcx>, trait_def_id: DefId) -> bool {
fn no_applicable_blanket_impls<'tcx>(tcx: TyCtxt<'tcx>, trait_def_id: DefId) -> bool {
// FIXME(ptr_metadata): There's currently a builtin impl for `Pointee` which
// applies for all `T` as long as `T: Sized` holds. THis impl should
// get removed in favor of `Pointee` being a super trait of `Sized`.
Expand Down