Trait rustc_middle::query::keys::Key

source ·
pub trait Key: Sized {
    type CacheSelector = DefaultCacheSelector<Self>;

    fn query_crate_is_local(&self) -> bool;
    fn default_span(&self, tcx: TyCtxt<'_>) -> Span;

    fn key_as_def_id(&self) -> Option<DefId> { ... }
    fn ty_adt_id(&self) -> Option<DefId> { ... }
}
Expand description

The Key trait controls what types can legally be used as the key for a query.

Provided Associated Types§

Required Methods§

Given an instance of this key, what crate is it referring to? This is used to find the provider.

In the event that a cycle occurs, if no explicit span has been given for a query with key self, what span should we use?

Provided Methods§

If the key is a DefId or DefId–equivalent, return that DefId. Otherwise, return None.

Implementations on Foreign Types§

Implementors§

Canonical query goals correspond to abstract trait operations that are not tied to any crate in particular.