diff --git a/src/librustc/middle/dead.rs b/src/librustc/middle/dead.rs index 21eb772b1b3..c3324d65663 100644 --- a/src/librustc/middle/dead.rs +++ b/src/librustc/middle/dead.rs @@ -50,7 +50,7 @@ struct MarkSymbolVisitor<'a, 'tcx: 'a> { tcx: TyCtxt<'a, 'tcx, 'tcx>, tables: &'a ty::TypeckTables<'tcx>, live_symbols: Box>, - struct_has_extern_repr: bool, + repr_has_repr_c: bool, in_pat: bool, inherited_pub_visibility: bool, ignore_variant_stack: Vec, @@ -149,8 +149,8 @@ impl<'a, 'tcx> MarkSymbolVisitor<'a, 'tcx> { } fn visit_node(&mut self, node: &hir_map::Node<'tcx>) { - let had_extern_repr = self.struct_has_extern_repr; - self.struct_has_extern_repr = false; + let had_repr_c = self.repr_has_repr_c; + self.repr_has_repr_c = false; let had_inherited_pub_visibility = self.inherited_pub_visibility; self.inherited_pub_visibility = false; match *node { @@ -159,7 +159,7 @@ impl<'a, 'tcx> MarkSymbolVisitor<'a, 'tcx> { hir::ItemStruct(..) | hir::ItemUnion(..) => { let def_id = self.tcx.hir.local_def_id(item.id); let def = self.tcx.adt_def(def_id); - self.struct_has_extern_repr = def.repr.c(); + self.repr_has_repr_c = def.repr.c(); intravisit::walk_item(self, &item); } @@ -187,7 +187,7 @@ impl<'a, 'tcx> MarkSymbolVisitor<'a, 'tcx> { } _ => () } - self.struct_has_extern_repr = had_extern_repr; + self.repr_has_repr_c = had_repr_c; self.inherited_pub_visibility = had_inherited_pub_visibility; } @@ -223,10 +223,10 @@ impl<'a, 'tcx> Visitor<'tcx> for MarkSymbolVisitor<'a, 'tcx> { fn visit_variant_data(&mut self, def: &'tcx hir::VariantData, _: ast::Name, _: &hir::Generics, _: ast::NodeId, _: syntax_pos::Span) { - let has_extern_repr = self.struct_has_extern_repr; + let has_repr_c = self.repr_has_repr_c; let inherited_pub_visibility = self.inherited_pub_visibility; let live_fields = def.fields().iter().filter(|f| { - has_extern_repr || inherited_pub_visibility || f.vis == hir::Public + has_repr_c || inherited_pub_visibility || f.vis == hir::Public }); self.live_symbols.extend(live_fields.map(|f| f.id)); @@ -428,7 +428,7 @@ fn find_live<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, tcx, tables: &ty::TypeckTables::empty(None), live_symbols: box FxHashSet(), - struct_has_extern_repr: false, + repr_has_repr_c: false, in_pat: false, inherited_pub_visibility: false, ignore_variant_stack: vec![], diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index e5f6ac88530..8f87f5b1e1a 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -1538,7 +1538,7 @@ impl ReprOptions { for attr in tcx.get_attrs(did).iter() { for r in attr::find_repr_attrs(tcx.sess.diagnostic(), attr) { flags.insert(match r { - attr::ReprExtern => ReprFlags::IS_C, + attr::ReprC => ReprFlags::IS_C, attr::ReprPacked => ReprFlags::IS_PACKED, attr::ReprSimd => ReprFlags::IS_SIMD, attr::ReprInt(i) => { diff --git a/src/librustc_lint/bad_style.rs b/src/librustc_lint/bad_style.rs index ac0bf9f4a99..ad3760eed80 100644 --- a/src/librustc_lint/bad_style.rs +++ b/src/librustc_lint/bad_style.rs @@ -120,17 +120,15 @@ impl LintPass for NonCamelCaseTypes { impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NonCamelCaseTypes { fn check_item(&mut self, cx: &LateContext, it: &hir::Item) { - let extern_repr_count = it.attrs + let has_repr_c = it.attrs .iter() - .filter(|attr| { + .any(|attr| { attr::find_repr_attrs(cx.tcx.sess.diagnostic(), attr) .iter() - .any(|r| r == &attr::ReprExtern) - }) - .count(); - let has_extern_repr = extern_repr_count > 0; + .any(|r| r == &attr::ReprC) + }); - if has_extern_repr { + if has_repr_c { return; } diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index 0b868b514fe..4291f811f3f 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -1008,8 +1008,7 @@ pub fn find_repr_attrs(diagnostic: &Handler, attr: &Attribute) -> Vec if let Some(mi) = item.word() { let word = &*mi.name().as_str(); let hint = match word { - // Can't use "extern" because it's not a lexical identifier. - "C" => Some(ReprExtern), + "C" => Some(ReprC), "packed" => Some(ReprPacked), "simd" => Some(ReprSimd), _ => match int_type_of_word(word) { @@ -1080,7 +1079,7 @@ fn int_type_of_word(s: &str) -> Option { #[derive(PartialEq, Debug, RustcEncodable, RustcDecodable, Copy, Clone)] pub enum ReprAttr { ReprInt(IntType), - ReprExtern, + ReprC, ReprPacked, ReprSimd, ReprAlign(u32), diff --git a/src/libsyntax_ext/deriving/generic/mod.rs b/src/libsyntax_ext/deriving/generic/mod.rs index 48872cb1313..08a7f85d14b 100644 --- a/src/libsyntax_ext/deriving/generic/mod.rs +++ b/src/libsyntax_ext/deriving/generic/mod.rs @@ -831,7 +831,7 @@ fn find_repr_type_name(diagnostic: &Handler, type_attrs: &[ast::Attribute]) -> & for r in &attr::find_repr_attrs(diagnostic, a) { repr_type_name = match *r { attr::ReprPacked | attr::ReprSimd | attr::ReprAlign(_) => continue, - attr::ReprExtern => "i32", + attr::ReprC => "i32", attr::ReprInt(attr::SignedInt(ast::IntTy::Isize)) => "isize", attr::ReprInt(attr::SignedInt(ast::IntTy::I8)) => "i8",