git.delta.rocks / jrsonnet / refs/commits / 2223f9ab687d

difftreelog

fix incorrect doccomment parsing

pyqrqpwvYaroslav Bolyukin2026-05-07parent: #3c251da.patch.diff
in: master

8 files changed

modifiedcrates/jrsonnet-lexer/src/generated/syntax_kinds.rsdiffbeforeafterboth
128 SINGLE_LINE_SLASH_COMMENT,128 SINGLE_LINE_SLASH_COMMENT,
129 #[regex("#[^\\r\\n]*?(\\r\\n|\\n)?")]129 #[regex("#[^\\r\\n]*?(\\r\\n|\\n)?")]
130 SINGLE_LINE_HASH_COMMENT,130 SINGLE_LINE_HASH_COMMENT,
131 #[regex("/\\*([^*]|\\*[^/])*\\*/")]131 #[regex("/\\*([^*]|\\*+[^*/])*\\*+/")]
132 MULTI_LINE_COMMENT,132 MULTI_LINE_COMMENT,
133 #[regex("/\\*/")]133 #[regex("/\\*/")]
134 ERROR_COMMENT_TOO_SHORT,134 ERROR_COMMENT_TOO_SHORT,
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_doc.snapdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_doc.snap
@@ -0,0 +1,39 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "{ a:: 1, /** doc **/ b:: 2 }\n"
+---
+SOURCE_FILE@0..29
+  EXPR@0..28
+    EXPR_OBJECT@0..28
+      OBJ_BODY_MEMBER_LIST@0..28
+        L_BRACE@0..1 "{"
+        WHITESPACE@1..2 " "
+        MEMBER_FIELD_NORMAL@2..7
+          FIELD_NAME_FIXED@2..3
+            NAME@2..3
+              IDENT@2..3 "a"
+          VISIBILITY@3..5
+            COLON@3..4 ":"
+            COLON@4..5 ":"
+          WHITESPACE@5..6 " "
+          EXPR@6..7
+            EXPR_NUMBER@6..7
+              FLOAT@6..7 "1"
+        COMMA@7..8 ","
+        WHITESPACE@8..9 " "
+        MULTI_LINE_COMMENT@9..20 "/** doc **/"
+        WHITESPACE@20..21 " "
+        MEMBER_FIELD_NORMAL@21..26
+          FIELD_NAME_FIXED@21..22
+            NAME@21..22
+              IDENT@21..22 "b"
+          VISIBILITY@22..24
+            COLON@22..23 ":"
+            COLON@23..24 ":"
+          WHITESPACE@24..25 " "
+          EXPR@25..26
+            EXPR_NUMBER@25..26
+              FLOAT@25..26 "2"
+        WHITESPACE@26..27 " "
+        R_BRACE@27..28 "}"
+  WHITESPACE@28..29 "\n"
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_empty.snapdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_empty.snap
@@ -0,0 +1,11 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "/**/ 1\n"
+---
+SOURCE_FILE@0..7
+  MULTI_LINE_COMMENT@0..4 "/**/"
+  WHITESPACE@4..5 " "
+  EXPR@5..6
+    EXPR_NUMBER@5..6
+      FLOAT@5..6 "1"
+  WHITESPACE@6..7 "\n"
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_inner_star.snapdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_inner_star.snap
@@ -0,0 +1,11 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "/* * */ 3\n"
+---
+SOURCE_FILE@0..10
+  MULTI_LINE_COMMENT@0..7 "/* * */"
+  WHITESPACE@7..8 " "
+  EXPR@8..9
+    EXPR_NUMBER@8..9
+      FLOAT@8..9 "3"
+  WHITESPACE@9..10 "\n"
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_too_short.snapdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_too_short.snap
@@ -0,0 +1,14 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "/*/\n"
+---
+SOURCE_FILE@0..4
+  ERROR_COMMENT_TOO_SHORT@0..3 "/*/"
+  WHITESPACE@3..4 "\n"
+  EXPR@4..4
+    ERROR_MISSING_TOKEN@4..4
+===
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 4..4 }
+===
+   ·     ╭── missing expression
+1  │ /*/
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_triple_star.snapdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_triple_star.snap
@@ -0,0 +1,11 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "/***/ 2\n"
+---
+SOURCE_FILE@0..8
+  MULTI_LINE_COMMENT@0..5 "/***/"
+  WHITESPACE@5..6 " "
+  EXPR@6..7
+    EXPR_NUMBER@6..7
+      FLOAT@6..7 "2"
+  WHITESPACE@7..8 "\n"
addedcrates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_unterminated.snapdiffbeforeafterboth
--- /dev/null
+++ b/crates/jrsonnet-rowan-parser/src/snapshots/jrsonnet_rowan_parser__tests__multi_line_comment_unterminated.snap
@@ -0,0 +1,13 @@
+---
+source: crates/jrsonnet-rowan-parser/src/tests.rs
+expression: "/** unterminated\n"
+---
+SOURCE_FILE@0..17
+  ERROR_COMMENT_UNTERMINATED@0..17 "/** unterminated\n"
+  EXPR@17..17
+    ERROR_MISSING_TOKEN@17..17
+===
+LocatedSyntaxError { error: Missing { expected: Named("expression") }, range: 17..17 }
+===
+   ·                  ╭── missing expression
+1  │ /** unterminated
modifiedcrates/jrsonnet-rowan-parser/src/tests.rsdiffbeforeafterboth
--- a/crates/jrsonnet-rowan-parser/src/tests.rs
+++ b/crates/jrsonnet-rowan-parser/src/tests.rs
@@ -241,6 +241,25 @@
 	for_obj_spec_value_destruct => r#"
 		{ [k]: a + b for [k]: [a, b] in obj }
 	"#
+
+	multi_line_comment_doc => r#"
+		{ a:: 1, /** doc **/ b:: 2 }
+	"#
+	multi_line_comment_empty => r#"
+		/**/ 1
+	"#
+	multi_line_comment_triple_star => r#"
+		/***/ 2
+	"#
+	multi_line_comment_inner_star => r#"
+		/* * */ 3
+	"#
+	multi_line_comment_too_short => r#"
+		/*/
+	"#
+	multi_line_comment_unterminated => r#"
+		/** unterminated
+	"#
 );
 
 #[test]