Constructor_Selection¶
- class Constructor_Selection (concrete, physical)¶
Selection of constructor; used as routine expression for a Function_Notation_Call or Braced_Notation_Call that calls a constructor.
Notes:
the Artificial attribute specifies whether the constructor call is due to an implicit conversion
the Symbol_Declaration edge is only set for user-declared constructors; and may be
NoNodeif this is a selection of a compiler-generated or unknown constructor (in template context).the Logical edge is only set for non-trivial constructors (as trivial constructors do not appear in the LIR), so it may be
NoNodeif this is a selection of a trivial or unknown constructor (in template context).
- Implemented interfaces:
implements Direct_Object_Selection_Interface
- Direct parents:
inherits Special_Object_Selection
- Ancestor classes and implemented interfaces:
Direct_Object_Selection_Interface, Expression, Linked_Node, Object_Selection, Operation, Physical_IR_Root, Selection_Interface, Simple_Object_Selection, Special_Object_Selection, Unqualified_Object_Selection
Field
Kind
Type
Description
Of_Class
syntactic
class Declaration
Selection of type being constructed. Not set if the type is not present syntactically (e.g., implicit conversion), or if it is already provided in a parent node (e.g., variable definition).
Its_Type (from Expression)
semantic to logical
class Type
type of the expression’s result as denoted by the type’s declaration
Is_LValue (from Expression)
attribute
builtin Boolean
Whether this expression is classified as lvalue.
Is_XValue (from Expression)
attribute
builtin Boolean
Whether this expression is classified as C++11 xvalue.
Converted_To_PRValue (from Expression)
attribute
builtin Boolean
Whether this expression is an lvalue or xvalue that is being implicitly converted to a prvalue.
Start_Position_Index (from Expression)
attribute
builtin SLoc_Index_Type
End_Position_Index (from Expression)
attribute
builtin SLoc_Index_Type
Start_Original_Position (from Expression)
attribute
builtin SLoc
Start_Position (from Expression)
attribute
builtin SLoc
End_Original_Position (from Expression)
attribute
builtin SLoc
End_Position (from Expression)
attribute
builtin SLoc
Logical (from Linked_Node)
semantic to logical
class Logical_IR_Root
cross-reference into LIR
Parent (from Physical_IR_Root)
semantic
class Physical_IR_Root
The parent of the node in the syntactic forest.
Original_Position_Index (from Physical_IR_Root)
attribute
builtin SLoc_Index_Type
Internal source location info. If from macro expansion, this location is inside the macro body or macro argument
Original_Position (from Physical_IR_Root)
attribute
builtin SLoc
Source location. If from macro expansion, this location is inside the macro body or macro argument
Position (from Physical_IR_Root)
attribute
builtin SLoc
Source location. If from macro expansion, this location is that of the macro expansion
Artificial (from Physical_IR_Root)
attribute
builtin Boolean
Whether this node was compiler-generated
Parenthesized (from Physical_IR_Root)
attribute
builtin Boolean
Whether this node was enclosed in parentheses (used for expressions)
In_Template_Instance (from Physical_IR_Root)
attribute
builtin Boolean
Whether this node is inside a template instance
Enclosing_Template_Instance (from Physical_IR_Root)
semantic
class Physical_IR_Root
Innermost enclosing template instance if In_Template_Instance is true
Symbol_Declaration (from Direct_Object_Selection_Interface)
semantic
class Declaration
if available, the PIR declaration of the selected symbol (can be
NULL) use inter-part edge ‘Logical’ to get the LIR symbol