Skip to content

Commit d1878bf

Browse files
authored
Merge pull request #119 from togglebyte/dev
Dev
2 parents a1581d8 + 1848fe5 commit d1878bf

3 files changed

Lines changed: 22 additions & 23 deletions

File tree

anathema-default-widgets/src/canvas.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ impl Widget for Canvas {
215215
self.buffer = CanvasBuffer::copy_from(&mut self.buffer, size);
216216
}
217217

218-
Ok(self.buffer.size)
218+
Ok(size)
219219
}
220220

221221
fn position<'bp>(

anathema-value-resolver/src/expression.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,10 +231,10 @@ pub(crate) fn resolve_value<'a, 'bp>(
231231
},
232232
ValueExpr::Either(first, second) => {
233233
let value = resolve_value(first, ctx);
234-
match value {
235-
ValueKind::Null => resolve_value(second, ctx),
236-
first => first,
234+
if value.truthiness() {
235+
return value;
237236
}
237+
resolve_value(second, ctx)
238238
}
239239

240240
// -----------------------------------------------------------------------------

anathema-value-resolver/src/value.rs

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,24 @@ pub(crate) mod test {
912912
});
913913
}
914914

915+
#[test]
916+
fn test_either_with_state() {
917+
let mut states = States::new();
918+
let expr = either(index(ident("state"), strlit("num")), num(2));
919+
920+
setup(&mut states, Variables::new(), |test| {
921+
test.with_state(|state| state.num.set(0));
922+
let value = test.eval(&expr);
923+
assert_eq!(2, value.as_int().unwrap());
924+
});
925+
926+
setup(&mut states, Variables::new(), |test| {
927+
test.with_state(|state| state.num.set(1));
928+
let value = test.eval(&expr);
929+
assert_eq!(1, value.as_int().unwrap());
930+
});
931+
}
932+
915933
#[test]
916934
fn test_either() {
917935
let mut states = States::new();
@@ -1030,25 +1048,6 @@ pub(crate) mod test {
10301048
});
10311049
}
10321050

1033-
// #[test]
1034-
// fn test_nested_maps() {
1035-
// let mut states = States::new();
1036-
// setup(&mut states, Default::default(), |test| {
1037-
// let expr = index(
1038-
// index(index(ident("state"), strlit("value")), strlit("value")),
1039-
// strlit("value"),
1040-
// );
1041-
// let mut inner_map = Value::new(Map::empty());
1042-
// let mut inner_inner_map = Value::new(Map::empty());
1043-
// inner_inner_map.insert("value", 123);
1044-
// inner_map.insert("value", inner_inner_map);
1045-
1046-
// test.set_state("value", inner_map);
1047-
// let value = test.eval(&*expr);
1048-
// assert_eq!(123, value.as_int().unwrap());
1049-
// });
1050-
// }
1051-
10521051
#[test]
10531052
fn stringify() {
10541053
let mut states = States::new();

0 commit comments

Comments
 (0)