Goose  Diff

Differences From Artifact [24c9b3ad51]:

  • File bs/builtins/types/overloadset/invoke.cpp — part of check-in [59ecc02baa] at 2019-08-13 00:42:47 on branch trunk — Diagnostics: use value poisoning to (hopefully) fix most cases of superfluous cascading error messages. (user: achavasse size: 2456)

To Artifact [5512360408]:

  • File bs/builtins/types/overloadset/invoke.cpp — part of check-in [1feb20f522] at 2019-08-13 22:43:49 on branch trunk — Cleanup: got rid of optional< Value > in a lot of places that ought to always return a poison value if an error happens. (user: achavasse size: 2444)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "builtins/builtins.h"

using namespace empathy::sema;

namespace empathy::builtins
{
    class OverloadSetInvocationRule : public InvocationRule
    {
        public:
            optional< Value > resolveInvocation( const Context& c, uint32_t loc, const Value& callee, const Value& args ) const final
            {
                auto pOvlSet = *FromValue< ptr< OverloadSet > >( callee );

                UnificationContext uc( c );

                optional< UnificationContext > bestUC;
                optional< Term > bestSol;









|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "builtins/builtins.h"

using namespace empathy::sema;

namespace empathy::builtins
{
    class OverloadSetInvocationRule : public InvocationRule
    {
        public:
            Value resolveInvocation( const Context& c, uint32_t loc, const Value& callee, const Value& args ) const final
            {
                auto pOvlSet = *FromValue< ptr< OverloadSet > >( callee );

                UnificationContext uc( c );

                optional< UnificationContext > bestUC;
                optional< Term > bestSol;