Auto merge of #98222 - cjgillot:single-wf, r=michaelwoerister
Only keep a single query for well-formed checking There are currently 3 queries to perform wf checks on different item-likes. This complexity is not required. This PR replaces the query by: - one query per item; - one query to invoke it for a whole module. This allows to remove HIR `ParItemLikeVisitor`.
This commit is contained in:
commit
5ffa8f67b7
30 changed files with 257 additions and 458 deletions
|
@ -65,7 +65,6 @@
|
|||
//! example generator inference, and possibly also HIR borrowck.
|
||||
|
||||
use crate::hir::*;
|
||||
use crate::itemlikevisit::ParItemLikeVisitor;
|
||||
use rustc_ast::walk_list;
|
||||
use rustc_ast::{Attribute, Label};
|
||||
use rustc_span::symbol::{Ident, Symbol};
|
||||
|
@ -76,29 +75,6 @@ pub trait IntoVisitor<'hir> {
|
|||
fn into_visitor(&self) -> Self::Visitor;
|
||||
}
|
||||
|
||||
pub struct ParDeepVisitor<V>(pub V);
|
||||
|
||||
impl<'hir, V> ParItemLikeVisitor<'hir> for ParDeepVisitor<V>
|
||||
where
|
||||
V: IntoVisitor<'hir>,
|
||||
{
|
||||
fn visit_item(&self, item: &'hir Item<'hir>) {
|
||||
self.0.into_visitor().visit_item(item);
|
||||
}
|
||||
|
||||
fn visit_trait_item(&self, trait_item: &'hir TraitItem<'hir>) {
|
||||
self.0.into_visitor().visit_trait_item(trait_item);
|
||||
}
|
||||
|
||||
fn visit_impl_item(&self, impl_item: &'hir ImplItem<'hir>) {
|
||||
self.0.into_visitor().visit_impl_item(impl_item);
|
||||
}
|
||||
|
||||
fn visit_foreign_item(&self, foreign_item: &'hir ForeignItem<'hir>) {
|
||||
self.0.into_visitor().visit_foreign_item(foreign_item);
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
pub enum FnKind<'a> {
|
||||
/// `#[xxx] pub async/const/extern "Abi" fn foo()`
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
use super::{ForeignItem, ImplItem, Item, TraitItem};
|
||||
|
||||
/// A parallel variant of `ItemLikeVisitor`.
|
||||
pub trait ParItemLikeVisitor<'hir> {
|
||||
fn visit_item(&self, item: &'hir Item<'hir>);
|
||||
fn visit_trait_item(&self, trait_item: &'hir TraitItem<'hir>);
|
||||
fn visit_impl_item(&self, impl_item: &'hir ImplItem<'hir>);
|
||||
fn visit_foreign_item(&self, foreign_item: &'hir ForeignItem<'hir>);
|
||||
}
|
|
@ -27,7 +27,6 @@ pub use rustc_span::def_id;
|
|||
mod hir;
|
||||
pub mod hir_id;
|
||||
pub mod intravisit;
|
||||
pub mod itemlikevisit;
|
||||
pub mod lang_items;
|
||||
pub mod pat_util;
|
||||
mod stable_hash_impls;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue