Goose  Artifact [c2fc3847be]

Artifact c2fc3847be831c546d27aad01a3808b6b774df443d7a6c365f6ff339a3e8c1fe:

  • File bs/builtins/types/template/build.h — part of check-in [45078c42df] at 2021-10-27 20:55:12 on branch trunk — Parser: when building a function, if its parent identity depends on type predicates captured by template vars, build it as a template function instead. (user: zlodo size: 632)

#ifndef GOOSE_BUILTINS_TEMPLATE_BUILD_H
#define GOOSE_BUILTINS_TEMPLATE_BUILD_H

namespace goose::builtins
{
    extern TFuncType BuildTFuncType( const Value& returnType, const Value& params );
    extern TFuncType FuncTypeToTFuncType( const FuncType& ft );

    extern optional< Term > BuildTFuncSignature( const Context& c, const TFuncType& tft );

    extern Value BuildTFunc( const Context& c, const TFuncType& tft,
        const Term& parentIdentity, const Term& identity, const Value& params, ptr< void > body );

    extern optional< Term > BuildArgPatternFromTFuncType( const Context& c, const Value& tfuncType );
}

#endif