Goose  Diff

Differences From Artifact [1645db07ee]:

  • File bs/sema/typecheck.h — part of check-in [52ea24b083] at 2021-02-25 12:10:33 on branch trunk — Implemented a new method to order function overloads. Enabled several new reference tests which are now working properly. (user: achavasse size: 951) [more...]

To Artifact [892b018554]:

  • File bs/sema/typecheck.h — part of check-in [46e87c202b] at 2021-08-28 17:55:26 on branch trunk —
    • Instead of falling back to unification as the default type checking rule, implemented default type checking rules similar to the default unification ones
    • Fixed a nasty generator bug
    • Fixed reference type parsing not generating a location
    • Fixed where operator not generating a location that spanned both the types and the predicates
    • Various fixes to accomodate random api changes in the latest llvm
    • Updates fmt and catch2 versions
    (user: achavasse size: 755)

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
11
12
13
14
15
16
17

18
19
20
21

22
23
24
25
26
27







-




-






    <
        NoUnification,
        AmbiguousTypeCheck,
        TCSol
    >;

    TypeCheckingSolution FindBestTyping( const Term& lhs, const Term& rhs, const Context& context );
    TypeCheckingSolution FindBestTypingVec( const Term& lhs, const Term& rhs, const Context& context );

    using TCGen = Generator< pair< Term, TypeCheckingContext > >;

    TCGen TypeCheck( const Term& lhs, const Term& rhs, const TypeCheckingContext& tcc );
    TCGen TypeCheckVec( const Term& lhs, const Term& rhs, const TypeCheckingContext& tcc );

    TCGen Unify( const Term& lhs, const Term& rhs, const TypeCheckingContext& tcc );
    optional< Term > HalfUnify( const Term& lhs, TypeCheckingContext& tcc );
}

#endif