Skip to main content

FragRef

Struct FragRef 

Source
pub struct FragRef {
Show 22 fields pub kind: String, pub name: String, pub qualified: Option<String>, pub member: Option<String>, pub line: usize, pub namespace: Option<String>, pub type_arg_count: Option<usize>, pub generic: bool, pub receiver_type: Option<String>, pub arg_count: Option<usize>, pub receiver_args: Option<Vec<String>>, pub outer_types: Vec<String>, pub args: Option<Vec<String>>, pub receiver_property_owner: Option<String>, pub receiver_call_owner: Option<String>, pub receiver_call_member: Option<String>, pub receiver_base: bool, pub receiver_awaited: bool, pub receiver_local: bool, pub receiver_lambda: Option<FragLambdaSlot>, pub receiver_nullable: bool, pub lambda_arg_arity: Option<Vec<Option<usize>>>,
}
Expand description

Represents FragRef.

Fields§

§kind: String

The kind value.

§name: String

The name value.

§qualified: Option<String>

The qualified value.

§member: Option<String>

The member value.

§line: usize

The line value.

§namespace: Option<String>

Always serialized, including when null (imports refs) – NOT skip_serializing_if, unlike qualified/member which are omitted entirely when absent. See extract.rs’s RefRecord doc comment.

§type_arg_count: Option<usize>

The type arg count value.

§generic: bool

Type-certainty flag (see extract.rs’s RefRecord). Serialized last and only when true; an absent key reads back as false, which also makes an older fragment JSON parse safely.

§receiver_type: Option<String>

Receiver fact (see extract.rs’s RefRecord). Appended AFTER generic, and set only when a fact actually fired – so it serializes last and only when present, and an absent key reads back as “no fact”, the safe default.

§arg_count: Option<usize>

The callee arg count (see extract.rs’s RefRecord). Appended AFTER receiverType, set only when the member access was the callee of an invocation – so it serializes last and only when present, and an absent key reads back as “not a call”, which is what keeps a property read out of the extension tier.

§receiver_args: Option<Vec<String>>

Receiver generic-arg descriptors (see extract.rs’s RefRecord). Appended LAST, after argCount, set only when the receiver’s DECLARED type was generic – an absent key reads back as “not generic”, which is what makes a generic-vs-non-generic pairing fail to unify.

§outer_types: Vec<String>

Enclosing-type stack (see extract.rs’s RefRecord). Appended LAST, after receiverArgs, and set only when non-empty. A Vec rather than an Option because empty and absent mean the same thing here – a ref at namespace level and an older cached fragment both read back as “no enclosing type”, which is what keeps them off the step.

§args: Option<Vec<String>>

Generic-arg descriptors for a ‘ctor-param’ ref (see extract.rs’s RefRecord). Appended LAST of all, after outerTypes, and set only when the parameter’s type was generic.

§receiver_property_owner: Option<String>

(See extract.rs’s RefRecord.) The type whose PROPERTY the qualifier’s last segment is, for a two-segment chain whose head the enclosing scope could type. Appended after args, and never present alongside receiverType.

§receiver_call_owner: Option<String>

(See extract.rs’s RefRecord.) The type whose METHOD a var x = Q.M(...) initializer called, and that method’s name. Appended LAST of all, always as a pair, and never alongside receiverType: an absent pair reads back as “no call fact”, which is what leaves the local taken-but-unknown.

§receiver_call_member: Option<String>

The receiver call member value.

§receiver_base: bool

true for a base. qualifier – the member lookup starts at the enclosing type’s bases and never considers the enclosing type itself (see extract.rs’s RefRecord). Appended LAST of all, and omitted when false – an absent key reads back as false, the same as a plain this. receiver and as every ref kind that never sets it, and also what makes a v15 cached fragment parse safely.

§receiver_awaited: bool

true when receiverCallOwner/receiverCallMember came from an AWAITED call (see extract.rs’s RefRecord). Appended LAST of all, after receiverBase, and omitted when false – an absent key reads back as false, the same as an unawaited call fact and as every ref kind that never sets it, which is also what lets a cached fragment from before this field existed parse safely with no cache-version bump: it simply reads back as “not awaited”, the same answer the resolver gave before this field existed.

§receiver_local: bool

true when this ref’s qualifier is a bare identifier for which the enclosing MEMBER’s own fact table (locals, parameters, lambda parameters, patterns, out designations) holds ANY entry for the name, typed or taken-but-unknown (see extract.rs’s RefRecord and Scope::has_local_fact). Read ONLY by the bare-identifier field/property fallback: a member-scoped name always shadows a same-named field, whether or not anything vouches for its type, so that fallback never runs when this is true. false for every dotted or generic qualifier, for this./base. (never asked of the enclosing scope’s local table at all), and for every ref kind but uses-member. Appended LAST of all, after receiverAwaited, and omitted when false – an absent key reads back as false, the same as every ref kind that never sets it, which is also what lets a cached fragment from before this field existed parse safely with no cache-version bump.

§receiver_lambda: Option<FragLambdaSlot>

Set when this ref’s qualifier is an untyped lambda parameter whose type is a delegate parameter of some OTHER callee (see extract.rs’s RefRecord). Never present alongside receiverType or receiverCallOwner. Appended LAST of all, after receiverLocal, omitted when absent. Joined the schema with the v18 cache bump: a v17 fragment read back carries none, and every untyped-lambda callee-slot lookup this field backs would silently see no candidate.

§receiver_nullable: bool

true when receiverType came off a declaration whose own type node carried a ? (see extract.rs’s RefRecord). Appended LAST of all, after receiverLambda, and omitted when false – an absent key reads back as false, the same as a non-nullable receiver and as every ref kind that never sets it. Joined the schema with the v20 cache bump: a v19 fragment read back carries none, so a T? receiver’s own Nullable<T>.Value/HasValue/ GetValueOrDefault unwrap would silently keep resolving against T’s own same-named member.

§lambda_arg_arity: Option<Vec<Option<usize>>>

The parameter count of each delegate-shaped argument of the invocation this ref is the callee of – a lambda literal, or a local function passed as a method group (see extract.rs’s RefRecord). Appended LAST of all, after receiverNullable, omitted when absent. Joined the schema with the v20 cache bump: a v19 fragment read back carries none, and a candidate whose delegate parameter shape the call’s own argument cannot fill would silently keep earning a precise edge.

Trait Implementations§

Source§

impl Clone for FragRef

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FragRef

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for FragRef

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for FragRef

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for FragRef

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for FragRef

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.