Extends_Relation

class Extends_Relation (abstract, logical)

Inheritance relations between classes and interfaces.

Direct parents:
Ancestor classes and implemented interfaces:

Declarative_Node, Logical_IR_Root

Direct child classes:

Field

Kind

Type

Description

Extends

semantic

class Type

The type which is extended by the type referencing an object of this class. The base class may be a class or a struct definition, a template parameter or nonreal composite, or a managed reference type (which is unnamed).

Offset

attribute

builtin Natural

start offset for the subobject of type Base within the derived class

Offset_In_Bits

attribute

builtin UInt64

offset to the field in bits.

Optimized_Empty_Base

attribute

builtin Boolean

True for empty base classes being optimized to use a shared offset with others

Ambiguous

attribute

builtin Boolean

True if a direct cast from derived_class to this base class would be ambiguous, because the base class appears multiple times in the inheritance hierarchy.

Nested_Extends

syntactic

list of class Indirect_Extends_Relation

Indirect base classes (direct base classes of this base class) excluding virtual bases which have been seen already from a different derivation path in the pre-order traversal of the inheritance DAG for the most-derived type, or which also appear as direct base class

Physical (from Logical_IR_Root)

semantic to physical

class Extends_Relation_Definition

Parent (from Logical_IR_Root)

semantic

class Logical_IR_Root