File tree Expand file tree Collapse file tree 1 file changed +8
-12
lines changed Expand file tree Collapse file tree 1 file changed +8
-12
lines changed Original file line number Diff line number Diff line change @@ -86,24 +86,20 @@ fn strip_test_functions(crate: @ast::crate) -> @ast::crate {
86
86
87
87
fn fold_mod ( cx : test_ctxt , m : ast:: _mod , fld : fold:: ast_fold ) -> ast:: _mod {
88
88
89
- // Remove any defined main function from the AST so it doesn't clash with
89
+ // Remove any #[ main] from the AST so it doesn't clash with
90
90
// the one we're going to add. Only if compiling an executable.
91
91
92
- fn nomain ( cx : test_ctxt , item : @ast:: item ) -> Option < @ast:: item > {
93
- match item. node {
94
- ast:: item_fn( * ) => {
95
- if attrs_contains_name ( item. attrs , ~"main")
96
- && !cx. sess . building_library {
97
- option:: None
98
- } else { option:: Some ( item) }
99
- }
100
- _ => option:: Some ( item)
101
- }
92
+ fn nomain ( cx : test_ctxt , item : @ast:: item ) -> @ast:: item {
93
+ if !cx. sess . building_library {
94
+ @ast:: item { attrs : item. attrs . filtered ( |attr| {
95
+ attr:: get_attr_name ( * attr) != ~"main"
96
+ } ) , .. copy * item}
97
+ } else { item }
102
98
}
103
99
104
100
let mod_nomain =
105
101
{ view_items: /*bad*/ copy m. view_items ,
106
- items: vec:: filter_map ( m. items , |i| nomain ( cx, * i) ) } ;
102
+ items: vec:: map ( m. items , |i| nomain ( cx, * i) ) } ;
107
103
return fold:: noop_fold_mod ( mod_nomain, fld) ;
108
104
}
109
105
You can’t perform that action at this time.
0 commit comments