about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2012-10-15 15:29:45 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-10-15 16:27:53 -0700
commit7d845056540237e54bf8f02ab8f5e477f71a7edd (patch)
tree8008cae3619e6776eb0f9f69de18d05daca7c780
parent91ae5412d8141ea958924408bf3c1def5edca806 (diff)
Error out in resolve if structs try to capture type parameters
Closes #3214
-rw-r--r--src/rustc/middle/resolve.rs4
-rw-r--r--src/test/compile-fail/issue-3214.rs4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/rustc/middle/resolve.rs b/src/rustc/middle/resolve.rs
index 81ea6daf195..6f7230fe4c1 100644
--- a/src/rustc/middle/resolve.rs
+++ b/src/rustc/middle/resolve.rs
@@ -3522,8 +3522,8 @@ impl Resolver {
         let outer_type_parameter_count = (*type_parameters).len();
         let borrowed_type_parameters: &~[ty_param] = &*type_parameters;
         do self.with_type_parameter_rib(HasTypeParameters
-                                        (borrowed_type_parameters, id, 0u,
-                                         NormalRibKind)) {
+                                        (borrowed_type_parameters, id, 0,
+                                         OpaqueFunctionRibKind)) {
 
             // Resolve the type parameters.
             self.resolve_type_parameters(*type_parameters, visitor);
diff --git a/src/test/compile-fail/issue-3214.rs b/src/test/compile-fail/issue-3214.rs
index 3c783b99232..7008f8c4ce2 100644
--- a/src/test/compile-fail/issue-3214.rs
+++ b/src/test/compile-fail/issue-3214.rs
@@ -1,7 +1,7 @@
-// xfail-test
 fn foo<T>() {
     struct foo {
-        mut x: T, //~ ERROR quux
+        mut x: T, //~ ERROR attempt to use a type argument out of scope
+        //~^ ERROR use of undeclared type name
         drop { }
     }
 }