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)
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 >() ),
|
| ︙ | ︙ |