diff options
author | Nadrieril | 2020-01-17 16:09:35 +0000 |
---|---|---|
committer | Nadrieril | 2020-01-17 16:20:55 +0000 |
commit | 37acac4b972b38e8dbe2d174dae1031e5a8eda67 (patch) | |
tree | 02a9105c005d57af110a47130501078254411d0e /dhall/src/semantics/phase/typecheck.rs | |
parent | 06f619e8b1654e506840d17dc1cbff4f2d9795c3 (diff) |
Tweak: handle empty lists in typeck
Diffstat (limited to '')
-rw-r--r-- | dhall/src/semantics/phase/typecheck.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/dhall/src/semantics/phase/typecheck.rs b/dhall/src/semantics/phase/typecheck.rs index c77d9c4..852f41b 100644 --- a/dhall/src/semantics/phase/typecheck.rs +++ b/dhall/src/semantics/phase/typecheck.rs @@ -433,12 +433,18 @@ fn type_last_layer( RetTypeOnly(y.get_type()?) } EmptyListLit(t) => { - match &*t.as_whnf() { + let arg = match &*t.as_whnf() { ValueKind::AppliedBuiltin(syntax::Builtin::List, args) - if args.len() == 1 => {} + if args.len() == 1 => + { + args[0].clone() + } _ => return mkerr(InvalidListType(t.clone())), - } - RetTypeOnly(t.clone()) + }; + RetWhole(Value::from_kind_and_type( + ValueKind::EmptyListLit(arg), + t.clone(), + )) } NEListLit(xs) => { let mut iter = xs.iter().enumerate(); |