Goose  Diff

Differences From Artifact [9cc6fa3e37]:

  • File bs/sema/env.cpp — part of check-in [27fc719d74] at 2019-08-16 14:48:20 on branch trunk — Added a new type of template expression: TVec, along with a helper function to make it possible for parametric types to be constructed either normally or as a template expression when passed template parameters. Only used by LocalVar for now, parametric runtime types require some refactoring. (user: achavasse size: 3772)

To Artifact [857ba67110]:

  • File bs/sema/env.cpp — part of check-in [d5bc4daeca] at 2019-08-20 23:42:39 on branch trunk —
    • Fixed broken canBeExecuted() and canBeEagerlyEvaluated() computation of CFGs.
    • Added some error messages when a function with compile-time only types contains calls to runtime functions. (to be improved and detected during parsing rather than codegen but serviceable for now)
    (user: achavasse size: 3874)

1
2


3
4

5
6
7
8
9
10
11
#include "sema.h"



using namespace empathy::sema;


uint32_t Env::ms_nextUniqueId = 0;

// Env just instantiates the builtin unification rule set for now. The rule set will
// need to be extendable by compile time code later on.
Env::Env() :
    m_templateRuleSet( make_shared< TemplateRuleSet >() ),
    m_invocationRuleSet( make_shared< InvocationRuleSet >() ),


>
>


>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "sema.h"

using namespace empathy;
using namespace empathy::llr;
using namespace empathy::sema;

vector< ptr< llr::Func > >   Env::ms_llrFuncs;
uint32_t Env::ms_nextUniqueId = 0;

// Env just instantiates the builtin unification rule set for now. The rule set will
// need to be extendable by compile time code later on.
Env::Env() :
    m_templateRuleSet( make_shared< TemplateRuleSet >() ),
    m_invocationRuleSet( make_shared< InvocationRuleSet >() ),