Struct ra_ap_hir_ty::InferenceResult
source · [−]pub struct InferenceResult {
pub diagnostics: Vec<InferenceDiagnostic>,
pub type_of_expr: ArenaMap<ExprId, Ty>,
pub type_of_pat: ArenaMap<PatId, Ty>,
pub pat_adjustments: FxHashMap<PatId, Vec<Adjustment>>,
pub pat_binding_modes: FxHashMap<PatId, BindingMode>,
pub expr_adjustments: FxHashMap<ExprId, Vec<Adjustment>>,
/* private fields */
}
Expand description
The result of type inference: A mapping from expressions and patterns to types.
Fields
diagnostics: Vec<InferenceDiagnostic>
type_of_expr: ArenaMap<ExprId, Ty>
type_of_pat: ArenaMap<PatId, Ty>
For each pattern record the type it resolves to.
Note: When a pattern type is resolved it may still contain unresolved or missing subpatterns or subpatterns of mismatched types.
pat_adjustments: FxHashMap<PatId, Vec<Adjustment>>
Stores the types which were implicitly dereferenced in pattern binding modes.
pat_binding_modes: FxHashMap<PatId, BindingMode>
expr_adjustments: FxHashMap<ExprId, Vec<Adjustment>>
Implementations
sourceimpl InferenceResult
impl InferenceResult
pub fn method_resolution(
&self,
expr: ExprId
) -> Option<(FunctionId, Substitution)>
pub fn field_resolution(&self, expr: ExprId) -> Option<FieldId>
pub fn variant_resolution_for_expr(&self, id: ExprId) -> Option<VariantId>
pub fn variant_resolution_for_pat(&self, id: PatId) -> Option<VariantId>
pub fn assoc_resolutions_for_expr(&self, id: ExprId) -> Option<AssocItemId>
pub fn assoc_resolutions_for_pat(&self, id: PatId) -> Option<AssocItemId>
pub fn type_mismatch_for_expr(&self, expr: ExprId) -> Option<&TypeMismatch>
pub fn type_mismatch_for_pat(&self, pat: PatId) -> Option<&TypeMismatch>
pub fn expr_type_mismatches(
&self
) -> impl Iterator<Item = (ExprId, &TypeMismatch)>
pub fn pat_type_mismatches(
&self
) -> impl Iterator<Item = (PatId, &TypeMismatch)>
Trait Implementations
sourceimpl Clone for InferenceResult
impl Clone for InferenceResult
sourcefn clone(&self) -> InferenceResult
fn clone(&self) -> InferenceResult
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for InferenceResult
impl Debug for InferenceResult
sourceimpl Default for InferenceResult
impl Default for InferenceResult
sourcefn default() -> InferenceResult
fn default() -> InferenceResult
Returns the “default value” for a type. Read more
sourceimpl Index<Idx<Expr>> for InferenceResult
impl Index<Idx<Expr>> for InferenceResult
sourceimpl Index<Idx<Pat>> for InferenceResult
impl Index<Idx<Pat>> for InferenceResult
sourceimpl PartialEq<InferenceResult> for InferenceResult
impl PartialEq<InferenceResult> for InferenceResult
sourcefn eq(&self, other: &InferenceResult) -> bool
fn eq(&self, other: &InferenceResult) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &InferenceResult) -> bool
fn ne(&self, other: &InferenceResult) -> bool
This method tests for !=
.
impl Eq for InferenceResult
impl StructuralEq for InferenceResult
impl StructuralPartialEq for InferenceResult
Auto Trait Implementations
impl RefUnwindSafe for InferenceResult
impl Send for InferenceResult
impl Sync for InferenceResult
impl Unpin for InferenceResult
impl UnwindSafe for InferenceResult
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Cast for T
impl<T> Cast for T
sourcefn cast<U>(self, interner: <U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
fn cast<U>(self, interner: <U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
Cast a value to type U
using CastTo
.
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more