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 [947d9f1beb]:

  • File bs/sema/typecheck.h — part of check-in [b48e7b7507] at 2021-03-17 00:41:57 on branch trunk —
    • Added a Conversion step after typechecking, to take care of conversions that aren't practical to do during typechecking itself.
    • Added back a proper ct_int to rt_int conversion step that diagnoses out of range integer constants
    (user: achavasse size: 1044)

20
21
22
23
24
25
26


27
28
29
20
21
22
23
24
25
26
27
28
29
30
31







+
+



    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 );

    Value Convert( const Term& tcResult, const Term& arg, const TypeCheckingContext& tcc );
}

#endif