59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-
+
|
auto BuildOpFunc( Env& e, StringId funcName, R&&... ruleBuilders )
{
auto pOvlSet = GetOrCreateOverloadSet( e, funcName );
( ( ruleBuilders( e, pOvlSet, tag() ) ), ... );
return [pOvlSet, funcName]< typename... O >( Parser& p, O&&... operands )
{
DiagnosticsContext dc( 0, format( "When invoking {}.", funcName ) );
DiagnosticsContext dc( 0, format( "When invoking {}.", funcName.str() ) );
return InvokeOverloadSet( p.context(), pOvlSet, MakeTuple( forward< O >( operands )... ) );
};
}
template< typename T, typename I, typename RT = T >
auto ForType()
{
|