@@ -351,6 +351,7 @@ Syntax(Chunk)@0..242
351351 Token(TkEndOfLine)@233..234 "\n"
352352 Token(TkWhitespace)@234..242 " "
353353 "# ;
354+
354355 assert_ast_eq ! ( code, result) ;
355356 }
356357
@@ -428,7 +429,8 @@ Syntax(Chunk)@0..232
428429 Syntax(TypeLiteral)@94..99
429430 Token(TkString)@94..99 "\"aaa\""
430431 Token(TkWhitespace)@99..100 " "
431- Token(TkDocDetail)@100..106 "@ 1231"
432+ Syntax(DocDescription)@100..106
433+ Token(TkDocDetail)@100..106 "@ 1231"
432434 Token(TkEndOfLine)@106..107 "\n"
433435 Token(TkWhitespace)@107..115 " "
434436 Token(TkDocContinueOr)@115..119 "---|"
@@ -437,7 +439,8 @@ Syntax(Chunk)@0..232
437439 Syntax(TypeLiteral)@120..125
438440 Token(TkString)@120..125 "\"bbb\""
439441 Token(TkWhitespace)@125..126 " "
440- Token(TkDocDetail)@126..131 "@ 456"
442+ Syntax(DocDescription)@126..131
443+ Token(TkDocDetail)@126..131 "@ 456"
441444 Token(TkEndOfLine)@131..132 "\n"
442445 Token(TkWhitespace)@132..140 " "
443446 Token(TkDocContinueOr)@140..144 "---|"
@@ -446,7 +449,8 @@ Syntax(Chunk)@0..232
446449 Syntax(TypeLiteral)@145..150
447450 Token(TkString)@145..150 "\"ccc\""
448451 Token(TkWhitespace)@150..151 " "
449- Token(TkDocDetail)@151..156 "@ 789"
452+ Syntax(DocDescription)@151..156
453+ Token(TkDocDetail)@151..156 "@ 789"
450454 Token(TkEndOfLine)@156..157 "\n"
451455 Token(TkEndOfLine)@157..158 "\n"
452456 Token(TkWhitespace)@158..166 " "
@@ -688,7 +692,8 @@ Syntax(Chunk)@0..256
688692 Syntax(TypeLiteral)@187..192
689693 Token(TkString)@187..192 "\"aaa\""
690694 Token(TkWhitespace)@192..193 " "
691- Token(TkDocDetail)@193..199 "@ 1231"
695+ Syntax(DocDescription)@193..199
696+ Token(TkDocDetail)@193..199 "@ 1231"
692697 Token(TkEndOfLine)@199..200 "\n"
693698 Token(TkWhitespace)@200..208 " "
694699 Syntax(FuncStat)@208..247
@@ -2121,7 +2126,8 @@ Syntax(Chunk)@0..86
21212126 Syntax(TypeName)@34..40
21222127 Token(TkName)@34..40 "number"
21232128 Token(TkWhitespace)@40..41 " "
2124- Token(TkDocDetail)@41..49 "# nihao "
2129+ Syntax(DocDescription)@41..49
2130+ Token(TkDocDetail)@41..49 "# nihao "
21252131 Token(TkEndOfLine)@49..50 "\n"
21262132 Token(TkWhitespace)@50..58 " "
21272133 Token(TkDocContinueOr)@58..62 "---|"
@@ -2130,7 +2136,8 @@ Syntax(Chunk)@0..86
21302136 Syntax(TypeName)@63..69
21312137 Token(TkName)@63..69 "string"
21322138 Token(TkWhitespace)@69..70 " "
2133- Token(TkDocDetail)@70..77 "# wohao"
2139+ Syntax(DocDescription)@70..77
2140+ Token(TkDocDetail)@70..77 "# wohao"
21342141 Token(TkEndOfLine)@77..78 "\n"
21352142 Token(TkWhitespace)@78..86 " "
21362143 "## ;
@@ -2163,7 +2170,8 @@ Syntax(Chunk)@0..85
21632170 Syntax(TypeName)@33..39
21642171 Token(TkName)@33..39 "number"
21652172 Token(TkWhitespace)@39..40 " "
2166- Token(TkDocDetail)@40..48 "# nihao "
2173+ Syntax(DocDescription)@40..48
2174+ Token(TkDocDetail)@40..48 "# nihao "
21672175 Token(TkEndOfLine)@48..49 "\n"
21682176 Token(TkWhitespace)@49..57 " "
21692177 Token(TkDocContinueOr)@57..61 "---|"
@@ -2172,11 +2180,66 @@ Syntax(Chunk)@0..85
21722180 Syntax(TypeName)@62..68
21732181 Token(TkName)@62..68 "string"
21742182 Token(TkWhitespace)@68..69 " "
2175- Token(TkDocDetail)@69..76 "# wohao"
2183+ Syntax(DocDescription)@69..76
2184+ Token(TkDocDetail)@69..76 "# wohao"
21762185 Token(TkEndOfLine)@76..77 "\n"
21772186 Token(TkWhitespace)@77..85 " "
21782187 "## ;
21792188
21802189 assert_ast_eq ! ( code, result) ;
21812190 }
2191+
2192+ #[ test]
2193+ fn test_multiline_description_union ( ) {
2194+ let code = r#"
2195+ ---@return
2196+ ---| number # nihao
2197+ --- woyehao
2198+ --- dajiahao
2199+ ---| string # wohao
2200+ "# ;
2201+ let result = r##"
2202+ Syntax(Chunk)@0..127
2203+ Syntax(Block)@0..127
2204+ Token(TkEndOfLine)@0..1 "\n"
2205+ Token(TkWhitespace)@1..9 " "
2206+ Syntax(Comment)@9..118
2207+ Token(TkDocStart)@9..13 "---@"
2208+ Syntax(DocTagReturn)@13..118
2209+ Token(TkTagReturn)@13..19 "return"
2210+ Token(TkEndOfLine)@19..20 "\n"
2211+ Token(TkWhitespace)@20..28 " "
2212+ Syntax(TypeMultiLineUnion)@28..118
2213+ Token(TkDocContinueOr)@28..32 "---|"
2214+ Token(TkWhitespace)@32..33 " "
2215+ Syntax(DocOneLineField)@33..90
2216+ Syntax(TypeName)@33..39
2217+ Token(TkName)@33..39 "number"
2218+ Token(TkWhitespace)@39..40 " "
2219+ Syntax(DocDescription)@40..90
2220+ Token(TkDocDetail)@40..48 "# nihao "
2221+ Token(TkEndOfLine)@48..49 "\n"
2222+ Token(TkWhitespace)@49..57 " "
2223+ Token(TkNormalStart)@57..62 "--- "
2224+ Token(TkDocDetail)@62..69 "woyehao"
2225+ Token(TkEndOfLine)@69..70 "\n"
2226+ Token(TkWhitespace)@70..78 " "
2227+ Token(TkNormalStart)@78..82 "--- "
2228+ Token(TkDocDetail)@82..90 "dajiahao"
2229+ Token(TkEndOfLine)@90..91 "\n"
2230+ Token(TkWhitespace)@91..99 " "
2231+ Token(TkDocContinueOr)@99..103 "---|"
2232+ Token(TkWhitespace)@103..104 " "
2233+ Syntax(DocOneLineField)@104..118
2234+ Syntax(TypeName)@104..110
2235+ Token(TkName)@104..110 "string"
2236+ Token(TkWhitespace)@110..111 " "
2237+ Syntax(DocDescription)@111..118
2238+ Token(TkDocDetail)@111..118 "# wohao"
2239+ Token(TkEndOfLine)@118..119 "\n"
2240+ Token(TkWhitespace)@119..127 " "
2241+ "## ;
2242+
2243+ assert_ast_eq ! ( code, result) ;
2244+ }
21822245}
0 commit comments