diff --git a/src/lib.rs b/src/lib.rs index 5000e46..dc05a4a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -451,6 +451,7 @@ mod tests { #[case("\"foobar\"", Value::String("foobar".into()))] #[case("\"\\\\foobar\"", Value::String("\\foobar".into()))] #[case("\"\\u2705\"", Value::String("✅".into()))] + #[case("[null, 2, 3]", "[null, 2, 3]")] fn parse_literals(#[case] query: &str, #[case] expected: Value) -> Result<()> { let jslt: Jslt = query.parse()?; diff --git a/src/transform/value.rs b/src/transform/value.rs index 5d797a9..ca28d30 100644 --- a/src/transform/value.rs +++ b/src/transform/value.rs @@ -199,12 +199,15 @@ impl FromPairs for ValueTransformer { Rule::Accessor => AccessorTransformer::from_pairs(pairs).map(ValueTransformer::Accessor), Rule::Array => ArrayTransformer::from_pairs(pairs).map(ValueTransformer::Array), Rule::Boolean => BooleanTransformer::from_pairs(pairs).map(ValueTransformer::Boolean), - Rule::Null => Ok(ValueTransformer::Null(NullTransformer)), Rule::Number => NumberTransformer::from_pairs(pairs).map(ValueTransformer::Number), Rule::Object => ObjectTransformer::from_pairs(pairs).map(ValueTransformer::Object), Rule::Scope => ScopeTransformer::from_pairs(pairs).map(ValueTransformer::Scope), Rule::String => StringTransformer::from_pairs(pairs).map(ValueTransformer::String), Rule::Variable => VariableTransformer::from_pairs(pairs).map(ValueTransformer::Variable), + Rule::Null => { + let _ = pairs.next(); + Ok(ValueTransformer::Null(NullTransformer)) + } rule => Err(JsltError::UnexpectedInput( Rule::Value, rule,