#include "bscript/compiler/ast/GeneratedFunction.h" #include "bscript/compiler/ast/Argument.h" #include "bscript/compiler/ast/ClassDeclaration.h" #include "bscript/compiler/ast/FunctionBody.h" #include "bscript/compiler/ast/FunctionParameterDeclaration.h" #include "bscript/compiler/ast/FunctionParameterList.h" #include "bscript/compiler/ast/Statement.h" #include "bscript/compiler/ast/UserFunction.h" #include "bscript/compiler/model/ClassLink.h" namespace Pol::Bscript::Compiler { GeneratedFunction::GeneratedFunction( const SourceLocation& loc, ClassDeclaration* cd, UserFunctionType type, const std::string& name ) : UserFunction( loc, false /* exported */, false /* expression */, type, cd->name /* scope */, name, std::make_unique( loc, std::vector>() ), std::make_unique( loc, std::vector>() ), loc, std::make_shared( loc, cd->name ) ) { class_link->link_to( cd ); } void GeneratedFunction::describe_to( std::string& w ) const { fmt::format_to( std::back_inserter( w ), "generated-function({})", name ); } ClassDeclaration* GeneratedFunction::class_declaration() const { return class_link->class_declaration(); } } // namespace Pol::Bscript::Compiler