pub enum LookupOutcome {
NoFact,
Confirmed(SemanticTarget),
Other(Uncertainty),
ConfirmedMany(Vec<SemanticTarget>),
}Expand description
What a same-context lookup at one reference’s (file, name_line, member)
key found.
Variants§
NoFact
No admitted occurrence site at this key – the ordinary absent case, never treated as a negative fact.
Confirmed(SemanticTarget)
Exactly one same-context confirmed target, ready to override the ladder.
Other(Uncertainty)
A fact exists but is not confirmed-and-translatable; every other consumer-visible state.
ConfirmedMany(Vec<SemanticTarget>)
More than one distinct confirmed target survived (no caller-side
arity narrowed the set to one, or there was none to narrow with in
the first place). Never itself an ambiguity: it is the caller’s own
choice whether “more than one confirmed target, nothing left to pick
between them” projects every one of them or degrades to
Other(Uncertainty::Ambiguous) – see discovered.rs (which
projects same-type overloads, since it carries no caller argument
count to disambiguate with at all) and precedence.rs (which
degrades, since an extractor-emitted reference already has its own
single-target slot to fill and a real caller-side tie there is
genuine ambiguity, not a projection opportunity).
Trait Implementations§
Source§impl Clone for LookupOutcome
impl Clone for LookupOutcome
Source§impl Debug for LookupOutcome
impl Debug for LookupOutcome
impl Eq for LookupOutcome
Source§impl PartialEq for LookupOutcome
impl PartialEq for LookupOutcome
impl StructuralPartialEq for LookupOutcome
Auto Trait Implementations§
impl Freeze for LookupOutcome
impl RefUnwindSafe for LookupOutcome
impl Send for LookupOutcome
impl Sync for LookupOutcome
impl Unpin for LookupOutcome
impl UnsafeUnpin for LookupOutcome
impl UnwindSafe for LookupOutcome
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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