Skip to content

Commit

Permalink
Rustup
Browse files Browse the repository at this point in the history
  • Loading branch information
oli-obk committed Jul 5, 2018
1 parent 547d9ca commit 28daee4
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 8 deletions.
34 changes: 33 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,41 @@ semver = "0.9"
# Not actually needed right now but required to make sure that clippy/ and cargo build
# with the same set of features in rust-lang/rust
num-traits = "0.2" # enable the default feature
winapi = "0.3"
backtrace = "0.3"

# keep in sync with `cargo`'s `Cargo.toml'
[target.'cfg(windows)'.dependencies.winapi]
version = "0.3"
features = [
# keep in sync with `cargo`'s `Cargo.toml'
"handleapi",
"jobapi",
"jobapi2",
"minwindef",
"ntdef",
"ntstatus",
"processenv",
"processthreadsapi",
"psapi",
"synchapi",
"winerror",
"winbase",
"wincon",
"winnt",
# no idea where these come from
"lmcons",
"minschannel",
"minwinbase",
"ntsecapi",
"profileapi",
"schannel",
"securitybaseapi",
"synchapi",
"sysinfoapi",
"timezoneapi",
"wincrypt",
]

[dev-dependencies]
cargo_metadata = "0.5"
compiletest_rs = "0.3.7"
Expand Down
21 changes: 14 additions & 7 deletions clippy_lints/src/lifetimes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -342,16 +342,23 @@ impl<'a, 'tcx> Visitor<'tcx> for RefVisitor<'a, 'tcx> {
self.record(&None);
},
TyPath(ref path) => {
self.collect_anonymous_lifetimes(path, ty);
},
TyImplTraitExistential(exist_ty_id, _, _) => {
if let ItemExistential(ref exist_ty) = self.cx.tcx.hir.expect_item(exist_ty_id.id).node {
for bound in &exist_ty.bounds {
if let GenericBound::Outlives(_) = *bound {
self.record(&None);
if let QPath::Resolved(_, ref path) = *path {
if let Def::Existential(def_id) = path.def {
let node_id = self.cx.tcx.hir.as_local_node_id(def_id).unwrap();
if let ItemExistential(ref exist_ty) = self.cx.tcx.hir.expect_item(node_id).node {
for bound in &exist_ty.bounds {
if let GenericBound::Outlives(_) = *bound {
self.record(&None);
}
}
} else {
unreachable!()
}
walk_ty(self, ty);
return;
}
}
self.collect_anonymous_lifetimes(path, ty);
}
TyTraitObject(ref bounds, ref lt) => {
if !lt.is_elided() {
Expand Down

0 comments on commit 28daee4

Please sign in to comment.