Auto merge of #107038 - compiler-errors:dont-wfcheck-non-local-rpit, r=oli-obk
Don't wf-check non-local RPITs We were using `ty::is_impl_trait_defn(..).is_none()` to check if we need to add WF obligations for an opaque type. This is *supposed* to be checking if the type is a TAIT, since RPITs' wfness is implied by wf checking its parent item, but since `is_impl_trait_defn` returns `None` for non-local RPIT and async futures, we unnecessarily consider wf predicates for an RPIT if it is coming from a foreign crate. Fixes #107036 r? `@oli-obk` but feel free to reassign
This commit is contained in:
commit
4c83bd03a9
10 changed files with 61 additions and 3 deletions
|
@ -177,6 +177,12 @@ rustc_queries! {
|
|||
separate_provide_extern
|
||||
}
|
||||
|
||||
query is_type_alias_impl_trait(key: DefId) -> bool
|
||||
{
|
||||
desc { "determine whether the opaque is a type-alias impl trait" }
|
||||
separate_provide_extern
|
||||
}
|
||||
|
||||
query analysis(key: ()) -> Result<(), ErrorGuaranteed> {
|
||||
eval_always
|
||||
desc { "running analysis passes on this crate" }
|
||||
|
|
|
@ -52,6 +52,7 @@ trivially_parameterized_over_tcx! {
|
|||
usize,
|
||||
(),
|
||||
u32,
|
||||
bool,
|
||||
std::string::String,
|
||||
crate::metadata::ModChild,
|
||||
crate::middle::codegen_fn_attrs::CodegenFnAttrs,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue