about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-08-15 21:03:40 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-08-15 21:03:40 -0700
commitbf0d4cc035333dba65f650227ead9a669570e128 (patch)
tree11fcbe4d0eae0e8e823816c92e22ab05a2d1de59
parentee2f0dd63838a7d42007ee848a4a532dd97fdb54 (diff)
rustc: Allow external structs to be constructed. Closes #3012.
Embarrassing.
-rw-r--r--src/rustc/middle/resolve3.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/rustc/middle/resolve3.rs b/src/rustc/middle/resolve3.rs
index 9eef85600fc..70bf3f580ce 100644
--- a/src/rustc/middle/resolve3.rs
+++ b/src/rustc/middle/resolve3.rs
@@ -1476,6 +1476,8 @@ class Resolver {
             if has_constructor {
                 child_name_bindings.define_value(def, dummy_sp());
             }
+
+            self.structs.insert(def_id, has_constructor);
           }
           def_self(*) | def_arg(*) | def_local(*) |
           def_prim_ty(*) | def_ty_param(*) | def_binding(*) |
@@ -4409,7 +4411,7 @@ class Resolver {
                 //    let bar = Bar { ... } // no type parameters
 
                 match self.resolve_path(path, TypeNS, false, visitor) {
-                    some(def_ty(class_id))
+                    some(def_ty(class_id)) | some(def_class(class_id, _))
                             if self.structs.contains_key(class_id) => {
                         let has_constructor = self.structs.get(class_id);
                         let class_def = def_class(class_id, has_constructor);