diff options
author | Vincent Ambo <tazjin@google.com> | 2019-08-08T14·07+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2019-08-28T13·36+0100 |
commit | ca0cf11ca9fe1fd80c8edeb71d2a66016d9798d5 (patch) | |
tree | 0fa8160e395cc16286418d44547baeb6b9e9d711 /yants.nix | |
parent | 4ebc069a3f4b23aa9409be7b0363393556bdbdd4 (diff) |
feat: Improved error message for missing struct fields
Diffstat (limited to 'yants.nix')
-rw-r--r-- | yants.nix | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/yants.nix b/yants.nix index 3dfebfcf1fa0..a00d084392d3 100644 --- a/yants.nix +++ b/yants.nix @@ -35,7 +35,8 @@ with builtins; let type = def."${field}"; checked = type.check fieldVal; in if checked then (current && true) - else (throw "Field ${field} is of type ${typeOf fieldVal}, but expected ${type.name}"); + else if isNull fieldVal then (throw "Missing required ${type.name} field '${field}'") + else (throw "Field ${field} is of type ${typeOf fieldVal}, but expected ${type.name}"); checkExtraneous = name: def: present: if (length present) == 0 then true |