Goose  Diff

Differences From Artifact [68b6e76598]:

  • File bs/builtins/types/template/build.cpp — part of check-in [f2ca82dfce] at 2019-08-16 23:52:52 on branch trunk — Simplified ir::Vector, use plain std::vector to store the terms. immer::vector was pointless for that since we pretty much never actually take advantage of them being CoW in this case. (user: achavasse size: 3428)

To Artifact [154d65c7be]:

  • File bs/builtins/types/template/build.cpp — part of check-in [0c3c9488af] at 2019-09-17 20:08:39 on branch trunk —
    • parser: add an utility function to retrieve a sub expression in its unparsed form.
    • tfunc type: store a pointer to a vector of unparsed tokens for the verification statements.
    (user: achavasse size: 3437)

18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

        ForEachInTuple( params, [&]( auto&& param )
        {
            v->append( ValueToIRExpr( param ) );
            return true;
        } );

        return TFuncType( domain, ValueToIRExpr( returnType ), v );
    }

    optional< Term > BuildTFuncSignature( const Context& c, const TFuncType& tft )
    {
        auto v = make_shared< Vector >();
        v->reserve( VecSize( tft.params() ) );








|







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

        ForEachInTuple( params, [&]( auto&& param )
        {
            v->append( ValueToIRExpr( param ) );
            return true;
        } );

        return TFuncType( domain, ValueToIRExpr( returnType ), v, nullptr );
    }

    optional< Term > BuildTFuncSignature( const Context& c, const TFuncType& tft )
    {
        auto v = make_shared< Vector >();
        v->reserve( VecSize( tft.params() ) );