about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorAriel Ben-Yehuda <arielb1@mail.tau.ac.il>2015-08-12 19:58:32 +0300
committerAriel Ben-Yehuda <arielb1@mail.tau.ac.il>2015-08-12 19:58:32 +0300
commit1dd0c058cf1a31e2c25d5bedeaa2bab6eaa73dbc (patch)
treea6118e3ba88892277e92db719fd1fdff6e1038e9 /src/test
parent2b45a0d90853deca584a28a55237d996a274a833 (diff)
downloadrust-1dd0c058cf1a31e2c25d5bedeaa2bab6eaa73dbc.tar.gz
rust-1dd0c058cf1a31e2c25d5bedeaa2bab6eaa73dbc.zip
stop cross-crate associated types from being imported
Fixes #22968
Probably fixes #27602
Diffstat (limited to 'src/test')
-rw-r--r--src/test/auxiliary/use_from_trait_xc.rs6
-rw-r--r--src/test/compile-fail/use-from-trait-xc.rs9
-rw-r--r--src/test/compile-fail/use-from-trait.rs13
3 files changed, 28 insertions, 0 deletions
diff --git a/src/test/auxiliary/use_from_trait_xc.rs b/src/test/auxiliary/use_from_trait_xc.rs
index 56fb40bc0a4..7024c9dad7c 100644
--- a/src/test/auxiliary/use_from_trait_xc.rs
+++ b/src/test/auxiliary/use_from_trait_xc.rs
@@ -8,16 +8,22 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(associated_consts)]
+
 pub use self::sub::{Bar, Baz};
 
 pub trait Trait {
     fn foo(&self);
+    type Assoc;
+    const CONST: u32;
 }
 
 struct Foo;
 
 impl Foo {
     pub fn new() {}
+
+    pub const C: u32 = 0;
 }
 
 mod sub {
diff --git a/src/test/compile-fail/use-from-trait-xc.rs b/src/test/compile-fail/use-from-trait-xc.rs
index ff282413580..4f7e38bd26b 100644
--- a/src/test/compile-fail/use-from-trait-xc.rs
+++ b/src/test/compile-fail/use-from-trait-xc.rs
@@ -15,9 +15,18 @@ extern crate use_from_trait_xc;
 use use_from_trait_xc::Trait::foo;
 //~^ ERROR `foo` is not directly importable
 
+use use_from_trait_xc::Trait::Assoc;
+//~^ ERROR `Assoc` is not directly importable
+
+use use_from_trait_xc::Trait::CONST;
+//~^ ERROR `CONST` is not directly importable
+
 use use_from_trait_xc::Foo::new;
 //~^ ERROR `new` is not directly importable
 
+use use_from_trait_xc::Foo::C;
+//~^ ERROR unresolved import `use_from_trait_xc::Foo::C`
+
 use use_from_trait_xc::Bar::new as bnew;
 //~^ ERROR `bnew` is not directly importable
 
diff --git a/src/test/compile-fail/use-from-trait.rs b/src/test/compile-fail/use-from-trait.rs
index 49d8622976b..28e933bc7aa 100644
--- a/src/test/compile-fail/use-from-trait.rs
+++ b/src/test/compile-fail/use-from-trait.rs
@@ -8,19 +8,32 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#![feature(associated_consts)]
+
 use Trait::foo;
 //~^ ERROR `foo` is not directly importable
+use Trait::Assoc;
+//~^ ERROR `Assoc` is not directly importable
+use Trait::C;
+//~^ ERROR `C` is not directly importable
+
 use Foo::new;
 //~^ ERROR unresolved import `Foo::new`. Not a module `Foo`
 
+use Foo::C2;
+//~^ ERROR unresolved import `Foo::C2`. Not a module `Foo`
+
 pub trait Trait {
     fn foo();
+    type Assoc;
+    const C: u32;
 }
 
 struct Foo;
 
 impl Foo {
     fn new() {}
+    const C2: u32 = 0;
 }
 
 fn main() {}