diff --git a/dust-lang/src/abstract_tree/value_node.rs b/dust-lang/src/abstract_tree/value_node.rs index 417e91a..44d014d 100644 --- a/dust-lang/src/abstract_tree/value_node.rs +++ b/dust-lang/src/abstract_tree/value_node.rs @@ -67,7 +67,11 @@ impl AbstractNode for ValueNode { ) -> Result<(), ValidationError> { if let ValueNode::List(list) = self { let mut items = list.into_iter(); - let first_item = items.next().unwrap(); + let first_item = if let Some(item) = items.next() { + item + } else { + return Ok(()); + }; let first_item_type = if let Some(r#type) = first_item.expected_type(context)? { r#type } else { diff --git a/dust-lang/tests/values.rs b/dust-lang/tests/values.rs index 114823c..5dd5d74 100644 --- a/dust-lang/tests/values.rs +++ b/dust-lang/tests/values.rs @@ -87,11 +87,11 @@ fn string() { #[test] fn list() { assert_eq!( - interpret("test", "[1, 2, 'foobar']"), + interpret("test", "[1, 2, 3]"), Ok(Some(Value::list(vec![ Value::integer(1), Value::integer(2), - Value::string("foobar".to_string()), + Value::integer(3), ]))) ); }