@@ -39,10 +39,26 @@ pub trait NameDirective {
39
39
fn parse_name_negative ( & self , comment : & TestComment < ' _ > ) -> bool ;
40
40
}
41
41
42
+ pub trait TestDirective {
43
+ fn compiletest_name ( & self ) -> & ' static str ;
44
+ fn ui_test_name ( & self ) -> Option < & ' static str > ;
45
+ }
46
+
42
47
macro_rules! name_value_directive {
43
48
( $item: ident, $compiletest_name: literal) => {
44
49
#[ derive( Debug , Clone , Copy ) ]
45
50
pub struct $item;
51
+
52
+ impl TestDirective for $item {
53
+ fn compiletest_name( & self ) -> & ' static str {
54
+ $compiletest_name
55
+ }
56
+
57
+ fn ui_test_name( & self ) -> Option <& ' static str > {
58
+ None
59
+ }
60
+ }
61
+
46
62
impl NameValueDirective for $item {
47
63
fn parse_name_value<' line>(
48
64
& self ,
@@ -68,6 +84,17 @@ macro_rules! name_value_directive {
68
84
( $item: ident, $compiletest_name: literal, $ui_test_name: literal) => {
69
85
#[ derive( Debug , Clone , Copy ) ]
70
86
pub struct $item;
87
+
88
+ impl TestDirective for $item {
89
+ fn compiletest_name( & self ) -> & ' static str {
90
+ $compiletest_name
91
+ }
92
+
93
+ fn ui_test_name( & self ) -> Option <& ' static str > {
94
+ Some ( $ui_test_name)
95
+ }
96
+ }
97
+
71
98
impl NameValueDirective for $item {
72
99
fn parse_name_value<' line>(
73
100
& self ,
@@ -106,6 +133,17 @@ macro_rules! name_directive {
106
133
( $item: ident, $compiletest_name: literal) => {
107
134
#[ derive( Debug , Clone , Copy ) ]
108
135
pub struct $item;
136
+
137
+ impl TestDirective for $item {
138
+ fn compiletest_name( & self ) -> & ' static str {
139
+ $compiletest_name
140
+ }
141
+
142
+ fn ui_test_name( & self ) -> Option <& ' static str > {
143
+ None
144
+ }
145
+ }
146
+
109
147
impl NameDirective for $item {
110
148
fn parse_name( & self , comment: & TestComment <' _>) -> bool {
111
149
match comment. comment( ) {
@@ -134,6 +172,17 @@ macro_rules! name_directive {
134
172
( $item: ident, $compiletest_name: literal, $ui_test_name: literal) => {
135
173
#[ derive( Debug , Clone , Copy ) ]
136
174
pub struct $item;
175
+
176
+ impl TestDirective for $item {
177
+ fn compiletest_name( & self ) -> & ' static str {
178
+ $compiletest_name
179
+ }
180
+
181
+ fn ui_test_name( & self ) -> Option <& ' static str > {
182
+ Some ( $ui_test_name)
183
+ }
184
+ }
185
+
137
186
impl NameDirective for $item {
138
187
fn parse_name( & self , comment: & TestComment <' _>) -> bool {
139
188
match comment. comment( ) {
@@ -173,6 +222,17 @@ macro_rules! name_val_or_name_directive {
173
222
( $item: ident, $compiletest_name: literal) => {
174
223
#[ derive( Debug , Clone , Copy ) ]
175
224
pub struct $item;
225
+
226
+ impl TestDirective for $item {
227
+ fn compiletest_name( & self ) -> & ' static str {
228
+ $compiletest_name
229
+ }
230
+
231
+ fn ui_test_name( & self ) -> Option <& ' static str > {
232
+ None
233
+ }
234
+ }
235
+
176
236
impl NameValueDirective for $item {
177
237
fn parse_name_value<' line>(
178
238
& self ,
@@ -222,6 +282,17 @@ macro_rules! name_val_or_name_directive {
222
282
( $item: ident, $compiletest_name: literal, $ui_test_name: literal) => {
223
283
#[ derive( Debug , Clone , Copy ) ]
224
284
pub struct $item;
285
+
286
+ impl TestDirective for $item {
287
+ fn compiletest_name( & self ) -> & ' static str {
288
+ $compiletest_name
289
+ }
290
+
291
+ fn ui_test_name( & self ) -> Option <& ' static str > {
292
+ Some ( $ui_test_name)
293
+ }
294
+ }
295
+
225
296
impl NameValueDirective for $item {
226
297
fn parse_name_value<' line>(
227
298
& self ,
@@ -292,7 +363,7 @@ macro_rules! name_val_or_name_directive {
292
363
// Macros are in the form (name, compiletest_name, ui_test_name).
293
364
// If ui_test_name does not exist, ui_test does not support that directive.
294
365
// ========================================================================
295
- name_value_directive ! ( ErrorPatternDirective , "error-pattern " , "error-in-other-file " ) ;
366
+ name_value_directive ! ( ErrorPatternDirective , "error-in-other-file " , "error-pattern " ) ;
296
367
name_value_directive ! ( CompileFlagsDirective , "compile-flags" , "compile-flags" ) ;
297
368
name_value_directive ! ( RunFlagsDirective , "run-flags" ) ; // UNUSED IN UI TESTS
298
369
name_value_directive ! ( PrettyModeDirective , "pretty-mode" ) ; // UNUSED IN UI TESTS
0 commit comments