Goose  Diff

Differences From Artifact [cbab20f459]:

  • File bs/builtins/operators/helpers.h — part of check-in [48a020a1fa] at 2019-08-17 14:49:29 on branch trunk —
    • Intrinsics automatically set their domain depending on the domain restrictions of the builtin types that they use.
    • Declaring a local variable of a compile-time only type is now properly rejected during codegen.
    • Improved error messages for operators and extension point invocations.
    (user: achavasse size: 4014)

To Artifact [7b8982912b]:

  • File bs/builtins/operators/helpers.h — part of check-in [35a5fd236f] at 2019-08-17 20:46:39 on branch trunk — Implemented compound assignment operators. (user: achavasse size: 3998)

102
103
104
105
106
107
108
109

110
111
112

113
114
115
116
117
102
103
104
105
106
107
108

109
110
111

112
113
114
115
116
117







-
+


-
+





            }
        };
    }

    template< typename T1, typename T2, typename F >
    auto ForTypes( F&& func )
    {
        return [&]< typename tag >( auto&& e, auto&& pOvlSet, tag t )
        return [=]< typename tag >( auto&& e, auto&& pOvlSet, tag t )
        {
            using intrinsicType = Intrinsic< Value ( T1, T2 ) >;
            pOvlSet->add( e, ToValue< intrinsicType >( forward< F >( func ) ), GetFuncInvocationRule() );
            pOvlSet->add( e, ToValue< intrinsicType >( func ), GetFuncInvocationRule() );
        };
    }
}

#endif