summaryrefslogtreecommitdiff
path: root/src/parser.mly
diff options
context:
space:
mode:
authorAlasdair Armstrong2018-12-10 20:39:16 +0000
committerAlasdair Armstrong2018-12-10 20:45:05 +0000
commit5bc5f5dee8921f8d24260dae54177e00c291fcb1 (patch)
tree89bbd7a947e8063bdbaac4abf364f6cccd2c3fdf /src/parser.mly
parentd8f0854ca9d80d3af8d6a4aaec778643eda9421c (diff)
Various changes:
* Improve type inference for numeric if statements (if_infer test) * Correctly handle constraints for existentially quantified constructors (constraint_ctor test) * Canonicalise all numeric types in function arguments, which triggers some weird edge cases between parametric polymorphism and subtyping of numeric arguments * Because of this eq_int, eq_range, and eq_atom etc become identical * Avoid duplicating destruct_exist in Env * Handle some odd subtyping cases better
Diffstat (limited to 'src/parser.mly')
-rw-r--r--src/parser.mly6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/parser.mly b/src/parser.mly
index fa36591c..83e6936d 100644
--- a/src/parser.mly
+++ b/src/parser.mly
@@ -212,9 +212,11 @@ let rec desugar_rchain chain s e =
%start file
%start typschm_eof
+%start typ_eof
%start exp_eof
%start def_eof
%type <Parse_ast.typschm> typschm_eof
+%type <Parse_ast.atyp> typ_eof
%type <Parse_ast.exp> exp_eof
%type <Parse_ast.def> def_eof
%type <Parse_ast.defs> file
@@ -349,6 +351,10 @@ tyarg:
| Lparen typ_list Rparen
{ [], $2 }
+typ_eof:
+ | typ Eof
+ { $1 }
+
typ:
| typ0
{ $1 }