Skip to content

Commit 25d5fde

Browse files
committed
---
yaml --- r: 97085 b: refs/heads/dist-snap c: 35c8fec h: refs/heads/master i: 97083: 3de7b6f v: v3
1 parent 75c0e67 commit 25d5fde

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
@@ -6,7 +6,7 @@ refs/heads/try: c274a6888410ce3e357e014568b43310ed787d36
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: c45c9a5e2f2eb9930fe5ee94622f41441604c170
9+
refs/heads/dist-snap: 35c8fecb329b9a432d43e20fb91442d66d8f339a
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/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)