difftreelog
refactor split literals and trivials
in: master
39 files changed
crates/jrsonnet-ir-parser/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/lib.rs
+++ b/crates/jrsonnet-ir-parser/src/lib.rs
@@ -1,9 +1,9 @@
use jrsonnet_gcmodule::Acyclic;
use jrsonnet_ir::{
ArgsDesc, AssertExpr, AssertStmt, BinaryOp, BinaryOpType, BindSpec, CompSpec, Destruct, Expr,
- ExprParam, ExprParams, FieldMember, FieldName, ForSpecData, IStr, IfElse, IfSpecData,
- ImportKind, IndexPart, LiteralType, Member, NumValue, ObjBody, ObjComp, ObjMembers, Slice,
- SliceDesc, Source, Span, Spanned, UnaryOpType, Visibility, unescape,
+ ExprParam, ExprParams, FieldMember, FieldName, ForSpecData, IStr, IdentityKind, IfElse,
+ IfSpecData, ImportKind, IndexPart, Member, NumValue, ObjBody, ObjComp, ObjMembers, Slice,
+ SliceDesc, Source, Span, Spanned, TrivialVal, UnaryOpType, Visibility, unescape,
};
use jrsonnet_lexer::{Lexeme, Lexer, Span as LexSpan, SyntaxKind, T, collect_lexed_str_block};
@@ -247,19 +247,6 @@
Ok(IStr::from(text))
}
-fn literal(p: &mut Parser<'_>) -> Option<(Span, LiteralType)> {
- let t = match p.peek() {
- T![self] => LiteralType::This,
- T![super] => LiteralType::Super,
- T!['$'] => LiteralType::Dollar,
- T![null] => LiteralType::Null,
- T![true] => LiteralType::True,
- T![false] => LiteralType::False,
- _ => return None,
- };
- Some((p.eat_any_spanned(), t))
-}
-
fn assert_stmt(p: &mut Parser<'_>) -> Result<AssertStmt> {
p.eat(T![assert])?;
let assertion = spanned(p, expr)?;
@@ -688,18 +675,30 @@
#[allow(clippy::too_many_lines)]
fn expr_basic(p: &mut Parser<'_>) -> Result<Expr> {
- if let Some((span, lit)) = literal(p) {
- return Ok(Expr::Literal(span, lit));
- }
+ match p.peek() {
+ T![self] => Ok(Expr::Identity(p.eat_any_spanned(), IdentityKind::This)),
+ T![super] => Ok(Expr::Identity(p.eat_any_spanned(), IdentityKind::Super)),
+ T!['$'] => Ok(Expr::Identity(p.eat_any_spanned(), IdentityKind::Dollar)),
+ T![null] => {
+ p.eat_any();
+ Ok(Expr::Trivial(TrivialVal::Null))
+ }
+ T![true] => {
+ p.eat_any();
+ Ok(Expr::Trivial(TrivialVal::Bool(true)))
+ }
+ T![false] => {
+ p.eat_any();
+ Ok(Expr::Trivial(TrivialVal::Bool(false)))
+ }
- match p.peek() {
SyntaxKind::STRING_DOUBLE
| SyntaxKind::STRING_SINGLE
| SyntaxKind::STRING_DOUBLE_VERBATIM
| SyntaxKind::STRING_SINGLE_VERBATIM
- | SyntaxKind::STRING_BLOCK => Ok(Expr::Str(parse_string_content(p)?)),
+ | SyntaxKind::STRING_BLOCK => Ok(Expr::Trivial(TrivialVal::Str(parse_string_content(p)?))),
- SyntaxKind::FLOAT => Ok(Expr::Num(parse_number(p)?)),
+ SyntaxKind::FLOAT => Ok(Expr::Trivial(TrivialVal::Num(parse_number(p)?))),
T!['('] => {
p.eat(T!['('])?;
@@ -832,7 +831,7 @@
if parts.is_empty() {
return;
}
- let old = std::mem::replace(e, Expr::Str(IStr::empty()));
+ let old = std::mem::replace(e, Expr::Trivial(TrivialVal::Null));
*e = Expr::Index {
indexable: Box::new(old),
parts: std::mem::take(parts),
@@ -863,7 +862,7 @@
});
} else {
// ?.field
- let id_spanned = spanned(p, |p| Ok(Expr::Str(ident(p)?)))?;
+ let id_spanned = spanned(p, |p| Ok(Expr::Trivial(TrivialVal::Str(ident(p)?))))?;
parts.push(IndexPart {
span: id_spanned.span,
value: id_spanned.value,
@@ -878,7 +877,7 @@
if p.at(T![.]) {
p.eat(T![.])?;
- let id_spanned = spanned(p, |p| Ok(Expr::Str(ident(p)?)))?;
+ let id_spanned = spanned(p, |p| Ok(Expr::Trivial(TrivialVal::Str(ident(p)?))))?;
parts.push(IndexPart {
span: id_spanned.span,
value: id_spanned.value,
@@ -1058,7 +1057,10 @@
pub fn string_to_expr(s: IStr, settings: &ParserSettings) -> Spanned<Expr> {
let len = u32::try_from(s.len()).expect("code size is limited by 4gb");
- Spanned::new(Expr::Str(s), Span(settings.source.clone(), 0, len))
+ Spanned::new(
+ Expr::Trivial(TrivialVal::Str(s)),
+ Span(settings.source.clone(), 0, len),
+ )
}
#[cfg(test)]
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__basic_math.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__basic_math.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__basic_math.snap
@@ -1,21 +1,28 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1094
expression: "format!(\"{v:#?}\")"
---
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__basic_test.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__basic_test.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__basic_test.snap
@@ -1,35 +1,40 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1082
expression: "format!(\"{v:#?}\")"
---
AssertExpr(
AssertExpr {
assert: AssertStmt {
assertion: Index {
- indexable: Literal(
- virtual:<test>:7-11,
- True,
+ indexable: Trivial(
+ Bool(
+ true,
+ ),
),
parts: [
IndexPart {
span: virtual:<test>:12-17,
- value: Literal(
- virtual:<test>:12-17,
- False,
+ value: Trivial(
+ Bool(
+ false,
+ ),
),
},
],
} from virtual:<test>:7-18,
message: Some(
- Literal(
- virtual:<test>:21-26,
- False,
+ Trivial(
+ Bool(
+ false,
+ ),
),
),
},
- rest: Literal(
- virtual:<test>:29-33,
- True,
+ rest: Trivial(
+ Bool(
+ true,
+ ),
),
},
)
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__error_expr.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__error_expr.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__error_expr.snap
@@ -1,10 +1,13 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1161
expression: "format!(\"{v:#?}\")"
---
ErrorStmt(
virtual:<test>:0-5,
- Str(
- "bad",
+ Trivial(
+ Str(
+ "bad",
+ ),
),
)
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__function_and_call.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__function_and_call.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__function_and_call.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1118
expression: "format!(\"{v:#?}\")"
---
LocalExpr(
@@ -19,8 +20,10 @@
"y" from virtual:<test>:11-12,
),
default: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
),
),
},
@@ -62,16 +65,20 @@
),
ArgsDesc {
unnamed: [
- Num(
- 2.0,
+ Trivial(
+ Num(
+ 2.0,
+ ),
),
],
names: [
"y",
],
values: [
- Num(
- 3.0,
+ Trivial(
+ Num(
+ 3.0,
+ ),
),
],
} from virtual:<test>:26-34,
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__if_then_else.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__if_then_else.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__if_then_else.snap
@@ -1,22 +1,28 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1124
expression: "format!(\"{v:#?}\")"
---
IfElse(
IfElse {
cond: IfSpecData {
span: virtual:<test>:0-2,
- cond: Literal(
- virtual:<test>:3-7,
- True,
+ cond: Trivial(
+ Bool(
+ true,
+ ),
),
},
- cond_then: Num(
- 1.0,
+ cond_then: Trivial(
+ Num(
+ 1.0,
+ ),
),
cond_else: Some(
- Num(
- 2.0,
+ Trivial(
+ Num(
+ 2.0,
+ ),
),
),
},
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__imports.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__imports.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__imports.snap
@@ -1,25 +1,32 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1130
expression: "format!(\"{v:#?}\")"
---
Arr(
[
Import(
Normal from virtual:<test>:1-7,
- Str(
- "a",
+ Trivial(
+ Str(
+ "a",
+ ),
),
),
Import(
Str from virtual:<test>:13-22,
- Str(
- "b",
+ Trivial(
+ Str(
+ "b",
+ ),
),
),
Import(
Bin from virtual:<test>:28-37,
- Str(
- "c",
+ Trivial(
+ Str(
+ "c",
+ ),
),
),
],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__index_and_suffix.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__index_and_suffix.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__index_and_suffix.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1143
expression: "format!(\"{v:#?}\")"
---
Index {
@@ -11,16 +12,20 @@
parts: [
IndexPart {
span: virtual:<test>:4-8,
- value: Str(
- "test",
+ value: Trivial(
+ Str(
+ "test",
+ ),
),
},
],
},
ArgsDesc {
unnamed: [
- Num(
- 2.0,
+ Trivial(
+ Num(
+ 2.0,
+ ),
),
],
names: [],
@@ -31,14 +36,18 @@
parts: [
IndexPart {
span: virtual:<test>:12-17,
- value: Str(
- "field",
+ value: Trivial(
+ Str(
+ "field",
+ ),
),
},
IndexPart {
span: virtual:<test>:18-19,
- value: Num(
- 0.0,
+ value: Trivial(
+ Num(
+ 0.0,
+ ),
),
},
],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__literals.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__literals.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__literals.snap
@@ -1,30 +1,32 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1088
expression: "format!(\"{v:#?}\")"
---
Arr(
[
- Literal(
- virtual:<test>:1-5,
+ Trivial(
Null,
),
- Literal(
- virtual:<test>:7-11,
- True,
+ Trivial(
+ Bool(
+ true,
+ ),
),
- Literal(
- virtual:<test>:13-18,
- False,
+ Trivial(
+ Bool(
+ false,
+ ),
),
- Literal(
+ Identity(
virtual:<test>:20-24,
This,
),
- Literal(
+ Identity(
virtual:<test>:26-31,
Super,
),
- Literal(
+ Identity(
virtual:<test>:33-34,
Dollar,
),
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__obj_extend.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__obj_extend.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__obj_extend.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1149
expression: "format!(\"{v:#?}\")"
---
ObjExtend(
@@ -24,8 +25,10 @@
plus: false,
params: None,
visibility: Normal,
- value: Num(
- 1.0,
+ value: Trivial(
+ Num(
+ 1.0,
+ ),
),
},
],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__object.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__object.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__object.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1112
expression: "format!(\"{v:#?}\")"
---
Obj(
@@ -15,8 +16,10 @@
plus: false,
params: None,
visibility: Normal,
- value: Num(
- 1.0,
+ value: Trivial(
+ Num(
+ 1.0,
+ ),
),
},
FieldMember {
@@ -26,8 +29,10 @@
plus: false,
params: None,
visibility: Hidden,
- value: Num(
- 2.0,
+ value: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
FieldMember {
@@ -37,8 +42,10 @@
plus: false,
params: None,
visibility: Unhide,
- value: Num(
- 3.0,
+ value: Trivial(
+ Num(
+ 3.0,
+ ),
),
},
],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@array_comp.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@array_comp.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@array_comp.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/array_comp.jsonnet
---
@@ -14,8 +15,10 @@
parts: [
IndexPart {
span: virtual:<test>:7-15,
- value: Str(
- "deepJoin",
+ value: Trivial(
+ Str(
+ "deepJoin",
+ ),
),
},
],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@basic_math.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@basic_math.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@basic_math.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/basic_math.jsonnet
---
@@ -7,18 +8,24 @@
[
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
@@ -26,18 +33,24 @@
),
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
@@ -47,24 +60,32 @@
BinaryOp {
lhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
@@ -72,24 +93,32 @@
),
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
@@ -99,18 +128,24 @@
),
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 3.0,
+ lhs: Trivial(
+ Num(
+ 3.0,
+ ),
),
op: Mul,
- rhs: Num(
- 4.0,
+ rhs: Trivial(
+ Num(
+ 4.0,
+ ),
),
},
),
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@comment_eof.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@comment_eof.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@comment_eof.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/comment_eof.jsonnet
---
@@ -16,8 +17,10 @@
plus: false,
params: None,
visibility: Normal,
- value: Num(
- 1.0,
+ value: Trivial(
+ Num(
+ 1.0,
+ ),
),
},
],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@default_nondefault.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@default_nondefault.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@default_nondefault.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/default_nondefault.jsonnet
---
@@ -14,8 +15,10 @@
"foo" from virtual:<test>:8-11,
),
default: Some(
- Str(
- "foo",
+ Trivial(
+ Str(
+ "foo",
+ ),
),
),
},
@@ -44,14 +47,12 @@
),
binds_len: 2,
},
- value: Literal(
- virtual:<test>:28-32,
+ value: Trivial(
Null,
),
},
],
- Literal(
- virtual:<test>:34-38,
+ Trivial(
Null,
),
)
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@imports.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@imports.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@imports.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/imports.jsonnet
---
@@ -7,20 +8,26 @@
[
Import(
Normal from virtual:<test>:2-8,
- Str(
- "hello",
+ Trivial(
+ Str(
+ "hello",
+ ),
),
),
Import(
Str from virtual:<test>:18-27,
- Str(
- "garnish.txt",
+ Trivial(
+ Str(
+ "garnish.txt",
+ ),
),
),
Import(
Bin from virtual:<test>:43-52,
- Str(
- "garnish.bin",
+ Trivial(
+ Str(
+ "garnish.bin",
+ ),
),
),
],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@multiline.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@multiline.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@multiline.jsonnet.snap
@@ -1,21 +1,30 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/multiline.jsonnet
---
Arr(
[
- Str(
- "Hello world!\na\n",
+ Trivial(
+ Str(
+ "Hello world!\na\n",
+ ),
),
- Str(
- "Hello world!\na\n",
+ Trivial(
+ Str(
+ "Hello world!\na\n",
+ ),
),
- Str(
- "Hello world!\n\ta\n",
+ Trivial(
+ Str(
+ "Hello world!\n\ta\n",
+ ),
),
- Str(
- "Hello world!\n a\n",
+ Trivial(
+ Str(
+ "Hello world!\n a\n",
+ ),
),
],
)
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@reserved.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@reserved.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@reserved.jsonnet.snap
@@ -1,12 +1,12 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/reserved.jsonnet
---
Arr(
[
- Literal(
- virtual:<test>:2-6,
+ Trivial(
Null,
),
Var(
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@slice.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@slice.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@slice.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/slice.jsonnet
---
@@ -12,8 +13,10 @@
),
slice: SliceDesc {
start: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:4-5,
),
end: None,
@@ -28,8 +31,10 @@
),
slice: SliceDesc {
start: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:11-12,
),
end: None,
@@ -45,8 +50,10 @@
slice: SliceDesc {
start: None,
end: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:20-21,
),
step: None,
@@ -62,8 +69,10 @@
start: None,
end: None,
step: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:29-30,
),
},
@@ -83,8 +92,10 @@
"len" from virtual:<test>:38-41,
),
op: Sub,
- rhs: Num(
- 1.0,
+ rhs: Trivial(
+ Num(
+ 1.0,
+ ),
),
},
) from virtual:<test>:38-45,
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@string_escaping.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@string_escaping.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@string_escaping.jsonnet.snap
@@ -1,24 +1,35 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/string_escaping.jsonnet
---
Arr(
[
- Str(
- "Hello, \"world\"!",
+ Trivial(
+ Str(
+ "Hello, \"world\"!",
+ ),
),
- Str(
- "Hello 'world'!",
+ Trivial(
+ Str(
+ "Hello 'world'!",
+ ),
),
- Str(
- "\\\\",
+ Trivial(
+ Str(
+ "\\\\",
+ ),
),
- Str(
- "Hello\nWorld",
+ Trivial(
+ Str(
+ "Hello\nWorld",
+ ),
),
- Str(
- "Hello\\n\"World\"",
+ Trivial(
+ Str(
+ "Hello\\n\"World\"",
+ ),
),
],
)
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@subexp.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@subexp.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@subexp.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/subexp.jsonnet
---
@@ -22,8 +23,10 @@
into: Full(
"x" from virtual:<test>:11-12,
),
- value: Num(
- 1.0,
+ value: Trivial(
+ Num(
+ 1.0,
+ ),
),
},
],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@suffix.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@suffix.jsonnet.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__peg_snapshots@suffix.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1184
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/suffix.jsonnet
---
@@ -12,8 +13,10 @@
parts: [
IndexPart {
span: virtual:<test>:6-10,
- value: Str(
- "test",
+ value: Trivial(
+ Str(
+ "test",
+ ),
),
},
],
@@ -24,8 +27,10 @@
),
ArgsDesc {
unnamed: [
- Num(
- 2.0,
+ Trivial(
+ Num(
+ 2.0,
+ ),
),
],
names: [],
@@ -41,16 +46,20 @@
parts: [
IndexPart {
span: virtual:<test>:24-28,
- value: Str(
- "test",
+ value: Trivial(
+ Str(
+ "test",
+ ),
),
},
],
},
ArgsDesc {
unnamed: [
- Num(
- 2.0,
+ Trivial(
+ Num(
+ 2.0,
+ ),
),
],
names: [],
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__slice.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__slice.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__slice.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1167
expression: "format!(\"{v:#?}\")"
---
Arr(
@@ -11,8 +12,10 @@
),
slice: SliceDesc {
start: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:3-4,
),
end: None,
@@ -27,8 +30,10 @@
),
slice: SliceDesc {
start: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:10-11,
),
end: None,
@@ -44,8 +49,10 @@
slice: SliceDesc {
start: None,
end: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:19-20,
),
step: None,
@@ -61,8 +68,10 @@
start: None,
end: None,
step: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:28-29,
),
},
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__strings.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__strings.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__strings.snap
@@ -1,20 +1,29 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1106
expression: "format!(\"{v:#?}\")"
---
Arr(
[
- Str(
- "hello",
+ Trivial(
+ Str(
+ "hello",
+ ),
),
- Str(
- "world",
+ Trivial(
+ Str(
+ "world",
+ ),
),
- Str(
- "raw\"str",
+ Trivial(
+ Str(
+ "raw\"str",
+ ),
),
- Str(
- "raw'str",
+ Trivial(
+ Str(
+ "raw'str",
+ ),
),
],
)
crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__underscore_numbers.snapdiffbeforeafterboth--- a/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__underscore_numbers.snap
+++ b/crates/jrsonnet-ir-parser/src/snapshots/jrsonnet_ir_parser__tests__underscore_numbers.snap
@@ -1,17 +1,24 @@
---
source: crates/jrsonnet-ir-parser/src/lib.rs
+assertion_line: 1100
expression: "format!(\"{v:#?}\")"
---
Arr(
[
- Num(
- 1000.0,
+ Trivial(
+ Num(
+ 1000.0,
+ ),
),
- Num(
- 1000.0001,
+ Trivial(
+ Num(
+ 1000.0001,
+ ),
),
- Num(
- 100000000000.0,
+ Trivial(
+ Num(
+ 100000000000.0,
+ ),
),
],
)
crates/jrsonnet-ir/src/expr.rsdiffbeforeafterboth--- a/crates/jrsonnet-ir/src/expr.rs
+++ b/crates/jrsonnet-ir/src/expr.rs
@@ -31,6 +31,14 @@
Unhide,
}
+#[derive(Debug, Clone, PartialEq, Acyclic)]
+pub enum TrivialVal {
+ Null,
+ Bool(bool),
+ Num(NumValue),
+ Str(IStr),
+}
+
impl Visibility {
pub fn is_visible(&self) -> bool {
matches!(self, Self::Normal | Self::Unhide)
@@ -351,14 +359,12 @@
ObjComp(ObjComp),
}
-#[derive(Debug, PartialEq, Eq, Clone, Copy, Acyclic)]
-pub enum LiteralType {
+/// Object identity reference: `self`, `super`, or `$`.#[derive(Debug, PartialEq, Eq, Clone, Copy, Acyclic)]
+#[derive(Debug, PartialEq, Acyclic)]
+pub enum IdentityKind {
This,
Super,
Dollar,
- Null,
- True,
- False,
}
#[derive(Debug, PartialEq, Acyclic)]
@@ -404,12 +410,12 @@
/// Syntax base
#[derive(Debug, PartialEq, Acyclic)]
pub enum Expr {
- Literal(Span, LiteralType),
+ /// Object-identity reference: `self`, `super`, `$`.
+ Identity(Span, IdentityKind),
+
+ /// Trivial value literal
+ Trivial(TrivialVal),
- /// String value: "hello"
- Str(IStr),
- /// Number: 1, 2.0, 2e+20
- Num(NumValue),
/// Variable name: test
Var(Spanned<IStr>),
crates/jrsonnet-ir/src/visit.rsdiffbeforeafterboth--- a/crates/jrsonnet-ir/src/visit.rs
+++ b/crates/jrsonnet-ir/src/visit.rs
@@ -5,7 +5,7 @@
use crate::{
ArgsDesc, AssertExpr, AssertStmt, BinaryOp, BindSpec, CompSpec, Destruct, Expr, ExprParam,
ExprParams, FieldMember, FieldName, ForSpecData, IfElse, IfSpecData, ImportKind, IndexPart,
- ObjBody, ObjComp, ObjMembers, Slice, SliceDesc,
+ ObjBody, ObjComp, ObjMembers, Slice, SliceDesc, TrivialVal,
};
pub trait Visitor: Sized {
@@ -178,9 +178,8 @@
}
pub fn visit_expr<V: Visitor>(v: &mut V, e: &Expr) {
match e {
- Expr::Literal(_span, _literal_type) => {}
- Expr::Str(_istr) => {}
- Expr::Num(_num) => {}
+ Expr::Identity(_span, _identity_kind) => {}
+ Expr::Trivial(_) => {}
Expr::Var(_spanned) => {}
Expr::Arr(exprs) => {
for e in &**exprs {
@@ -220,7 +219,7 @@
Expr::Import(kind, expr) => {
v.visit_expr(expr);
- if let Expr::Str(expr) = &**expr {
+ if let Expr::Trivial(TrivialVal::Str(expr)) = &**expr {
v.visit_import(matches!(**kind, ImportKind::Normal), expr.clone());
}
}
crates/jrsonnet-peg-parser/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/lib.rs
+++ b/crates/jrsonnet-peg-parser/src/lib.rs
@@ -1,9 +1,9 @@
use jrsonnet_gcmodule::Acyclic;
use jrsonnet_ir::{
ArgsDesc, AssertExpr, AssertStmt, BinaryOp, BindSpec, CompSpec, Destruct, DestructRest, Expr,
- ExprParam, ExprParams, FieldMember, FieldName, ForSpecData, IStr, IfElse, IfSpecData,
- ImportKind, IndexPart, LiteralType, Member, NumValue, ObjBody, ObjComp, ObjMembers, Slice,
- SliceDesc, Source, Span, Spanned, Visibility, unescape,
+ ExprParam, ExprParams, FieldMember, FieldName, ForSpecData, IStr, IdentityKind, IfElse,
+ IfSpecData, ImportKind, IndexPart, Member, NumValue, ObjBody, ObjComp, ObjMembers, Slice,
+ SliceDesc, Source, Span, Spanned, TrivialVal, Visibility, unescape,
};
use peg::parser;
@@ -263,7 +263,7 @@
pub rule local_expr(s: &ParserSettings) -> Expr
= keyword("local") _ binds:bind(s) ** comma() (_ ",")? _ ";" _ expr:expr(s) { Expr::LocalExpr(binds, Box::new(expr)) }
pub rule string_expr(s: &ParserSettings) -> Expr
- = s:string() {Expr::Str(s.into())}
+ = s:string() {Expr::Trivial(TrivialVal::Str(s.into()))}
pub rule obj_expr(s: &ParserSettings) -> Expr
= "{" _ body:objinside(s) _ "}" {Expr::Obj(body)}
pub rule array_expr(s: &ParserSettings) -> Expr
@@ -273,7 +273,7 @@
Expr::ArrComp(Box::new(expr), specs)
}
pub rule number_expr(s: &ParserSettings) -> Expr
- = n:number() {? NumValue::new(n).map_or_else(|| Err("!!!numbers are finite"), |n| Ok(Expr::Num(n)))}
+ = n:number() {? NumValue::new(n).map_or_else(|| Err("!!!numbers are finite"), |n| Ok(Expr::Trivial(TrivialVal::Num(n))))}
rule spanned<T: Acyclic>(x: rule<T>, s: &ParserSettings) -> Spanned<T>
= a:position!() n:x() b:position!() { Spanned::new(n, Span(s.source.clone(), codeidx(a), codeidx(b))) }
@@ -281,7 +281,7 @@
pub rule var_expr(s: &ParserSettings) -> Expr
= n:spanned(<id()>, s) { Expr::Var(n) }
pub rule id_loc(s: &ParserSettings) -> Spanned<Expr>
- = a:position!() n:id() b:position!() { Spanned::new(Expr::Str(n), Span(s.source.clone(), codeidx(a), codeidx(b))) }
+ = a:position!() n:id() b:position!() { Spanned::new(Expr::Trivial(TrivialVal::Str(n)), Span(s.source.clone(), codeidx(a), codeidx(b))) }
pub rule if_then_else_expr(s: &ParserSettings) -> Expr
= cond:ifspec(s) _ keyword("then") _ cond_then:expr(s) cond_else:(_ keyword("else") _ e:expr(s) {e})? {Expr::IfElse(Box::new(IfElse{
cond,
@@ -290,14 +290,14 @@
}))}
pub rule literal(s: &ParserSettings) -> Expr
- = a:position!() v:(
- keyword("null") {LiteralType::Null}
- / keyword("true") {LiteralType::True}
- / keyword("false") {LiteralType::False}
- / keyword("self") {LiteralType::This}
- / keyword("$") {LiteralType::Dollar}
- / keyword("super") {LiteralType::Super}
- ) b:position!() {Expr::Literal(Span(s.source.clone(), codeidx(a), codeidx(b)), v)}
+ = keyword("null") { Expr::Trivial(TrivialVal::Null) }
+ / keyword("true") { Expr::Trivial(TrivialVal::Bool(true)) }
+ / keyword("false") { Expr::Trivial(TrivialVal::Bool(false)) }
+ / a:position!() v:(
+ keyword("self") {IdentityKind::This}
+ / keyword("$") {IdentityKind::Dollar}
+ / keyword("super") {IdentityKind::Super}
+ ) b:position!() { Expr::Identity(Span(s.source.clone(), codeidx(a), codeidx(b)), v) }
rule import_kind() -> ImportKind
= keyword("importstr") { ImportKind::Str }
@@ -429,7 +429,7 @@
pub fn string_to_expr(str: IStr, settings: &ParserSettings) -> Spanned<Expr> {
let len = str.len();
Spanned::new(
- Expr::Str(str),
+ Expr::Trivial(TrivialVal::Str(str)),
Span(settings.source.clone(), 0, codeidx(len)),
)
}
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@array_comp.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@array_comp.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@array_comp.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/array_comp.jsonnet
---
@@ -14,8 +15,10 @@
parts: [
IndexPart {
span: virtual:<test>:7-15,
- value: Str(
- "deepJoin",
+ value: Trivial(
+ Str(
+ "deepJoin",
+ ),
),
},
],
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@basic_math.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@basic_math.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@basic_math.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/basic_math.jsonnet
---
@@ -7,18 +8,24 @@
[
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
@@ -26,18 +33,24 @@
),
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
@@ -47,24 +60,32 @@
BinaryOp {
lhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
@@ -72,24 +93,32 @@
),
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Mul,
- rhs: Num(
- 2.0,
+ rhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
},
),
@@ -99,18 +128,24 @@
),
BinaryOp(
BinaryOp {
- lhs: Num(
- 2.0,
+ lhs: Trivial(
+ Num(
+ 2.0,
+ ),
),
op: Add,
rhs: BinaryOp(
BinaryOp {
- lhs: Num(
- 3.0,
+ lhs: Trivial(
+ Num(
+ 3.0,
+ ),
),
op: Mul,
- rhs: Num(
- 4.0,
+ rhs: Trivial(
+ Num(
+ 4.0,
+ ),
),
},
),
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@comment_eof.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@comment_eof.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@comment_eof.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/comment_eof.jsonnet
---
@@ -16,8 +17,10 @@
plus: false,
params: None,
visibility: Normal,
- value: Num(
- 1.0,
+ value: Trivial(
+ Num(
+ 1.0,
+ ),
),
},
],
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@default_nondefault.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@default_nondefault.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@default_nondefault.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/default_nondefault.jsonnet
---
@@ -14,8 +15,10 @@
"foo" from virtual:<test>:8-11,
),
default: Some(
- Str(
- "foo",
+ Trivial(
+ Str(
+ "foo",
+ ),
),
),
},
@@ -44,14 +47,12 @@
),
binds_len: 2,
},
- value: Literal(
- virtual:<test>:28-32,
+ value: Trivial(
Null,
),
},
],
- Literal(
- virtual:<test>:34-38,
+ Trivial(
Null,
),
)
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@imports.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@imports.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@imports.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/imports.jsonnet
---
@@ -7,20 +8,26 @@
[
Import(
Normal from virtual:<test>:2-8,
- Str(
- "hello",
+ Trivial(
+ Str(
+ "hello",
+ ),
),
),
Import(
Str from virtual:<test>:18-27,
- Str(
- "garnish.txt",
+ Trivial(
+ Str(
+ "garnish.txt",
+ ),
),
),
Import(
Bin from virtual:<test>:43-52,
- Str(
- "garnish.bin",
+ Trivial(
+ Str(
+ "garnish.bin",
+ ),
),
),
],
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@multiline.jsonnet.snapdiffbeforeafterboth1---1---2source: crates/jrsonnet-peg-parser/src/lib.rs2source: crates/jrsonnet-peg-parser/src/lib.rs3assertion_line: 4593expression: v4expression: v4input_file: crates/jrsonnet-peg-parser/src/tests/multiline.jsonnet5input_file: crates/jrsonnet-peg-parser/src/tests/multiline.jsonnet5---6---6Arr(7Arr(7 [8 [8 Str(9 Trivial(10 Str(9 "Hello world!\na\n",11 "Hello world!\na\n",12 ),10 ),13 ),11 Str(14 Trivial(15 Str(12 "Hello world!\na\n",16 "Hello world!\na\n",17 ),13 ),18 ),14 Str(19 Trivial(20 Str(15 "Hello world!\n\ta\n",21 "Hello world!\n\ta\n",22 ),16 ),23 ),17 Str(24 Trivial(25 Str(18 "Hello world!\n a\n",26 "Hello world!\n a\n",27 ),19 ),28 ),20 ],29 ],21)30)crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@reserved.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@reserved.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@reserved.jsonnet.snap
@@ -1,12 +1,12 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/reserved.jsonnet
---
Arr(
[
- Literal(
- virtual:<test>:2-6,
+ Trivial(
Null,
),
Var(
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@slice.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@slice.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@slice.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/slice.jsonnet
---
@@ -12,8 +13,10 @@
),
slice: SliceDesc {
start: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:4-5,
),
end: None,
@@ -28,8 +31,10 @@
),
slice: SliceDesc {
start: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:11-12,
),
end: None,
@@ -45,8 +50,10 @@
slice: SliceDesc {
start: None,
end: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:20-21,
),
step: None,
@@ -62,8 +69,10 @@
start: None,
end: None,
step: Some(
- Num(
- 1.0,
+ Trivial(
+ Num(
+ 1.0,
+ ),
) from virtual:<test>:29-30,
),
},
@@ -83,8 +92,10 @@
"len" from virtual:<test>:38-41,
),
op: Sub,
- rhs: Num(
- 1.0,
+ rhs: Trivial(
+ Num(
+ 1.0,
+ ),
),
},
) from virtual:<test>:38-45,
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@string_escaping.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@string_escaping.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@string_escaping.jsonnet.snap
@@ -1,24 +1,35 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/string_escaping.jsonnet
---
Arr(
[
- Str(
- "Hello, \"world\"!",
+ Trivial(
+ Str(
+ "Hello, \"world\"!",
+ ),
),
- Str(
- "Hello 'world'!",
+ Trivial(
+ Str(
+ "Hello 'world'!",
+ ),
),
- Str(
- "\\\\",
+ Trivial(
+ Str(
+ "\\\\",
+ ),
),
- Str(
- "Hello\nWorld",
+ Trivial(
+ Str(
+ "Hello\nWorld",
+ ),
),
- Str(
- "Hello\\n\"World\"",
+ Trivial(
+ Str(
+ "Hello\\n\"World\"",
+ ),
),
],
)
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@subexp.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@subexp.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@subexp.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/subexp.jsonnet
---
@@ -22,8 +23,10 @@
into: Full(
"x" from virtual:<test>:11-12,
),
- value: Num(
- 1.0,
+ value: Trivial(
+ Num(
+ 1.0,
+ ),
),
},
],
crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@suffix.jsonnet.snapdiffbeforeafterboth--- a/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@suffix.jsonnet.snap
+++ b/crates/jrsonnet-peg-parser/src/snapshots/jrsonnet_peg_parser__tests__snapshots@suffix.jsonnet.snap
@@ -1,5 +1,6 @@
---
source: crates/jrsonnet-peg-parser/src/lib.rs
+assertion_line: 459
expression: v
input_file: crates/jrsonnet-peg-parser/src/tests/suffix.jsonnet
---
@@ -12,8 +13,10 @@
parts: [
IndexPart {
span: virtual:<test>:6-10,
- value: Str(
- "test",
+ value: Trivial(
+ Str(
+ "test",
+ ),
),
},
],
@@ -24,8 +27,10 @@
),
ArgsDesc {
unnamed: [
- Num(
- 2.0,
+ Trivial(
+ Num(
+ 2.0,
+ ),
),
],
names: [],
@@ -41,16 +46,20 @@
parts: [
IndexPart {
span: virtual:<test>:24-28,
- value: Str(
- "test",
+ value: Trivial(
+ Str(
+ "test",
+ ),
),
},
],
},
ArgsDesc {
unnamed: [
- Num(
- 2.0,
+ Trivial(
+ Num(
+ 2.0,
+ ),
),
],
names: [],