Spicy
Public Member Functions | Static Public Member Functions | List of all members
hilti::type::struct_::Field Class Reference

#include <struct.h>

Inheritance diagram for hilti::type::struct_::Field:
hilti::NodeBase hilti::trait::isNode

Public Member Functions

 Field (ID id, Type t, std::optional< AttributeSet > attrs={}, Meta m=Meta())
 
 Field (ID id, Type t, Type aux_type, std::optional< AttributeSet > attrs, Meta m=Meta())
 
 Field (ID id, ::hilti::function::CallingConvention cc, type::Function ft, std::optional< AttributeSet > attrs={}, Meta m=Meta())
 
 Field (ID id, hilti::Function inline_func, std::optional< AttributeSet > attrs={}, Meta m=Meta())
 
const auto & id () const
 
auto callingConvention () const
 
auto inlineFunction () const
 
auto attributes () const
 
Type type () const
 
std::optional< Type > auxType () const
 
std::optional< Expression > default_ () const
 
auto isInternal () const
 
auto isOptional () const
 
auto isStatic () const
 
auto isNoEmit () const
 
auto & _typeNode ()
 
auto properties () const
 
bool operator== (const Field &other) const
 
void clearCache ()
 
- Public Member Functions inherited from hilti::NodeBase
 NodeBase (Meta meta)
 
 NodeBase (std::vector< Node > childs, Meta meta)
 
template<typename T >
const T & child (int i) const
 
template<typename T >
void assertChildIsA (int i)
 
template<typename T >
std::vector< T > childs (int begin, int end) const
 
template<typename T >
std::vector< T > childsOfType () const
 
template<typename T >
auto nodesOfType () const
 
template<typename T >
auto nodesOfType ()
 
void addChild (Node n)
 
auto & childs () const
 
auto & childs ()
 
auto & meta () const
 
void setMeta (Meta m)
 
const NodeReforiginalNode () const
 
void setOriginalNode (const NodeRef &n)
 
void clearCache ()
 

Static Public Member Functions

static Field setAttributes (const Field &f, const AttributeSet &attrs)
 

Detailed Description

AST node for a struct field.

Member Function Documentation

◆ _typeNode()

auto& hilti::type::struct_::Field::_typeNode ( )
inline

Internal method for use by builder API only.

◆ auxType()

std::optional<Type> hilti::type::struct_::Field::auxType ( ) const
inline

Returns the auxiliary type as passed into the corresponding constructor, if any. The auxiliary type isn't used for anything by HILTI itself, but it's as a node in aside the AST for use by external code.

◆ properties()

auto hilti::type::struct_::Field::properties ( ) const
inline

Implements the Node interface.

◆ setAttributes()

static Field hilti::type::struct_::Field::setAttributes ( const Field f,
const AttributeSet attrs 
)
inlinestatic

Copies an existing field but replaces its attributes.

Parameters
foriginal field
attrsnew attributes
Returns
new field with attributes replaced

The documentation for this class was generated from the following file: