Goose  Diff

Differences From Artifact [ffeb55a7df]:

  • File bs/eir/tostring.cpp — part of check-in [51f288ba2a] at 2021-09-13 21:52:06 on branch trunk —
    • Implemented a generic wrapper for the simple native types that can be embedded in Terms
    • Added more specific overloads for the assignment operator that should work only on builtin types, so that library and user defined types will be able to choose whether they're copyable
    • The EIR representation for all builtin runtime types are now prefixed with "rt_type" to more easily write generic matching rules against them
    • EIR: Fixed long standing bugs in Enumerate and Decompose that surfaced because of the above
    • Miscellaneous code cleaning
    (user: achavasse size: 3388)

To Artifact [c8dce64c9f]:

  • File bs/eir/tostring.cpp — part of check-in [967d3ba3d7] at 2021-09-16 19:00:02 on branch trunk — More work on the g0 EIR api (user: achavasse size: 3382)

77
78
79
80
81
82
83
84

85
86

87
88
89
90
91
92
93
77
78
79
80
81
82
83

84
85

86
87
88
89
90
91
92
93







-
+

-
+







        }

        return out << name;
    }

    ostream& ToString( ostream& out, const Hole& x )
    {
        if( x.flavor() == TSID( anyflavor ) )
        if( x.kind() == TSID( anykind ) )
            return out << "$(" << x.name() << ')';
        return out << '$' << x.name() << '(' << x.flavor() << ')';
        return out << '$' << x.name() << '(' << x.kind() << ')';
    }

    ostream& ToString( ostream& out, const ptr< void >& x )
    {
        return out << "pvoid(" << x << ')';
    }