git.delta.rocks / jrsonnet / refs/commits / 976458d0908d

difftreelog

fix build with all features

lotntrwlYaroslav Bolyukin2026-03-23parent: #b828464.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth
64pub(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());
6970
70 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 }
modifiedcrates/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}