Skip to content

Commit 635d917

Browse files
committed
Port const_eval from oldvisit to <V:Visitor> trait API.
1 parent 54ee3d0 commit 635d917

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/librustc/middle/const_eval.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ use middle::astencode;
1414
use middle::ty;
1515
use middle;
1616

17-
use syntax::{ast, ast_map, ast_util, oldvisit};
17+
use syntax::{ast, ast_map, ast_util};
18+
use syntax::visit;
19+
use syntax::visit::Visitor;
1820
use syntax::ast::*;
1921

2022
use std::float;
@@ -265,13 +267,18 @@ pub fn lookup_constness(tcx: ty::ctxt, e: &expr) -> constness {
265267
}
266268
}
267269

270+
struct ConstEvalVisitor { tcx: ty::ctxt }
271+
272+
impl Visitor<()> for ConstEvalVisitor {
273+
fn visit_expr_post(&mut self, e:@expr, _:()) {
274+
classify(e, self.tcx);
275+
}
276+
}
277+
268278
pub fn process_crate(crate: &ast::Crate,
269279
tcx: ty::ctxt) {
270-
let v = oldvisit::mk_simple_visitor(@oldvisit::SimpleVisitor {
271-
visit_expr_post: |e| { classify(e, tcx); },
272-
.. *oldvisit::default_simple_visitor()
273-
});
274-
oldvisit::visit_crate(crate, ((), v));
280+
let mut v = ConstEvalVisitor { tcx: tcx };
281+
visit::walk_crate(&mut v, crate, ());
275282
tcx.sess.abort_if_errors();
276283
}
277284

0 commit comments

Comments
 (0)