Skip to content

Commit

Permalink
Rollup merge of rust-lang#53100 - VPashkov:issue-52456-improper_ctype…
Browse files Browse the repository at this point in the history
…s, r=eddyb

Fix improper_ctypes lint for individual foreign items

Fixes rust-lang#52456.

r? @eddyb
  • Loading branch information
cramertj committed Aug 8, 2018
2 parents f3d57ef + 70cafec commit c346391
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 13 deletions.
23 changes: 10 additions & 13 deletions src/librustc_lint/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -790,21 +790,18 @@ impl LintPass for ImproperCTypes {
}

impl<'a, 'tcx> LateLintPass<'a, 'tcx> for ImproperCTypes {
fn check_item(&mut self, cx: &LateContext, it: &hir::Item) {
fn check_foreign_item(&mut self, cx: &LateContext, it: &hir::ForeignItem) {
let mut vis = ImproperCTypesVisitor { cx: cx };
if let hir::ItemKind::ForeignMod(ref nmod) = it.node {
if nmod.abi != Abi::RustIntrinsic && nmod.abi != Abi::PlatformIntrinsic {
for ni in &nmod.items {
match ni.node {
hir::ForeignItemKind::Fn(ref decl, _, _) => {
vis.check_foreign_fn(ni.id, decl);
}
hir::ForeignItemKind::Static(ref ty, _) => {
vis.check_foreign_static(ni.id, ty.span);
}
hir::ForeignItemKind::Type => ()
}
let abi = cx.tcx.hir.get_foreign_abi(it.id);
if abi != Abi::RustIntrinsic && abi != Abi::PlatformIntrinsic {
match it.node {
hir::ForeignItemKind::Fn(ref decl, _, _) => {
vis.check_foreign_fn(it.id, decl);
}
hir::ForeignItemKind::Static(ref ty, _) => {
vis.check_foreign_static(it.id, ty.span);
}
hir::ForeignItemKind::Type => ()
}
}
}
Expand Down
7 changes: 7 additions & 0 deletions src/test/ui/lint-ctypes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,13 @@ extern {
pub fn good15(p: TransparentLifetime);
pub fn good16(p: TransparentUnit<ZeroSize>);
pub fn good17(p: TransparentCustomZst);
#[allow(improper_ctypes)]
pub fn good18(_: &String);
}

#[allow(improper_ctypes)]
extern {
pub fn good19(_: &String);
}

#[cfg(not(target_arch = "wasm32"))]
Expand Down

0 comments on commit c346391

Please sign in to comment.