Skip to content

Commit 2c96a43

Browse files
committed
Get rid of the unsafe hacks in resolve3. Closes #3267.
1 parent 7706262 commit 2c96a43

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

src/rustc/middle/resolve3.rs

+9-12
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ struct Resolver {
676676
}
677677

678678
/// The main name resolution procedure.
679-
fn resolve(this: @Resolver) {
679+
fn resolve(@self, this: @Resolver) {
680680
self.build_reduced_graph(this);
681681
self.session.abort_if_errors();
682682

@@ -2792,25 +2792,22 @@ struct Resolver {
27922792
return none;
27932793
}
27942794

2795-
// XXX: This shouldn't be unsafe!
2796-
fn resolve_crate() unsafe {
2795+
fn resolve_crate(@self) {
27972796
debug!("(resolving crate) starting");
27982797

2799-
// XXX: This is awful!
2800-
let this = ptr::addr_of(self);
28012798
visit_crate(*self.crate, (), mk_vt(@{
28022799
visit_item: |item, _context, visitor|
2803-
(*this).resolve_item(item, visitor),
2800+
self.resolve_item(item, visitor),
28042801
visit_arm: |arm, _context, visitor|
2805-
(*this).resolve_arm(arm, visitor),
2802+
self.resolve_arm(arm, visitor),
28062803
visit_block: |block, _context, visitor|
2807-
(*this).resolve_block(block, visitor),
2804+
self.resolve_block(block, visitor),
28082805
visit_expr: |expr, _context, visitor|
2809-
(*this).resolve_expr(expr, visitor),
2806+
self.resolve_expr(expr, visitor),
28102807
visit_local: |local, _context, visitor|
2811-
(*this).resolve_local(local, visitor),
2808+
self.resolve_local(local, visitor),
28122809
visit_ty: |ty, _context, visitor|
2813-
(*this).resolve_type(ty, visitor)
2810+
self.resolve_type(ty, visitor)
28142811
with *default_visitor()
28152812
}));
28162813
}
@@ -4542,7 +4539,7 @@ fn resolve_crate(session: session, lang_items: LanguageItems, crate: @crate)
45424539
trait_map: TraitMap } {
45434540

45444541
let resolver = @Resolver(session, lang_items, crate);
4545-
(*resolver).resolve(resolver);
4542+
resolver.resolve(resolver);
45464543
return {
45474544
def_map: resolver.def_map,
45484545
exp_map: resolver.export_map,

0 commit comments

Comments
 (0)