Lambda_Capture_Field¶
- class Lambda_Capture_Field (concrete, logical)¶
- Implemented interfaces:
implements Initialization_Start_End_Interface
- Direct parents:
inherits Unmutable_Named_Field
- Ancestor classes and implemented interfaces:
Declarative_Node, Field, General_Object_Interface, Initialization_Start_End_Interface, Logical_IR_Root, Member, Named_Entity, Named_Field, Normal_Field, Object, Symbol, Typed_Object, Unmutable_Named_Field
Field
Kind
Type
Description
Captured_Variable
semantic
class Typed_Object
Offset (from Field)
attribute
builtin Natural
Starting position of this field inside the parent composite. Equal to the value of
offsetof(Parent, Field). The Offset does not include the Bit_Position for bit-fields.Note: multiple fields can share the same offset in these circumstances:
In a union, all fields will have offset 0.
Neighboring bit-fields will have the same offset if they are stored together.
C++20
[[no_unique_address]]
Offset_In_Bits (from Field)
attribute
builtin UInt64
Offset to the field in bits. This is equal to
offsetof(Parent, Field) * CHAR_BIT. The Offset_In_Bits does not include the Bit_Position for bit-fields.Its_Type (from Typed_Object)
semantic
class Type
the normalized, ‘underlying’ type
Object_Flags (from Typed_Object)
attribute
bitfield Object_Flags_Type
bits like “address taken” and “is pointer”
Parent (from Logical_IR_Root)
semantic
class Logical_IR_Root
Physical (from Logical_IR_Root)
semantic to physical
class Physical_IR_Root
Initialization_Start (from Initialization_Start_End_Interface)
semantic
class Execution_Node
Start of the variable’s initialization. If set to an instruction, that instruction is part of the variable’s initialization. If set to a block, the variable’s initialization begins with the tail jump of that block, but does not include the block’s code. Use
is_part_of_variable_initialization()to determine if an instruction is between Initialization_Start and Initialization_End.Initialization_End (from Initialization_Start_End_Interface)
semantic
class Execution_Node
If set to an instruction, it is the first instruction after those responsible for the variable’s initialization. If set to a block, the initialization includes all instructions in that block but not the block’s tail jump. In other words: A block is used to refer to the “instruction-after-last” in that block; all instructions between Initialization_Start (inclusive) to Initialization_End (exclusive) belong to the variable’s initializer. If Initialization_Start==Initialization_End, then the variable has no initializer.
Visibility (from Member)
attribute
enum Visibility_Type
Name (from Named_Entity)
attribute
builtin String