Goose  Diff

Differences From Artifact [bbdaa2cb8a]:

  • File bs/sema/template.cpp — part of check-in [65cbac9aa3] at 2019-03-19 20:17:30 on branch trunk — Higher-order functions: implemented BuildArgPatternFromFuncType() and BuildArgPatternFromTFuncType(). (user: achavasse size: 2096)

To Artifact [cc2046655a]:

  • File bs/sema/template.cpp — part of check-in [0288a69883] at 2019-08-13 23:27:36 on branch trunk — cleanup: got rid of more optional< Value >. (user: achavasse size: 2090)

38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
        const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );
        if( !pTemplateRuleSet )
            return nullopt;

        return pTemplateRuleSet->buildSignature( c, *ValueFromIRExpr( tpl ) );
    }

    optional< Value > BuildTemplateParam( const Context& c, const Term& tpl, const Term& arg )
    {
        const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );
        if( !pTemplateRuleSet )
            return nullopt;

        return pTemplateRuleSet->buildParamDecl( c, *ValueFromIRExpr( tpl ), *ValueFromIRExpr( arg ) );
    }

    void TemplateSetup( const Context& c, UnificationContext& uc, const Term& tpl )
    {
        const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );







|



|







38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
        const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );
        if( !pTemplateRuleSet )
            return nullopt;

        return pTemplateRuleSet->buildSignature( c, *ValueFromIRExpr( tpl ) );
    }

    Value BuildTemplateParam( const Context& c, const Term& tpl, const Term& arg )
    {
        const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );
        if( !pTemplateRuleSet )
            return PoisonValue();

        return pTemplateRuleSet->buildParamDecl( c, *ValueFromIRExpr( tpl ), *ValueFromIRExpr( arg ) );
    }

    void TemplateSetup( const Context& c, UnificationContext& uc, const Term& tpl )
    {
        const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );