debug!("(building reduced graph for external \
crate) building type {}", final_ident);
+ let modifiers = match new_parent.kind.get() {
+ NormalModuleKind => modifiers,
+ _ => modifiers & !DefModifiers::IMPORTABLE
+ };
+
child_name_bindings.define_type(def, DUMMY_SP, modifiers);
}
DefStruct(def_id) => {
// 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 {
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
// 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() {}