pub struct RustResolver;Expand description
Symbol resolution over one bounded Rust resolution snapshot.
Every entry point returns a RustTargetResolution, so a report is never
separated from the snapshot whose sources and coordinates it describes.
Implementations§
Source§impl RustResolver
impl RustResolver
Sourcepub fn resolve_syntactic(
snapshot: &RustResolutionSnapshot,
) -> Result<RustTargetResolution, RustResolutionError>
pub fn resolve_syntactic( snapshot: &RustResolutionSnapshot, ) -> Result<RustTargetResolution, RustResolutionError>
Resolve snapshot from its stored IR alone.
This tier parses nothing a second time, reads no path, and invokes no toolchain. Names it cannot prove become possible candidates or explicit gaps rather than errors.
Sourcepub fn resolve_semantic(
snapshot: &RustResolutionSnapshot,
context: &SemanticContext,
) -> Result<RustTargetResolution, RustResolutionError>
pub fn resolve_semantic( snapshot: &RustResolutionSnapshot, context: &SemanticContext, ) -> Result<RustTargetResolution, RustResolutionError>
Resolve snapshot through the semantic database context holds.
The database must already describe this exact snapshot: the same root,
requested target, unit graph, activation, source set, and source bytes.
Every difference is a SemanticContextMismatch refusal taken before a
query runs, and there is no fallback to the parse-only tier. What the
database does not prove keeps the answer Tier 1 gave it, so this tier
changes candidates, gaps, and the report tier alone. A physical source
instantiated under multiple snapshot units returns
SemanticSharedSourceMismatch before the database is queried.
Trait Implementations§
Source§impl Clone for RustResolver
impl Clone for RustResolver
Source§fn clone(&self) -> RustResolver
fn clone(&self) -> RustResolver
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RustResolver
Source§impl Debug for RustResolver
impl Debug for RustResolver
impl Eq for RustResolver
Source§impl PartialEq for RustResolver
impl PartialEq for RustResolver
impl StructuralPartialEq for RustResolver
Auto Trait Implementations§
impl Freeze for RustResolver
impl RefUnwindSafe for RustResolver
impl Send for RustResolver
impl Sync for RustResolver
impl Unpin for RustResolver
impl UnsafeUnpin for RustResolver
impl UnwindSafe for RustResolver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more