Skip to content

Commit 8cc8612

Browse files
committed
tweaks to validate assignment WIP
1 parent e7c2860 commit 8cc8612

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

src/validators/typed_dict.rs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -346,18 +346,8 @@ impl TypedDictValidator {
346346
where
347347
'data: 's,
348348
{
349-
let extra = Extra {
350-
field_name: Some(field),
351-
assignee_field: None,
352-
..*extra
353-
};
354-
// TODO probably we should set location on errors here
355-
let data = match extra.data {
356-
Some(data) => data,
357-
None => unreachable!(),
358-
};
359-
360349
let prepare_tuple = |output: PyObject| {
350+
let data = extra.data.unwrap();
361351
data.set_item(field, output)?;
362352
if self.return_fields_set {
363353
let fields_set = PySet::new(py, &[field])?;
@@ -379,6 +369,12 @@ impl TypedDictValidator {
379369
Err(err) => Err(err),
380370
};
381371

372+
let extra = Extra {
373+
field_name: Some(field),
374+
assignee_field: None,
375+
..*extra
376+
};
377+
382378
if let Some(field) = self.fields.iter().find(|f| f.name == field) {
383379
if field.frozen {
384380
Err(ValError::new_with_loc(ErrorType::Frozen, input, field.name.to_string()))

0 commit comments

Comments
 (0)