@@ -2088,4 +2088,86 @@ Syntax(Chunk)@0..110
20882088
20892089 assert_ast_eq ! ( code, result) ;
20902090 }
2091+
2092+ #[ test]
2093+ fn test_param_union ( ) {
2094+ let code = r#"
2095+ ---@param a
2096+ ---| number # nihao
2097+ ---| string # wohao
2098+ "# ;
2099+ let result = r##"
2100+ Syntax(Chunk)@0..86
2101+ Syntax(Block)@0..86
2102+ Token(TkEndOfLine)@0..1 "\n"
2103+ Token(TkWhitespace)@1..9 " "
2104+ Syntax(Comment)@9..77
2105+ Token(TkDocStart)@9..13 "---@"
2106+ Syntax(DocTagParam)@13..77
2107+ Token(TkTagParam)@13..18 "param"
2108+ Token(TkWhitespace)@18..19 " "
2109+ Token(TkName)@19..20 "a"
2110+ Token(TkEndOfLine)@20..21 "\n"
2111+ Token(TkWhitespace)@21..29 " "
2112+ Token(TkDocContinueOr)@29..33 "---|"
2113+ Token(TkWhitespace)@33..34 " "
2114+ Syntax(TypeBinary)@34..77
2115+ Syntax(TypeName)@34..40
2116+ Token(TkName)@34..40 "number"
2117+ Token(TkWhitespace)@40..41 " "
2118+ Token(TkDocDetail)@41..49 "# nihao "
2119+ Token(TkEndOfLine)@49..50 "\n"
2120+ Token(TkWhitespace)@50..58 " "
2121+ Token(TkDocContinueOr)@58..62 "---|"
2122+ Token(TkWhitespace)@62..63 " "
2123+ Syntax(TypeName)@63..69
2124+ Token(TkName)@63..69 "string"
2125+ Token(TkWhitespace)@69..70 " "
2126+ Token(TkDocDetail)@70..77 "# wohao"
2127+ Token(TkEndOfLine)@77..78 "\n"
2128+ Token(TkWhitespace)@78..86 " "
2129+ "## ;
2130+
2131+ assert_ast_eq ! ( code, result) ;
2132+ }
2133+
2134+ #[ test]
2135+ fn test_return_union ( ) {
2136+ let code = r#"
2137+ ---@return
2138+ ---| number # nihao
2139+ ---| string # wohao
2140+ "# ;
2141+ let result = r##"
2142+ Syntax(Chunk)@0..85
2143+ Syntax(Block)@0..85
2144+ Token(TkEndOfLine)@0..1 "\n"
2145+ Token(TkWhitespace)@1..9 " "
2146+ Syntax(Comment)@9..76
2147+ Token(TkDocStart)@9..13 "---@"
2148+ Syntax(DocTagReturn)@13..76
2149+ Token(TkTagReturn)@13..19 "return"
2150+ Token(TkEndOfLine)@19..20 "\n"
2151+ Token(TkWhitespace)@20..28 " "
2152+ Token(TkDocContinueOr)@28..32 "---|"
2153+ Token(TkWhitespace)@32..33 " "
2154+ Syntax(TypeBinary)@33..76
2155+ Syntax(TypeName)@33..39
2156+ Token(TkName)@33..39 "number"
2157+ Token(TkWhitespace)@39..40 " "
2158+ Token(TkDocDetail)@40..48 "# nihao "
2159+ Token(TkEndOfLine)@48..49 "\n"
2160+ Token(TkWhitespace)@49..57 " "
2161+ Token(TkDocContinueOr)@57..61 "---|"
2162+ Token(TkWhitespace)@61..62 " "
2163+ Syntax(TypeName)@62..68
2164+ Token(TkName)@62..68 "string"
2165+ Token(TkWhitespace)@68..69 " "
2166+ Token(TkDocDetail)@69..76 "# wohao"
2167+ Token(TkEndOfLine)@76..77 "\n"
2168+ Token(TkWhitespace)@77..85 " "
2169+ "## ;
2170+
2171+ assert_ast_eq ! ( code, result) ;
2172+ }
20912173}
0 commit comments