Goose  Diff

Differences From Artifact [a63419f46d]:

  • File bs/builtins/types/overloadset/overloadset.cpp — part of check-in [2acce94d2d] at 2019-06-29 14:36:18 on branch trunk — Handle execution domains when invoking/unifying functions, template functions, overload sets and constrained funcs. (user: achavasse size: 3162)

To Artifact [de9a92b2ef]:

  • File bs/builtins/types/overloadset/overloadset.cpp — part of check-in [429f55ae3c] at 2019-07-09 22:46:58 on branch trunk — codegen: added builtin functions to create a module and to dump it as llvm assembly text. (user: achavasse size: 3174)

93
94
95
96
97
98
99
100

101
102
103

104
105
106
107
108
109
110

111
112
113
114
93
94
95
96
97
98
99

100
101
102

103
104
105
106
107
108
109

110
111
112
113
114







-
+


-
+






-
+




    }

    Value Bridge< ptr< builtins::OverloadSet > >::ToValue( const ptr< builtins::OverloadSet >& os )
    {
        return Value( Type(), TERM( static_pointer_cast< void >( os ) ) );
    }

    ptr< builtins::OverloadSet > Bridge< ptr< builtins::OverloadSet > >::FromValue( const Value& v )
    optional< ptr< builtins::OverloadSet > > Bridge< ptr< builtins::OverloadSet > >::FromValue( const Value& v )
    {
        if( !IsOverloadSet( v ) )
            return nullptr;
            return nullopt;

        auto result = Decompose( v.val(),
            Val< ptr< void > >()
        );

        if( !result )
            return nullptr;
            return nullopt;

        return static_pointer_cast< builtins::OverloadSet >( result->get() );
    }
}