Yume
Public Member Functions | Public Attributes | List of all members
yume::ast::CallExpr Struct Referencefinal

A function call or operator. More...

#include <ast.hpp>

Inheritance diagram for yume::ast::CallExpr:
Inheritance graph
[legend]
Collaboration diagram for yume::ast::CallExpr:
Collaboration graph
[legend]

Public Member Functions

 CallExpr (span< Token > tok, string name, OptionalType receiver, vector< AnyExpr > args)
 
void visit (Visitor &visitor) const override
 Recursively visit this ast node and all its constituents. More...
 
auto describe () const -> string override
 A short, string representation for debugging. More...
 
auto clone () const -> CallExpr *override
 Deep copy, except for the type and attachments. More...
 
auto clone () const -> Expr *override=0
 Deep copy, except for the type and attachments. More...
 
auto clone () const -> Stmt *override=0
 Deep copy, except for the type and attachments. More...
 
- Public Member Functions inherited from yume::ast::AST
 AST (const AST &)=delete
 
 AST (AST &&)=default
 
auto operator= (const AST &) -> AST &=delete
 
auto operator= (AST &&) -> AST &=delete
 
virtual ~AST ()=default
 
virtual void visit (Visitor &visitor) const =0
 Recursively visit this ast node and all its constituents. More...
 
auto val_ty () const noexcept -> optional< ty::Type >
 
auto ensure_ty () const -> ty::Type
 
void val_ty (optional< ty::Type > type)
 
void attach_to (nonnull< AST * > other)
 Make the type of this node depend on the type of other. More...
 
auto kind () const -> Kind
 
auto kind_name () const -> string
 Human-readable string representation of the Kind of this node. More...
 
auto token_range () const -> const span< Token > &
 
auto equals_by_hash (ast::AST &other) const -> bool
 
auto location () const -> Loc
 The union of the locations of the Tokens making up this node. More...
 
virtual auto describe () const -> string
 A short, string representation for debugging. More...
 
virtual auto clone () const -> AST *=0
 Deep copy, except for the type and attachments. More...
 

Public Attributes

string name
 
OptionalType receiver
 
vector< AnyExprargs
 
Fnselected_overload {}
 During semantic analysis, the TypeWalker performs overload selection and saves the function declaration or instantiation that this call refers to directly in the AST node, in this field. More...
 

Additional Inherited Members

- Protected Member Functions inherited from yume::ast::Stmt
 AST (Kind kind, span< Token > tok)
 
 AST (const AST &)=delete
 
 AST (AST &&)=default
 
- Protected Member Functions inherited from yume::ast::AST
void unify_val_ty ()
 Verify the type compatibility of the depends of this node, and merge the types if possible. This is called every time the node's type is updated. More...
 
auto tok () const noexcept -> span< Token >
 
 AST (Kind kind, span< Token > tok)
 

Detailed Description

A function call or operator.

Definition at line 562 of file ast.hpp.

Constructor & Destructor Documentation

◆ CallExpr()

yume::ast::CallExpr::CallExpr ( span< Token tok,
string  name,
OptionalType  receiver,
vector< AnyExpr args 
)
inline

Definition at line 571 of file ast.hpp.

Referenced by clone().

Member Function Documentation

◆ clone()

auto yume::ast::CallExpr::clone ( ) const -> CallExpr *override
overridevirtual

Deep copy, except for the type and attachments.

Implements yume::ast::Expr.

Definition at line 115 of file ast.cpp.

References args, CallExpr(), name, receiver, and yume::ast::AST::tok().

◆ describe()

auto yume::ast::CallExpr::describe ( ) const -> string
inlineoverridevirtual

A short, string representation for debugging.

Reimplemented from yume::ast::AST.

Definition at line 574 of file ast.hpp.

◆ visit()

void yume::ast::CallExpr::visit ( Visitor visitor) const
overridevirtual

Recursively visit this ast node and all its constituents.

See also
Visitor

Implements yume::ast::AST.

Definition at line 125 of file visit.cpp.

References args, name, receiver, and visitor.

Member Data Documentation

◆ args

vector<AnyExpr> yume::ast::CallExpr::args

Definition at line 566 of file ast.hpp.

Referenced by clone(), yume::semantic::TypeWalker::expression(), and visit().

◆ name

string yume::ast::CallExpr::name

Definition at line 564 of file ast.hpp.

Referenced by clone(), yume::semantic::TypeWalker::expression(), and visit().

◆ receiver

OptionalType yume::ast::CallExpr::receiver

Definition at line 565 of file ast.hpp.

Referenced by clone(), yume::semantic::TypeWalker::expression(), and visit().

◆ selected_overload

Fn* yume::ast::CallExpr::selected_overload {}

During semantic analysis, the TypeWalker performs overload selection and saves the function declaration or instantiation that this call refers to directly in the AST node, in this field.

Definition at line 569 of file ast.hpp.

Referenced by yume::semantic::TypeWalker::expression().


The documentation for this struct was generated from the following files: