#[repr(C)]
pub struct pm_scope { pub locals: pm_constant_id_list_t, pub previous: *mut pm_scope, pub closed: bool, pub explicit_params: bool, pub forwarding_params: u8, pub numbered_parameters: u8, }
Expand description

This struct represents a node in a linked list of scopes. Some scopes can see into their parent scopes, while others cannot.

Fields§

§locals: pm_constant_id_list_t

The IDs of the locals in the given scope.

§previous: *mut pm_scope

A pointer to the previous scope in the linked list.

§closed: bool

A boolean indicating whether or not this scope can see into its parent. If closed is true, then the scope cannot see into its parent.

§explicit_params: bool

A boolean indicating whether or not this scope has explicit parameters. This is necessary to determine whether or not numbered parameters are allowed.

§forwarding_params: u8

Booleans indicating whether the parameters for this scope have declared forwarding parameters.

For example, some combinations of: def foo(*); end def foo(**); end def foo(&); end def foo(…); end

§numbered_parameters: u8

An integer indicating the number of numbered parameters on this scope. This is necessary to determine if child blocks are allowed to use numbered parameters, and to pass information to consumers of the AST about how many numbered parameters exist.

Trait Implementations§

source§

impl Clone for pm_scope

source§

fn clone(&self) -> pm_scope

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for pm_scope

source§

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

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

impl Default for pm_scope

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Copy for pm_scope

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> 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> ToOwned for T
where T: Clone,

§

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>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.