Skip to content

Commit a10f034

Browse files
committed
---
yaml --- r: 89009 b: refs/heads/snap-stage3 c: 35c8fec h: refs/heads/master i: 89007: 49408e0 v: v3
1 parent 8744929 commit a10f034

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: deeca5d586bfaa4aa60246f671a8d611d38f6248
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: c45c9a5e2f2eb9930fe5ee94622f41441604c170
4+
refs/heads/snap-stage3: 35c8fecb329b9a432d43e20fb91442d66d8f339a
55
refs/heads/try: b160761e35efcd1207112b3b782c06633cf441a8
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/src/librustc/middle/resolve.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,7 @@ struct TypeNsDef {
497497
}
498498

499499
// Records a possibly-private value definition.
500+
#[deriving(Clone)]
500501
struct ValueNsDef {
501502
is_public: bool, // see note in ImportResolution about how to use this
502503
def: Def,
@@ -507,7 +508,7 @@ struct ValueNsDef {
507508
// bound to.
508509
struct NameBindings {
509510
type_def: RefCell<Option<TypeNsDef>>, //< Meaning in type namespace.
510-
value_def: Option<ValueNsDef>, //< Meaning in value namespace.
511+
value_def: RefCell<Option<ValueNsDef>>, //< Meaning in value namespace.
511512
}
512513

513514
/// Ways in which a trait can be referenced
@@ -614,8 +615,11 @@ impl NameBindings {
614615

615616
/// Records a value definition.
616617
fn define_value(&mut self, def: Def, sp: Span, is_public: bool) {
617-
self.value_def = Some(ValueNsDef { def: def, value_span: Some(sp),
618-
is_public: is_public });
618+
self.value_def.set(Some(ValueNsDef {
619+
def: def,
620+
value_span: Some(sp),
621+
is_public: is_public,
622+
}));
619623
}
620624

621625
/// Returns the module node if applicable.
@@ -644,7 +648,7 @@ impl NameBindings {
644648
fn defined_in_namespace(&self, namespace: Namespace) -> bool {
645649
match namespace {
646650
TypeNS => return self.type_def.get().is_some(),
647-
ValueNS => return self.value_def.is_some()
651+
ValueNS => return self.value_def.get().is_some()
648652
}
649653
}
650654

@@ -653,7 +657,7 @@ impl NameBindings {
653657
TypeNS => match self.type_def.get() {
654658
Some(def) => def.is_public, None => false
655659
},
656-
ValueNS => match self.value_def {
660+
ValueNS => match self.value_def.get() {
657661
Some(def) => def.is_public, None => false
658662
}
659663
}
@@ -683,7 +687,7 @@ impl NameBindings {
683687
}
684688
}
685689
ValueNS => {
686-
match self.value_def {
690+
match self.value_def.get() {
687691
None => None,
688692
Some(value_def) => Some(value_def.def)
689693
}
@@ -701,7 +705,7 @@ impl NameBindings {
701705
}
702706
}
703707
ValueNS => {
704-
match self.value_def {
708+
match self.value_def.get() {
705709
None => None,
706710
Some(value_def) => value_def.value_span
707711
}
@@ -716,7 +720,7 @@ impl NameBindings {
716720
fn NameBindings() -> NameBindings {
717721
NameBindings {
718722
type_def: RefCell::new(None),
719-
value_def: None
723+
value_def: RefCell::new(None),
720724
}
721725
}
722726

@@ -2220,7 +2224,7 @@ impl Resolver {
22202224
type_def: None,
22212225
type_span: None
22222226
})),
2223-
value_def: None,
2227+
value_def: RefCell::new(None),
22242228
}
22252229
}
22262230

@@ -4534,8 +4538,9 @@ impl Resolver {
45344538
Success((target, _)) => {
45354539
debug!("(resolve bare identifier pattern) succeeded in \
45364540
finding {} at {:?}",
4537-
self.session.str_of(name), target.bindings.value_def);
4538-
match target.bindings.value_def {
4541+
self.session.str_of(name),
4542+
target.bindings.value_def.get());
4543+
match target.bindings.value_def.get() {
45394544
None => {
45404545
fail!("resolved name in the value namespace to a \
45414546
set of name bindings with no def?!");

0 commit comments

Comments
 (0)