Skip to content

Commit b1a5e7d

Browse files
committed
---
yaml --- r: 147694 b: refs/heads/try2 c: a483ee8 h: refs/heads/master v: v3
1 parent 61de93b commit b1a5e7d

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: d3fc7b9918c7225351985b84463c85879964acb0
8+
refs/heads/try2: a483ee8e33c74ffe2b06e62b934c91ec0aa762ba
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/librustc/middle/resolve.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ struct binding_info {
4646
type BindingMap = HashMap<Name,binding_info>;
4747

4848
// Trait method resolution
49-
pub type TraitMap = HashMap<NodeId,@mut ~[DefId]>;
49+
pub type TraitMap = HashMap<NodeId,@RefCell<~[DefId]>>;
5050

5151
// This is the replacement export map. It maps a module to all of the exports
5252
// within.
@@ -5244,14 +5244,14 @@ impl Resolver {
52445244
// the field name so that we can do some nice error reporting
52455245
// later on in typeck.
52465246
let traits = self.search_for_traits_containing_method(ident);
5247-
self.trait_map.insert(expr.id, @mut traits);
5247+
self.trait_map.insert(expr.id, @RefCell::new(traits));
52485248
}
52495249
ExprMethodCall(_, _, ident, _, _, _) => {
52505250
debug!("(recording candidate traits for expr) recording \
52515251
traits for {}",
52525252
expr.id);
52535253
let traits = self.search_for_traits_containing_method(ident);
5254-
self.trait_map.insert(expr.id, @mut traits);
5254+
self.trait_map.insert(expr.id, @RefCell::new(traits));
52555255
}
52565256
ExprBinary(_, BiAdd, _, _) | ExprAssignOp(_, BiAdd, _, _) => {
52575257
let i = self.lang_items.add_trait();
@@ -5442,7 +5442,7 @@ impl Resolver {
54425442
trait_id: Option<DefId>) {
54435443
match trait_id {
54445444
Some(trait_id) => {
5445-
self.trait_map.insert(expr_id, @mut ~[trait_id]);
5445+
self.trait_map.insert(expr_id, @RefCell::new(~[trait_id]));
54465446
}
54475447
None => {}
54485448
}

branches/try2/src/librustc/middle/typeck/check/method.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,8 @@ impl<'a> LookupContext<'a> {
347347
let trait_map: &resolve::TraitMap = &self.fcx.ccx.trait_map;
348348
let opt_applicable_traits = trait_map.find(&self.expr.id);
349349
for applicable_traits in opt_applicable_traits.iter() {
350-
for trait_did in applicable_traits.iter() {
350+
let applicable_traits = applicable_traits.borrow();
351+
for trait_did in applicable_traits.get().iter() {
351352
ty::populate_implementations_for_trait_if_necessary(
352353
self.tcx(),
353354
*trait_did);

0 commit comments

Comments
 (0)