Goose  Artifact [ac35b81852]

Artifact ac35b81852a6428636e61f1cdbbfe80111d54e7c64b7e454746fd92d08c267d8:

  • File bs/execute/termaddr.cpp — part of check-in [0db147f117] at 2024-09-15 20:24:31 on branch cir-ssa-refactor — Add clang format settings, reformat everything (user: achavasse size: 642)

#include "execute.h"
#include "builtins/builtins.h"

using namespace goose;
using namespace goose::execute;
using namespace goose::builtins;

const Term& Bridge< eir::Term* >::Type()
{
    static auto type =
        ValueToEIR( Value( TypeType(), MkStdType( TSID( ct_type ), TSID( comptime_addr ) ) ) );
    return type;
}

Value Bridge< eir::Term* >::ToValue( eir::Term* x )
{
    return Value( Type(), TERM( static_cast< void* >( x ) ) );
}

eir::Term* Bridge< eir::Term* >::FromValue( const Value& v )
{
    if( !v.isConstant() || v.type() != Type() )
        return nullptr;

    return static_cast< Term* >( get< void* >( v.val() ) );
}