Goose  Diff

Differences From Artifact [7cf8200e92]:

  • File bs/builtins/types/template/tfunc.cpp — part of check-in [cf3bb178ea] at 2019-05-25 10:44:31 on branch trunk — Domains: refactored functions to use the new representation. (user: achavasse size: 1131)

To Artifact [8d8dd25fbd]:

  • File bs/builtins/types/template/tfunc.cpp — part of check-in [c4abb2a3ed] at 2019-08-10 14:26:37 on branch trunk — Refactored the lexer (and the resolver) to output Terms associated with location Ids. (user: achavasse size: 1155)

23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
        auto typeVal = ValueFromIRExpr( v.type() );
        auto type = ::FromValue< TFuncType >( *typeVal );
        if( !type )
            return nullopt;

        auto result = Decompose( v.val(),
            Vec(
                SubTerm(),      // signature
                SubTerm(),      // identity
                Val< pvec >()   // toks
            )
        );

        if( !result )
            return nullopt;

        auto&& [signature, identity, toks] = *result;







|
|
|







23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
        auto typeVal = ValueFromIRExpr( v.type() );
        auto type = ::FromValue< TFuncType >( *typeVal );
        if( !type )
            return nullopt;

        auto result = Decompose( v.val(),
            Vec(
                SubTerm(),              // signature
                SubTerm(),              // identity
                Val< ptr< void > >()    // toks
            )
        );

        if( !result )
            return nullopt;

        auto&& [signature, identity, toks] = *result;