[−][src]Module rustc_typeck::coherence

Modules

builtin

Check properties that are required by built-in traits and set up data structures required by type-checking/codegen.

inherent_impls

The code in this module gathers up all of the inherent impls in the current crate and organizes them in a map. It winds up touching the whole crate and thus must be recomputed completely for any change, but it is very cheap to compute. In practice, most code in the compiler never directly requests this map. Instead, it requests the inherent impls specific to some type (via tcx.inherent_impls(def_id)). That value, however, is computed by selecting an idea from this table.

inherent_impls_overlap
orphan

Orphan checker: every impl either implements a trait defined in this crate or pertains to a type defined in this crate.

unsafety

Unsafety checker: every impl either implements a trait defined in this crate or pertains to a type defined in this crate.

Functions

check_coherence
check_impl
check_object_overlap

Checks whether an impl overlaps with the automatic impl Trait for dyn Trait.

coherent_trait
enforce_empty_impls_for_marker_traits

We allow impls of marker traits to overlap, so they can't override impls as that could make it ambiguous which associated item to use.

enforce_trait_manually_implementable
impl_header_span

Obtains the span of just the impl header of impl_def_id.

provide