git.delta.rocks / jrsonnet / refs/commits / 144cb7462cc2

difftreelog

fix(rowan-parser) handle unhidden fields

xszxmuywYaroslav Bolyukin2026-02-12parent: #8aaa082.patch.diff
in: master

4 files changed

modifiedcrates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@basic_object.jsonnet.snapdiffbeforeafterboth
--- a/crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@basic_object.jsonnet.snap
+++ b/crates/jrsonnet-formatter/src/snapshots/jrsonnet_formatter__tests__snapshots@basic_object.jsonnet.snap
@@ -3,4 +3,4 @@
 expression: reformat(&input)
 input_file: crates/jrsonnet-formatter/src/tests/basic_object.jsonnet
 ---
-{ foo: 'bar', baz: 'qux', nested: { a: 1, b: 2 } }
+{ foo: 'bar', baz: 'qux', nested: { a: 1, b: 2 }, unhidden::: 1 }
modifiedcrates/jrsonnet-formatter/src/tests/basic_object.jsonnetdiffbeforeafterboth
--- a/crates/jrsonnet-formatter/src/tests/basic_object.jsonnet
+++ b/crates/jrsonnet-formatter/src/tests/basic_object.jsonnet
@@ -1 +1 @@
-{ foo: 'bar', baz: 'qux', nested: { a: 1, b: 2 } }
+{ foo: 'bar', baz: 'qux', nested: { a: 1, b: 2 }, unhidden::: 1 }
modifiedcrates/jrsonnet-rowan-parser/src/lib.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/lib.rs
+++ b/crates/jrsonnet-rowan-parser/src/lib.rs
@@ -21,8 +21,8 @@
 pub use ast::{AstChildren, AstNode, AstToken};
 pub use generated::{nodes, syntax_kinds::SyntaxKind};
 pub use language::*;
+pub use string_block::{collect_lexed_str_block, CollectStrBlock};
 pub use token_set::SyntaxKindSet;
-pub use string_block::{collect_lexed_str_block, CollectStrBlock};
 
 use self::{
 	ast::support,
modifiedcrates/jrsonnet-rowan-parser/src/parser.rsdiffbeforeafterboth
407 m.complete(p, FIELD_NAME_FIXED);407 m.complete(p, FIELD_NAME_FIXED);
408 } else {408 } else {
409 m.forget(p);409 m.forget(p);
410 // ::: it split because in TS it is being handled as : ::
410 p.error_with_recovery_set(TS![; : :: ::: '(']);411 p.error_with_recovery_set(TS![; : :: '('].with(T![:::]));
411 }412 }
412}413}
413fn visibility(p: &mut Parser) {414fn visibility(p: &mut Parser) {
415 // ::: it split because in TS it is being handled as : ::
414 if p.at_ts(TS![: :: :::]) {416 if p.at_ts(TS![: ::].with(T![:::])) {
415 p.bump();417 p.bump();
416 } else {418 } else {
417 p.error_with_recovery_set(TS![=]);419 p.error_with_recovery_set(TS![=]);
471 visibility(p);473 visibility(p);
472 expr(p);474 expr(p);
473 true475 true
476 // ::: it split because in TS it is being handled as : ::
474 } else if p.at_ts(TS![: :: :::]) && p.nth_at(1, T![function]) {477 } else if p.at_ts(TS![: ::].with(T![:::])) && p.nth_at(1, T![function]) {
475 visibility(p);478 visibility(p);
476 p.bump_assert(T![function]);479 p.bump_assert(T![function]);
477 params_desc(p);480 params_desc(p);