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.barstill work whenfoois actually a reference to a type with the fieldbar. 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
HirDisplaytrait, 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.
- Captured
Item - Complex
Memory Map - Inference
Result - The result of type inference: A mapping from expressions and patterns to types.
- Overloaded
Deref - An overloaded autoderef step, representing a
Deref(Mut)::deref(_mut)call, with the signature&'a T -> &'a Uor&'a mut T -> &'a mut U. The target type isUin both cases, with the region and mutability being those shared by both the receiver and the returned reference. - Target
Features - TyLowering
Context - TyLowering
Diagnostic
Enums§
- Adjust
- Auto
Borrow - Binding
Mode - Binding modes inferred for patterns. https://doc.rust-lang.org/reference/patterns.html#binding-modes
- Capture
Kind - Cast
Error - FnAbi
- Generic
Args Prohibited Reason - Impl
Trait Id - Incorrect
Generics LenKind - Inference
Diagnostic - Inference
TyDiagnostic Source - Lifetime
Elision Kind - Memory
Map - 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.
- Path
Generics Source - 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.
- Path
Lowering Diagnostic - Pointer
Cast - Target
Feature IsSafe InTarget - TyDefId
- TyLowering
Diagnostic Kind - Unsafety
- Value
TyDef Id
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
tby replacing any errors with new variables. Also ensures there are no unbound variables or inference variables anywhere in thet. - setup_
tracing - target_
feature_ is_ safe_ in_ target