mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
* 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
25 lines
799 B
C++
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
|