diff options
author | Nadrieril | 2019-12-24 21:21:10 +0000 |
---|---|---|
committer | Nadrieril | 2019-12-24 21:21:10 +0000 |
commit | 611d4ced3a5ffca8b9765971001995a216dbbb54 (patch) | |
tree | 52eacf3844e308cd9e2733a77de458f19135e85b /dhall/src/semantics | |
parent | f67d30cf563b835c067107cf88769414f170416c (diff) |
Ensure the output of type inference matches the spec variable names
Diffstat (limited to 'dhall/src/semantics')
-rw-r--r-- | dhall/src/semantics/phase/typecheck.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/dhall/src/semantics/phase/typecheck.rs b/dhall/src/semantics/phase/typecheck.rs index 97502d4..e9836e8 100644 --- a/dhall/src/semantics/phase/typecheck.rs +++ b/dhall/src/semantics/phase/typecheck.rs @@ -288,7 +288,7 @@ fn type_of_builtin<E>(b: Builtin) -> Expr<E> { optional ), OptionalNone => make_type!( - forall (a: Type) -> Optional a + forall (A: Type) -> Optional A ), }) } @@ -503,9 +503,9 @@ fn type_last_layer( RetTypeOnly( tck_pi_type( ctx, - "_".into(), + x.clone(), t.clone(), - r.under_binder(Label::from("_")), + r.under_binder(x), )? ) }, @@ -764,12 +764,12 @@ fn type_last_layer( } } - match (inferred_type, type_annot) { - (Some(ref t1), Some(t2)) => { - if t1 != t2 { + match (inferred_type, type_annot.as_ref()) { + (Some(t1), Some(t2)) => { + if &t1 != t2 { return mkerr(MergeAnnotMismatch); } - RetTypeOnly(t2.clone()) + RetTypeOnly(t1) } (Some(t), None) => RetTypeOnly(t), (None, Some(t)) => RetTypeOnly(t.clone()), |