Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* implemented conversion of arrow types
* fixed (Int Bool) into (T T) succeeding
* now vectors have to be of one type only even if generic
* maybe something else too
|
|
|
|
also fixed function tests in check.rs
|
|
directly to atoms
|
|
into_type (it didn't handle lists recursively)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
new binding expression
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit 3e1bf7f9946efe70d452c71494ac77ed39110804.
|
|
|
|
|
|
|
|
|
|
|
|
VarType(String).
|
|
|
|
|
|
operators.
|
|
|
|
* Removed same_variant in parse::parsetree
* Added SExp::multistep (for use of the repl)
Improved error messages:
* Added parenthesis around types
* Changed how errors propagate inferring generics:
added the error variant ArgumentsDontMatchGeneric,
implemented the displaying of it, added tests for
it.
* Had to change some tests to match for the new changes
|
|
Error messages still need improvement, maybe some new variants? is_concrete was changed to hold information on the first unbound variable through Result<(), String>.
|
|
|
|
inferring them.
Inferring is done by method Type::infer_generics.
Whether it is executed is controlled by method Type::is_concrete.
Also had to change the Display for Type and its tests,
as the enum variants changed.
|
|
'parts' is different from 'into_vec', because it doesn't require flat structure and always succeeds
|
|
Added type variants List(Type), and UndefinedType for use in error messages. Implemented type utility arr(a, b).
|
|
(small commit, had to sync between desktop and laptop)
|
|
|
|
|