8
8
sample usage: src/etc/generate-deriving-span-tests.py
9
9
"""
10
10
11
- import os , stat
11
+ import os
12
+ import stat
12
13
13
14
TEST_DIR = os .path .abspath (
14
15
os .path .join (os .path .dirname (__file__ ), '../test/ui/derives/' ))
56
57
57
58
ENUM_TUPLE , ENUM_STRUCT , STRUCT_FIELDS , STRUCT_TUPLE = range (4 )
58
59
60
+
59
61
def create_test_case (type , trait , super_traits , error_count ):
60
62
string = [ENUM_STRING , ENUM_STRUCT_VARIANT_STRING , STRUCT_STRING , STRUCT_TUPLE_STRING ][type ]
61
63
all_traits = ',' .join ([trait ] + super_traits )
62
64
super_traits = ',' .join (super_traits )
63
65
error_deriving = '#[derive(%s)]' % super_traits if super_traits else ''
64
66
65
67
errors = '\n ' .join ('//~%s ERROR' % ('^' * n ) for n in range (error_count ))
66
- code = string .format (traits = all_traits , errors = errors )
67
- return TEMPLATE .format (error_deriving = error_deriving , code = code )
68
+ code = string .format (traits = all_traits , errors = errors )
69
+ return TEMPLATE .format (error_deriving = error_deriving , code = code )
70
+
68
71
69
72
def write_file (name , string ):
70
73
test_file = os .path .join (TEST_DIR , 'derives-span-%s.rs' % name )
@@ -86,10 +89,10 @@ def write_file(name, string):
86
89
87
90
traits = {
88
91
'Default' : (STRUCT , [], 1 ),
89
- 'FromPrimitive' : (0 , [], 0 ), # only works for C-like enums
92
+ 'FromPrimitive' : (0 , [], 0 ), # only works for C-like enums
90
93
91
- 'Decodable' : (0 , [], 0 ), # FIXME: quoting gives horrible spans
92
- 'Encodable' : (0 , [], 0 ), # FIXME: quoting gives horrible spans
94
+ 'Decodable' : (0 , [], 0 ), # FIXME: quoting gives horrible spans
95
+ 'Encodable' : (0 , [], 0 ), # FIXME: quoting gives horrible spans
93
96
}
94
97
95
98
for (trait , supers , errs ) in [('Clone' , [], 1 ),
0 commit comments