polserver/pol-core/bscript/compiler/astbuilder/GeneratedFunctionBuilder.h
Kevin Eady 82cf03ba2a Generate constructors for child classes (#703)
* Make constructor_link nullable; WIP generated function builder changes

* saving work

* saving work, need to resolve double call

* hopefully finish up super inherited constructors

* Error if no base class has ctor

* Fix AddressSanitizer error...?

* Revert unnecessary edit

* Remove duplicate code

* Update pol-core/bscript/compiler/astbuilder/GeneratedFunctionBuilder.cpp
2024-10-10 18:06:04 +02:00

25 lines
799 B
C++

#pragma once
#include "bscript/compiler/astbuilder/CompoundStatementBuilder.h"
namespace Pol::Bscript::Compiler
{
class GeneratedFunction;
class ScopableName;
class UserFunction;
class GeneratedFunctionBuilder : public CompoundStatementBuilder
{
public:
GeneratedFunctionBuilder( const SourceFileIdentifier&, BuilderWorkspace& );
void super_function( std::unique_ptr<GeneratedFunction>& );
void constructor_function( std::unique_ptr<GeneratedFunction>& );
private:
void build( std::unique_ptr<GeneratedFunction>&, std::vector<UserFunction*> constructors );
void add_base_constructor( std::unique_ptr<GeneratedFunction>&, UserFunction* constructor,
std::set<ScopableName>& visited_arg_names, bool can_use_rest );
};
} // namespace Pol::Bscript::Compiler