Goose  Artifact [1c8f19cb0c]

Artifact 1c8f19cb0c9eb5225399eefd89faf4ad50b4ed07a1f272d665c81523ff9fd0a2:

  • File bs/sema/sema.h — part of check-in [46e87c202b] at 2021-08-28 17:55:26 on branch trunk —
    • Instead of falling back to unification as the default type checking rule, implemented default type checking rules similar to the default unification ones
    • Fixed a nasty generator bug
    • Fixed reference type parsing not generating a location
    • Fixed where operator not generating a location that spanned both the types and the predicates
    • Various fixes to accomodate random api changes in the latest llvm
    • Updates fmt and catch2 versions
    (user: achavasse size: 1200)

#ifndef GOOSE_SEMA_H
#define GOOSE_SEMA_H

#include "util/util.h"
#include "eir/eir.h"
#include "cir/cir.h"
#include "diagnostics/diagnostics.h"

namespace goose::sema
{
    using namespace util;
    using namespace eir;
    using namespace diagnostics;

    class Context;
    extern optional< Value > LowerTypeForRuntime( const Context& c, const Value& type );
    extern optional< Value > LowerConstantForRuntime( const Context& c, const Value& val );
    extern optional< Value > LowerTypeForVerification( const Context& c, const Value& type );
    extern optional< Value > LowerConstantForVerification( const Context& c, const Value& val );
}

#include "hole.h"
#include "context.h"
#include "ctmm.h"
#include "env.h"

#include "tc-score.h"
#include "tc-context.h"
#include "typecheck.h"
#include "tc-ruleset.h"
#include "tc-basicrules.h"
#include "uni-basicrules.h"
#include "uni-holes.h"
#include "uni-quote.h"
#include "substitute.h"
#include "postprocess.h"

#include "tctrie.h"

#include "inv-ruleset.h"
#include "invocation.h"

#include "tpl-ruleset.h"
#include "template.h"

#include "overloadset.h"
#include "codebuilder.h"

#include "tctrie.inl"
#include "tctrie-typecheck.inl"

#endif