Goose  Diff

Differences From Artifact [143a73e042]:

  • File bs/builtins/helpers.h — part of check-in [9586391cdb] at 2020-01-23 22:24:02 on branch trunk — Refinement types: implemented the where operator to add predicates to a type. (user: achavasse size: 2348)

To Artifact [e6f0c4a213]:

  • File bs/builtins/helpers.h — part of check-in [e57c63fea5] at 2020-01-27 00:24:14 on branch trunk — Refinement types: parse predicates lazily to play well with templates. (user: achavasse size: 2200)

47
48
49
50
51
52
53
54
55
56
57
58
59
60
47
48
49
50
51
52
53



54
55
56
57







-
-
-





    template< typename I, typename L >
    auto MkStdRTType( I&& identity, L&& llvmType )
    {
        return VEC( forward< I >( identity ), TERM( ptr< void >() ), forward< L >( llvmType ) );
    }

    extern optional< pvec > GetPredicates( const Value& t );
    extern Term InjectPredicatesIntoStdType( const Term& t, const pvec& predicates );

    extern pvec ParseExpressionList( parse::Parser& p, uint32_t precedence, const pvec& pVec = make_shared< Vector >() );
}

#endif