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 NoNode if 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 NoNode if this is a selection of a trivial or unknown constructor (in template context).

Implemented interfaces:
Direct parents:
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