Parse namespace attribute on foreign mods
diff --git a/syntax/parse.rs b/syntax/parse.rs
index aa1eef6..a5f8bd1 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -214,16 +214,26 @@
let trusted = trusted || foreign_mod.unsafety.is_some();
+ let mut namespace = namespace.clone();
+ attrs::parse(
+ cx,
+ &foreign_mod.attrs,
+ attrs::Parser {
+ namespace: Some(&mut namespace),
+ ..Default::default()
+ },
+ );
+
let mut items = Vec::new();
for foreign in &foreign_mod.items {
match foreign {
ForeignItem::Type(foreign) => {
- match parse_extern_type(cx, foreign, lang, trusted, namespace) {
+ match parse_extern_type(cx, foreign, lang, trusted, &namespace) {
Ok(ety) => items.push(ety),
Err(err) => cx.push(err),
}
}
- ForeignItem::Fn(foreign) => match parse_extern_fn(cx, foreign, lang, namespace) {
+ ForeignItem::Fn(foreign) => match parse_extern_fn(cx, foreign, lang, &namespace) {
Ok(efn) => items.push(efn),
Err(err) => cx.push(err),
},
@@ -234,7 +244,7 @@
}
}
ForeignItem::Verbatim(tokens) => {
- match parse_extern_verbatim(cx, tokens, lang, namespace) {
+ match parse_extern_verbatim(cx, tokens, lang, &namespace) {
Ok(api) => items.push(api),
Err(err) => cx.push(err),
}