Goose  Diff

Differences From Artifact [0c00cbcd0d]:

  • File bs/sema/typecheck.h — part of check-in [7b9f645074] at 2021-01-21 21:05:48 on branch trunk — Removed the vector "typechecking rule", whose existence made no sense. Typechecking rules should operate only on values and pattern of values. Typechecking multiple values against multiple params is now done through a specific function instead. (user: achavasse size: 967)

To 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...]

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    >;

    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& context );
    TCGen TypeCheckVec( const Term& lhs, const Term& rhs, const TypeCheckingContext& context );

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

#endif







|
|

|
|



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    >;

    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