Dependent_Type

class Dependent_Type (concrete, logical)

Used for:

  • Nested types in template parameters (e.g., typename T::M)

  • Dependent instances of template classes (e.g., std::vector<T> when T is also dependent)

  • Instances of template template parameters (e.g., C<int> in template<template<typename> typename C> C<int> c;)

  • Nested types within other dependent types (e.g., typename C<int>::template NestedTemplate<double>)

Implemented interfaces:
Direct parents:
Ancestor classes and implemented interfaces:

Declarative_Node, Dependent_Composite_Type_Interface, Logical_IR_Root, Member, Named_Entity, Named_Type, Symbol, Template_Base_Interface, Template_Interface, Template_Type_Interface, Type

Field

Kind

Type

Description

Size (from Type)

attribute

builtin Natural

Alignment_Log (from Type)

attribute

builtin Byte

log2 of the type’s alignment

Alignment (from Type)

attribute

builtin Natural

Alignment of the type (must be a power of 2)

Size_In_Bits (from Type)

attribute

builtin UInt64

Size of the type, in bits.

Parent (from Logical_IR_Root)

semantic

class Logical_IR_Root

Physical (from Logical_IR_Root)

semantic to physical

class Physical_IR_Root

Template_Parameters (from Template_Interface)

syntactic

list of interface Template_Parameter_Interface

Mangled_Requires_Clause (from Template_Interface)

attribute

builtin String

Base_Template (from Template_Base_Interface)

semantic

class Symbol

usually, a Template_Interface, but could also be a normal method/nested class inside a template

Template_Arguments (from Template_Base_Interface)

syntactic

list of class Template_Argument

Is_Partial_Specialization (from Template_Base_Interface)

attribute

builtin Boolean

Is_Full_Specialization (from Template_Base_Interface)

attribute

builtin Boolean

Is_Template_Instance (from Template_Base_Interface)

attribute

builtin Boolean

Nested_Types (from Dependent_Composite_Type_Interface)

syntactic

set of class Named_Type

Nested_Objects (from Dependent_Composite_Type_Interface)

syntactic

set of class Object

Visibility (from Member)

attribute

enum Visibility_Type

Name (from Named_Entity)

attribute

builtin String