Skip to content

Commit

Permalink
Auto merge of #38051 - sanxiyn:unused-type-alias-3, r=eddyb
Browse files Browse the repository at this point in the history
 Warn unused type aliases, reimplemented

Reimplementation of #37631. Fix #37455.
  • Loading branch information
bors committed Dec 18, 2016
2 parents 1f965cc + f71f31a commit 71c06a5
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 27 deletions.
24 changes: 6 additions & 18 deletions src/librustc/middle/dead.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,20 +86,7 @@ impl<'a, 'tcx> MarkSymbolVisitor<'a, 'tcx> {
}
}

fn handle_definition(&mut self, id: ast::NodeId, def: Def) {
// If `bar` is a trait item, make sure to mark Foo as alive in `Foo::bar`
match def {
Def::AssociatedTy(..) | Def::Method(_) | Def::AssociatedConst(_)
if self.tcx.trait_of_item(def.def_id()).is_some() => {
if let Some(substs) = self.tcx.tables().item_substs.get(&id) {
if let ty::TyAdt(tyid, _) = substs.substs.type_at(0).sty {
self.check_def_id(tyid.did);
}
}
}
_ => {}
}

fn handle_definition(&mut self, def: Def) {
match def {
Def::Const(_) | Def::AssociatedConst(..) => {
self.check_def_id(def.def_id());
Expand Down Expand Up @@ -241,7 +228,7 @@ impl<'a, 'tcx> Visitor<'tcx> for MarkSymbolVisitor<'a, 'tcx> {
match expr.node {
hir::ExprPath(ref qpath @ hir::QPath::TypeRelative(..)) => {
let def = self.tcx.tables().qpath_def(qpath, expr.id);
self.handle_definition(expr.id, def);
self.handle_definition(def);
}
hir::ExprMethodCall(..) => {
self.lookup_and_handle_method(expr.id);
Expand Down Expand Up @@ -281,7 +268,7 @@ impl<'a, 'tcx> Visitor<'tcx> for MarkSymbolVisitor<'a, 'tcx> {
}
PatKind::Path(ref qpath @ hir::QPath::TypeRelative(..)) => {
let def = self.tcx.tables().qpath_def(qpath, pat.id);
self.handle_definition(pat.id, def);
self.handle_definition(def);
}
_ => ()
}
Expand All @@ -291,8 +278,8 @@ impl<'a, 'tcx> Visitor<'tcx> for MarkSymbolVisitor<'a, 'tcx> {
self.ignore_non_const_paths = false;
}

fn visit_path(&mut self, path: &'tcx hir::Path, id: ast::NodeId) {
self.handle_definition(id, path.def);
fn visit_path(&mut self, path: &'tcx hir::Path, _: ast::NodeId) {
self.handle_definition(path.def);
intravisit::walk_path(self, path);
}
}
Expand Down Expand Up @@ -426,6 +413,7 @@ impl<'a, 'tcx> DeadVisitor<'a, 'tcx> {
hir::ItemStatic(..)
| hir::ItemConst(..)
| hir::ItemFn(..)
| hir::ItemTy(..)
| hir::ItemEnum(..)
| hir::ItemStruct(..)
| hir::ItemUnion(..) => true,
Expand Down
2 changes: 0 additions & 2 deletions src/librustc_data_structures/graph/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
use graph::*;
use std::fmt::Debug;

type TestNode = Node<&'static str>;
type TestEdge = Edge<&'static str>;
type TestGraph = Graph<&'static str, &'static str>;

fn create_graph() -> TestGraph {
Expand Down
4 changes: 1 addition & 3 deletions src/librustc_trans/back/msvc/registry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use std::io;
use std::ffi::{OsString, OsStr};
use std::os::windows::prelude::*;
use std::ptr;
use libc::{c_void, c_long};
use libc::c_long;

pub type DWORD = u32;
type LPCWSTR = *const u16;
Expand All @@ -38,8 +38,6 @@ pub enum __HKEY__ {}
pub type HKEY = *mut __HKEY__;
pub type PHKEY = *mut HKEY;
pub type REGSAM = DWORD;
pub type LPWSTR = *mut u16;
pub type PFILETIME = *mut c_void;

#[link(name = "advapi32")]
extern "system" {
Expand Down
5 changes: 2 additions & 3 deletions src/libstd/sys/windows/c.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ pub type CHAR = c_char;
pub type HCRYPTPROV = LONG_PTR;
pub type ULONG_PTR = c_ulonglong;
pub type ULONG = c_ulong;
#[cfg(target_arch = "x86_64")]
pub type ULONGLONG = u64;
#[cfg(target_arch = "x86_64")]
pub type DWORDLONG = ULONGLONG;

pub type LPBOOL = *mut BOOL;
Expand All @@ -66,7 +68,6 @@ pub type LPVOID = *mut c_void;
pub type LPWCH = *mut WCHAR;
pub type LPWIN32_FIND_DATAW = *mut WIN32_FIND_DATAW;
pub type LPWSADATA = *mut WSADATA;
pub type LPWSAPROTOCOLCHAIN = *mut WSAPROTOCOLCHAIN;
pub type LPWSAPROTOCOL_INFO = *mut WSAPROTOCOL_INFO;
pub type LPWSTR = *mut WCHAR;
pub type LPFILETIME = *mut FILETIME;
Expand Down Expand Up @@ -311,8 +312,6 @@ pub struct WSADATA {
pub szSystemStatus: [u8; WSASYS_STATUS_LEN + 1],
}

pub type WSAEVENT = HANDLE;

#[repr(C)]
pub struct WSAPROTOCOL_INFO {
pub dwServiceFlags1: DWORD,
Expand Down
1 change: 1 addition & 0 deletions src/test/compile-fail/issue-32119.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
// except according to those terms.

#![feature(rustc_attrs)]
#![allow(dead_code)]

pub type T = ();
mod foo { pub use super::T; }
Expand Down
20 changes: 20 additions & 0 deletions src/test/compile-fail/lint-dead-code-type-alias.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![deny(dead_code)]

type Used = u8;
type Unused = u8; //~ ERROR type alias is never used

fn id(x: Used) -> Used { x }

fn main() {
id(0);
}
1 change: 1 addition & 0 deletions src/test/compile-fail/macro-tt-matchers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
// except according to those terms.

#![feature(rustc_attrs)]
#![allow(dead_code)]

macro_rules! foo {
($x:tt) => (type Alias = $x<i32>;)
Expand Down
2 changes: 1 addition & 1 deletion src/tools/cargotest/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ struct Test {
const TEST_REPOS: &'static [Test] = &[Test {
name: "cargo",
repo: "https://github.com/rust-lang/cargo",
sha: "806e3c368a15f618244a3b4e918bf77f9c403fd0",
sha: "b7be4f2ef2cf743492edc6dfb55d087ed88f2d76",
lock: None,
},
Test {
Expand Down

0 comments on commit 71c06a5

Please sign in to comment.