difftreelog
fix build with all features
in: master
2 files changed
crates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth64pub(crate) fn parse_jsonnet(code: &str, source: Source) -> Result<Expr, SyntaxError> {64pub(crate) fn parse_jsonnet(code: &str, source: Source) -> Result<Expr, SyntaxError> {65 #[cfg(feature = "peg-parser")]65 #[cfg(feature = "peg-parser")]66 {66 {67 use std::sync::LazyLock;67 static USE_LEGACY_PARSER: LazyLock<bool> =68 static USE_LEGACY_PARSER: LazyLock<bool> =68 LazyLock::new(|| std::env::var_os("JRSONNET_LEGACY_PARSER").is_some());69 LazyLock::new(|| std::env::var_os("JRSONNET_LEGACY_PARSER").is_some());697070 if USE_LEGACY_PARSER {71 if *USE_LEGACY_PARSER {71 return parse_peg(code, source);72 return parse_peg(code, source);72 }73 }73 }74 }crates/jrsonnet-peg-parser/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/lib.rs
+++ b/crates/jrsonnet-peg-parser/src/lib.rs
@@ -100,7 +100,7 @@
) {(rest, end)}
/ comma()? {(None, Vec::new())}
) _ "]" {?
- #[cfg(feature = "exp-destruct")] return Ok(expr::Destruct::Array {
+ #[cfg(feature = "exp-destruct")] return Ok(Destruct::Array {
start,
rest: rest.0,
end: rest.1,
@@ -109,13 +109,13 @@
}
pub rule destruct_object(s: &ParserSettings) -> Destruct
= "{" _
- fields:(name:id() into:(_ ":" _ into:destruct(s) {into})? default:(_ "=" _ v:expr(s) {v})? {(name, into, default.map(Rc::new))})**comma()
+ fields:(name:id() into:(_ ":" _ into:destruct(s) {into})? default:(_ "=" _ v:spanned(<expr(s)>, s) {v})? {(name, into, default.map(Rc::new))})**comma()
rest:(
comma() rest:destruct_rest()? {rest}
/ comma()? {None}
)
_ "}" {?
- #[cfg(feature = "exp-destruct")] return Ok(expr::Destruct::Object {
+ #[cfg(feature = "exp-destruct")] return Ok(Destruct::Object {
fields,
rest,
});
@@ -124,7 +124,7 @@
pub rule destruct(s: &ParserSettings) -> Destruct
= v:id() {Destruct::Full(v)}
/ "?" {?
- #[cfg(feature = "exp-destruct")] return Ok(expr::Destruct::Skip);
+ #[cfg(feature = "exp-destruct")] return Ok(Destruct::Skip);
#[cfg(not(feature = "exp-destruct"))] Err("!!!experimental destructuring was not enabled")
}
/ arr:destruct_array(s) {arr}