Differences From Artifact [779f5017c9]:
- File bs/builtins/types/template/tdecl.cpp — part of check-in [b7fd77d885] at 2019-04-09 21:38:53 on branch trunk — Higher order polymorphism: changed the representation of constrained func to be explicit instead of just an opaque pointer, so that it can be used as is within function identities. (user: achavasse size: 927)
To Artifact [cf5a13dfc4]:
- File bs/builtins/types/template/tdecl.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: 926)
| ︙ | ︙ | |||
16 17 18 19 20 21 22 |
{
static auto type = ValueToIRExpr( Value( TypeType(), TSID( tdecl ) ) );
return type;
}
Value Bridge< TDecl >::ToValue( const TDecl& td )
{
| | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
{
static auto type = ValueToIRExpr( Value( TypeType(), TSID( tdecl ) ) );
return type;
}
Value Bridge< TDecl >::ToValue( const TDecl& td )
{
return Value( Type(), VEC( td.type(), TERM( td.name() ) ) );
}
optional< TDecl > Bridge< TDecl >::FromValue( const Value& v )
{
if( !IsTDecl( v ) )
return nullopt;
|
| ︙ | ︙ |