Goose  Diff

Differences From Artifact [00204747a2]:

  • File bs/ir/tostring.cpp — part of check-in [a742f106d4] at 2019-03-23 13:08:49 on branch trunk —
    • ir: terms can now contain a pointer to another term, for situations where a mutable terms needs to be shared by multiple expressions.
    • func: use a term pointer to store the function's content, so that we can distinguish a not-yet-parsed function from a non evaluated function value.
    (user: achavasse size: 2337)

To Artifact [b2a9dc0367]:

  • File bs/ir/tostring.cpp — part of check-in [fc331f1703] at 2019-04-06 14:16:09 on branch trunk —
    • Simplified TDecl: the right hand side can now only be a TVar. Removed the colon operator.
    • Added the possibility in unification to make hole resolution non mandatory for a sub expression.
    • Higher order polymorphism: implemented the unification of a polymorphic tfunc type param with a template lambda.
    (user: achavasse size: 2432)

19
20
21
22
23
24
25




26
27
28
29
30
31
32

    ostream& ToString( ostream& out, const Delimiter& x )
    {
        const char* name = "";

        switch( x )
        {




            case Delimiter::OpenParen:
                name = "OpenParen";
                break;

            case Delimiter::CloseParen:
                name = "CloseParen";
                break;







>
>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

    ostream& ToString( ostream& out, const Delimiter& x )
    {
        const char* name = "";

        switch( x )
        {
            case Delimiter::Newline:
                name = "Newline";
                break;

            case Delimiter::OpenParen:
                name = "OpenParen";
                break;

            case Delimiter::CloseParen:
                name = "CloseParen";
                break;