Goose  Artifact [0e927d9281]

Artifact 0e927d92810cb5951647a259975d753f9ee4780b942a89b36d929394ee366a64:

  • File bs/builtins/types/runtime/runtime.h — part of check-in [b573d100cf] at 2020-01-13 23:13:46 on branch trunk — Renamed the runtime struct type to "record" to avoid future confusion since it's a much lower level type (essentially just a tuple restricted to runtime types) than the future "struct" type. (user: achavasse size: 662)

#ifndef GOOSE_BUILTINS_TYPES_RUNTIME_H
#define GOOSE_BUILTINS_TYPES_RUNTIME_H

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

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

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

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

#endif