51
51
< span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > fmt< span class ="colon "> :</ span > expr< span class ="comma "> ,</ span > < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > args< span class ="colon "> :</ span > tt< span class ="parenthesis "> )</ span > < span class ="punctuation "> *</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="brace "> {</ span > < span class ="brace "> {</ span > < span class ="comment "> /* compiler built-in */</ span > < span class ="brace "> }</ span > < span class ="brace "> }</ span > < span class ="semicolon "> ;</ span >
52
52
< span class ="brace "> }</ span >
53
53
54
+ < span class ="keyword "> mod</ span > < span class ="module declaration "> panic</ span > < span class ="brace "> {</ span >
55
+ < span class ="keyword "> pub</ span > < span class ="keyword "> macro</ span > < span class ="macro declaration "> panic_2015</ span > < span class ="brace "> {</ span >
56
+ < span class ="parenthesis "> (</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="parenthesis "> (</ span >
57
+ < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > panicking< span class ="colon "> :</ span > < span class ="colon "> :</ span > panic< span class ="parenthesis "> (</ span > < span class ="string_literal "> "explicit panic"</ span > < span class ="parenthesis "> )</ span >
58
+ < span class ="parenthesis "> )</ span > < span class ="comma "> ,</ span >
59
+ < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > msg< span class ="colon "> :</ span > literal < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="comma "> ,</ span > < span class ="parenthesis "> )</ span > < span class ="operator control "> ?</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="parenthesis "> (</ span >
60
+ < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > panicking< span class ="colon "> :</ span > < span class ="colon "> :</ span > panic< span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > msg< span class ="parenthesis "> )</ span >
61
+ < span class ="parenthesis "> )</ span > < span class ="comma "> ,</ span >
62
+ < span class ="comment "> // Use `panic_str` instead of `panic_display::<&str>` for non_fmt_panic lint.</ span >
63
+ < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > msg< span class ="colon "> :</ span > expr < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="comma "> ,</ span > < span class ="parenthesis "> )</ span > < span class ="operator control "> ?</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="parenthesis "> (</ span >
64
+ < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > panicking< span class ="colon "> :</ span > < span class ="colon "> :</ span > panic_str< span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > msg< span class ="parenthesis "> )</ span >
65
+ < span class ="parenthesis "> )</ span > < span class ="comma "> ,</ span >
66
+ < span class ="comment "> // Special-case the single-argument case for const_panic.</ span >
67
+ < span class ="parenthesis "> (</ span > < span class ="string_literal "> "{}"</ span > < span class ="comma "> ,</ span > < span class ="punctuation "> $</ span > arg< span class ="colon "> :</ span > expr < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="comma "> ,</ span > < span class ="parenthesis "> )</ span > < span class ="operator control "> ?</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="parenthesis "> (</ span >
68
+ < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > panicking< span class ="colon "> :</ span > < span class ="colon "> :</ span > panic_display< span class ="parenthesis "> (</ span > < span class ="operator "> &</ span > < span class ="punctuation "> $</ span > arg< span class ="parenthesis "> )</ span >
69
+ < span class ="parenthesis "> )</ span > < span class ="comma "> ,</ span >
70
+ < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > fmt< span class ="colon "> :</ span > expr< span class ="comma "> ,</ span > < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > arg< span class ="colon "> :</ span > tt< span class ="parenthesis "> )</ span > < span class ="punctuation "> +</ span > < span class ="parenthesis "> )</ span > < span class ="operator "> =</ span > < span class ="angle "> ></ span > < span class ="parenthesis "> (</ span >
71
+ < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > panicking< span class ="colon "> :</ span > < span class ="colon "> :</ span > panic_fmt< span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > crate< span class ="colon "> :</ span > < span class ="colon "> :</ span > const_format_args< span class ="punctuation "> !</ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > fmt< span class ="comma "> ,</ span > < span class ="punctuation "> $</ span > < span class ="parenthesis "> (</ span > < span class ="punctuation "> $</ span > arg< span class ="parenthesis "> )</ span > < span class ="punctuation "> +</ span > < span class ="parenthesis "> )</ span > < span class ="parenthesis "> )</ span >
72
+ < span class ="parenthesis "> )</ span > < span class ="comma "> ,</ span >
73
+ < span class ="brace "> }</ span >
74
+ < span class ="brace "> }</ span >
75
+
76
+ < span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> rustc_builtin_macro</ span > < span class ="parenthesis attribute "> (</ span > < span class ="none attribute "> std_panic</ span > < span class ="parenthesis attribute "> )</ span > < span class ="attribute attribute "> ]</ span >
77
+ < span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> macro_export</ span > < span class ="attribute attribute "> ]</ span >
78
+ < span class ="keyword "> macro_rules</ span > < span class ="punctuation "> !</ span > < span class ="macro declaration "> panic</ span > < span class ="brace "> {</ span > < span class ="brace "> }</ span >
79
+ < span class ="attribute attribute "> #</ span > < span class ="attribute attribute "> [</ span > < span class ="builtin_attr attribute "> rustc_builtin_macro</ span > < span class ="attribute attribute "> ]</ span >
80
+ < span class ="keyword "> macro_rules</ span > < span class ="punctuation "> !</ span > < span class ="macro declaration "> assert</ span > < span class ="brace "> {</ span > < span class ="brace "> }</ span >
81
+
54
82
< span class ="keyword "> fn</ span > < span class ="function declaration "> main</ span > < span class ="parenthesis "> (</ span > < span class ="parenthesis "> )</ span > < span class ="brace "> {</ span >
55
83
< span class ="comment "> // from https://doc.rust-lang.org/std/fmt/index.html</ span >
56
84
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "Hello"</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span > < span class ="comment "> // => "Hello"</ span >
100
128
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="variable "> ничоси</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > ничоси < span class ="operator "> =</ span > < span class ="numeric_literal "> 92</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
101
129
102
130
< span class ="macro "> println!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> :</ span > < span class ="variable "> x</ span > < span class ="format_specifier "> ?</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > thingy< span class ="comma "> ,</ span > n2< span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
131
+ < span class ="macro "> panic!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 0</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
132
+ < span class ="macro "> panic!</ span > < span class ="parenthesis "> (</ span > < span class ="string_literal "> "more </ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 1</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
133
+ < span class ="macro "> assert!</ span > < span class ="parenthesis "> (</ span > < span class ="bool_literal "> true</ span > < span class ="comma "> ,</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> "</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 1</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
134
+ < span class ="macro "> assert!</ span > < span class ="parenthesis "> (</ span > < span class ="bool_literal "> true</ span > < span class ="comma "> ,</ span > < span class ="string_literal "> "</ span > < span class ="format_specifier "> {</ span > < span class ="format_specifier "> }</ span > < span class ="string_literal "> asdasd"</ span > < span class ="comma "> ,</ span > < span class ="numeric_literal "> 1</ span > < span class ="parenthesis "> )</ span > < span class ="semicolon "> ;</ span >
103
135
< span class ="brace "> }</ span > </ code > </ pre >
0 commit comments