Spicy
Public Member Functions | Static Public Member Functions | List of all members
hilti::declaration::Parameter Class Reference

#include <parameter.h>

Inheritance diagram for hilti::declaration::Parameter:
hilti::NodeBase hilti::trait::isDeclaration hilti::trait::isNode hilti::trait::isNode

Public Member Functions

 Parameter (ID id, hilti::Type type, parameter::Kind kind, std::optional< hilti::Expression > default_, Meta m=Meta())
 
 Parameter (ID id, hilti::Type type, parameter::Kind kind, std::optional< hilti::Expression > default_, bool is_struct_param, Meta m=Meta())
 
auto type () const
 
auto default_ () const
 
auto kind () const
 
auto isStructParameter () const
 
bool operator== (const Parameter &other) const
 
bool isConstant () const
 
const IDid () const
 
Linkage linkage () const
 
std::string displayName () const
 
auto isEqual (const Declaration &other) const
 
auto properties () const
 
- 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 Declaration setType (const Parameter &d, std::optional< hilti::Type > t)
 
static Declaration setDefault (const Parameter &d, const hilti::Expression &e)
 
static Declaration setIsStructParameter (const Parameter &d)
 

Detailed Description

AST node for a declaration of a function parameter.

Member Function Documentation

◆ displayName()

std::string hilti::declaration::Parameter::displayName ( ) const
inline

Implements Declaration interface.

◆ id()

const ID& hilti::declaration::Parameter::id ( ) const
inline

Implements Declaration interface.

◆ isConstant()

bool hilti::declaration::Parameter::isConstant ( ) const
inline

Implements Declaration interface.

◆ isEqual()

auto hilti::declaration::Parameter::isEqual ( const Declaration &  other) const
inline

Implements Declaration interface.

◆ linkage()

Linkage hilti::declaration::Parameter::linkage ( ) const
inline

Implements Declaration interface.

◆ properties()

auto hilti::declaration::Parameter::properties ( ) const
inline

Implements Node interface.

◆ setDefault()

static Declaration hilti::declaration::Parameter::setDefault ( const Parameter d,
const hilti::Expression &  e 
)
inlinestatic

Returns a new parameter declaration with the default expression replaced.

Parameters
doriginal declaration
enew default expresssion
Returns
new declaration that's equal to original one but with the default expression replaced

◆ setIsStructParameter()

static Declaration hilti::declaration::Parameter::setIsStructParameter ( const Parameter d)
inlinestatic

Returns a new parameter declaration with the is-struct-parameter option set.

Parameters
doriginal declaration
Returns
new declaration that's equal to original one but with the flag set

◆ setType()

static Declaration hilti::declaration::Parameter::setType ( const Parameter d,
std::optional< hilti::Type >  t 
)
inlinestatic

Returns a new parameter declaration with its type replaced.

Parameters
doriginal declaration
bnew type
Returns
new declaration that's equal to original one but with the type replaced

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