@@ -60,12 +60,12 @@ pub fn field_exprs(fields: ~[ast::Field]) -> ~[@ast::Expr] {
60
60
fields. map ( |f| f. expr )
61
61
}
62
62
63
- struct LoopQueryVisitor {
64
- p : @ fn ( & ast:: Expr_ ) -> bool
63
+ struct LoopQueryVisitor < ' self > {
64
+ p : & ' self fn ( & ast:: Expr_ ) -> bool
65
65
}
66
66
67
- impl Visitor < @mut bool > for LoopQueryVisitor {
68
- fn visit_expr ( & mut self , e : @ast:: Expr , flag : @mut bool ) {
67
+ impl < ' self > Visitor < @mut bool > for LoopQueryVisitor < ' self > {
68
+ fn visit_expr ( & mut self , e : @ast:: Expr , flag : @mut bool ) {
69
69
* flag |= ( self . p ) ( & e. node ) ;
70
70
match e. node {
71
71
// Skip inner loops, since a break in the inner loop isn't a
@@ -78,29 +78,33 @@ impl Visitor<@mut bool> for LoopQueryVisitor {
78
78
79
79
// Takes a predicate p, returns true iff p is true for any subexpressions
80
80
// of b -- skipping any inner loops (loop, while, loop_body)
81
- pub fn loop_query ( b : & ast:: Block , p : @ fn ( & ast:: Expr_ ) -> bool ) -> bool {
81
+ pub fn loop_query ( b : & ast:: Block , p : & fn ( & ast:: Expr_ ) -> bool ) -> bool {
82
82
let rs = @mut false ;
83
- let mut v = LoopQueryVisitor { p : p } ;
83
+ let mut v = LoopQueryVisitor {
84
+ p : p,
85
+ } ;
84
86
visit:: walk_block ( & mut v, b, rs) ;
85
87
return * rs;
86
88
}
87
89
88
- struct BlockQueryVisitor {
89
- p : @ fn ( @ast:: Expr ) -> bool
90
+ struct BlockQueryVisitor < ' self > {
91
+ p : & ' self fn ( @ast:: Expr ) -> bool
90
92
}
91
93
92
- impl Visitor < @mut bool > for BlockQueryVisitor {
93
- fn visit_expr ( & mut self , e : @ast:: Expr , flag : @mut bool ) {
94
+ impl < ' self > Visitor < @mut bool > for BlockQueryVisitor < ' self > {
95
+ fn visit_expr ( & mut self , e : @ast:: Expr , flag : @mut bool ) {
94
96
* flag |= ( self . p ) ( e) ;
95
97
visit:: walk_expr ( self , e, flag)
96
98
}
97
99
}
98
100
99
101
// Takes a predicate p, returns true iff p is true for any subexpressions
100
102
// of b -- skipping any inner loops (loop, while, loop_body)
101
- pub fn block_query ( b : & ast:: Block , p : @ fn ( @ast:: Expr ) -> bool ) -> bool {
103
+ pub fn block_query ( b : & ast:: Block , p : & fn ( @ast:: Expr ) -> bool ) -> bool {
102
104
let rs = @mut false ;
103
- let mut v = BlockQueryVisitor { p : p } ;
105
+ let mut v = BlockQueryVisitor {
106
+ p : p,
107
+ } ;
104
108
visit:: walk_block ( & mut v, b, rs) ;
105
109
return * rs;
106
110
}
0 commit comments