Struct pm_scope

Source
#[repr(C)]
pub struct pm_scope { pub previous: *mut pm_scope, pub locals: pm_locals_t, pub implicit_parameters: pm_node_list_t, pub parameters: pm_scope_parameters_t, pub shareable_constant: pm_shareable_constant_value_t, pub closed: bool, }
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§

§previous: *mut pm_scope

A pointer to the previous scope in the linked list.

§locals: pm_locals_t

The IDs of the locals in the given scope.

§implicit_parameters: pm_node_list_t

This is a list of the implicit parameters contained within the block. These will be processed after the block is parsed to determine the kind of parameters node that should be used and to check if any errors need to be added.

§parameters: pm_scope_parameters_t

This is a bitfield that indicates the parameters that are being used in this scope. It is a combination of the PM_SCOPE_PARAMETERS_* constants. There are three different kinds of parameters that can be used in a scope:

  • Ordinary parameters (e.g., def foo(bar); end)
  • Numbered parameters (e.g., def foo; _1; end)
  • The it parameter (e.g., def foo; it; end)

If ordinary parameters are being used, then certain parameters can be forwarded to another method/structure. Those are indicated by four additional bits in the params field. For example, some combinations of:

  • def foo(*); end
  • def foo(**); end
  • def foo(&); end
  • def foo(…); end
§shareable_constant: pm_shareable_constant_value_t

The current state of constant shareability for this scope. This is changed by magic shareable_constant_value comments.

§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.

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

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

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.