Goose  Artifact [db82d39d17]

Artifact db82d39d1767e013c27cddef184067f66084eefc66111f91f0180aa2098aaf3d:

  • File bs/builtins/types/runtime/runtime.h — part of check-in [f31afce8ce] at 2019-07-26 22:30:22 on branch trunk —
    • Implemented an unification rule of ct_integer versus rt_integer.
    • Fixed multiple bugs related to compile time eager evaluation.
    • Fixed incorrect usage of CompileFunc which resulted in not actually calling the domain specific version of the function.
    (user: achavasse size: 668)

#ifndef EMPATHY_BUILTINS_TYPES_RUNTIME_H
#define EMPATHY_BUILTINS_TYPES_RUNTIME_H

#include "basic.h"
#include "pointer.h"
#include "array.h"
#include "struct.h"

namespace empathy::builtins
{
    extern void SetupRuntimeBasicTypes( Env& e );
    extern void SetupRuntimeTypesUnification( Env& e );

    static inline void SetupRuntimeTypes( Env& e )
    {
        SetupRuntimeBasicTypes( e );
        SetupRuntimePointerType( e );
        SetupRuntimeArrayType( e );
        SetupRuntimeStructType( e );
        SetupRuntimeTypesUnification( e );
    }

    extern bool IsRuntimeType( const Value& t );
    extern llvm::Type* GetLLVMType( const Value& t );
}

#endif