From bf0d4cc035333dba65f650227ead9a669570e128 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 15 Aug 2012 21:03:40 -0700 Subject: [PATCH] rustc: Allow external structs to be constructed. Closes #3012. Embarrassing. --- src/rustc/middle/resolve3.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rustc/middle/resolve3.rs b/src/rustc/middle/resolve3.rs index 9eef85600fc1..70bf3f580ce0 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);