Crate ra_ap_hir_ty

Crate ra_ap_hir_ty 

Source
Expand description

The type system. We currently use this to infer types for completion, hover information and various assists.

Re-exports§

pub use autoderef::autoderef;
pub use method_resolution::check_orphan_rules;
pub use next_solver::interner::attach_db;
pub use next_solver::interner::attach_db_allow_change;
pub use next_solver::interner::with_attached_db;
pub use traits::TraitEnvironment;

Modules§

autoderef
In certain situations, rust automatically inserts derefs as necessary: for example, field accesses foo.bar still work when foo is actually a reference to a type with the field bar. This is an approximation of the logic in rustc (which lives in rustc_hir_analysis/check/autoderef.rs).
consteval
Constant evaluation details
db
The home of HirDatabase, which is the Salsa database containing all the type inference-related queries.
diagnostics
Type inference-based diagnostics.
display
The HirDisplay trait, which serves two purposes: Turning various bits from HIR back into source code, and just displaying them for debugging/testing purposes.
drop
Utilities for computing drop info about types.
dyn_compatibility
Compute the dyn-compatibility of a trait
generics
Utilities for working with generics.
lang_items
Functions to detect special lang items
layout
Compute the binary representation of a type
method_resolution
This module is concerned with finding methods that a given type provides. For details about how this works in rustc, see the method lookup page in the rustc guide and the corresponding code mostly in rustc_hir_analysis/check/method/probe.rs.
mir
MIR definitions and implementation
next_solver
Things relevant to the next trait solver.
primitive
A few helper functions for dealing with primitives.
traits
Trait solving using next trait solver.

Structs§

Adjustment
Represents coercing a value to a different type of value.
CapturedItem
ComplexMemoryMap
InferenceResult
The result of type inference: A mapping from expressions and patterns to types.
OverloadedDeref
An overloaded autoderef step, representing a Deref(Mut)::deref(_mut) call, with the signature &'a T -> &'a U or &'a mut T -> &'a mut U. The target type is U in both cases, with the region and mutability being those shared by both the receiver and the returned reference.
TargetFeatures
TyLoweringContext
TyLoweringDiagnostic

Enums§

Adjust
AutoBorrow
BindingMode
Binding modes inferred for patterns. https://doc.rust-lang.org/reference/patterns.html#binding-modes
CaptureKind
CastError
FnAbi
GenericArgsProhibitedReason
ImplTraitId
IncorrectGenericsLenKind
InferenceDiagnostic
InferenceTyDiagnosticSource
LifetimeElisionKind
MemoryMap
A constant can have reference to other things. Memory map job is holding the necessary bits of memory of the const eval session to keep the constant meaningful.
PathGenericsSource
A path can have many generic arguments: each segment may have one associated with the segment, and in addition, each associated type binding may have generic arguments. This enum abstracts over both.
PathLoweringDiagnostic
PointerCast
TargetFeatureIsSafeInTarget
TyDefId
TyLoweringDiagnosticKind
Unsafety
ValueTyDefId

Functions§

all_super_traits
Returns an iterator over the whole super trait hierarchy (including the trait itself).
associated_type_shorthand_candidates
callable_sig_from_fn_trait
collect_params
Returns unique params for types and consts contained in value.
could_coerce
could_unify
Check if types unify.
could_unify_deeply
Check if types unify eagerly making sure there are no unresolved goals.
direct_super_traits
Returns an iterator over the direct super traits (including the trait itself).
is_fn_unsafe_to_call
known_const_to_ast
param_idx
Return an index of a parameter in the generic type parameter list by it’s id.
replace_errors_with_variables
‘Canonicalizes’ the t by replacing any errors with new variables. Also ensures there are no unbound variables or inference variables anywhere in the t.
setup_tracing
target_feature_is_safe_in_target