Skip to content

Commit 54ea8eb

Browse files
Start of generic impl fix for rustdoc
1 parent 32772fd commit 54ea8eb

File tree

2 files changed

+35
-48
lines changed

2 files changed

+35
-48
lines changed

src/Cargo.lock

Lines changed: 11 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -208,14 +208,13 @@ dependencies = [
208208
"ignore 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
209209
"jobserver 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
210210
"lazy_static 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
211-
"lazycell 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
211+
"lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
212212
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
213213
"libgit2-sys 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)",
214214
"log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
215215
"miow 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
216216
"num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
217217
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
218-
"rustfix 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
219218
"same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
220219
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
221220
"serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -244,18 +243,6 @@ dependencies = [
244243
"serde_json 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
245244
]
246245

247-
[[package]]
248-
name = "cargo_metadata"
249-
version = "0.6.0"
250-
source = "registry+https://github.com/rust-lang/crates.io-index"
251-
dependencies = [
252-
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
253-
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
254-
"serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
255-
"serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
256-
"serde_json 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
257-
]
258-
259246
[[package]]
260247
name = "cargotest2"
261248
version = "0.1.0"
@@ -642,14 +629,6 @@ dependencies = [
642629
"backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
643630
]
644631

645-
[[package]]
646-
name = "error-chain"
647-
version = "0.12.0"
648-
source = "registry+https://github.com/rust-lang/crates.io-index"
649-
dependencies = [
650-
"backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
651-
]
652-
653632
[[package]]
654633
name = "error_index_generator"
655634
version = "0.0.0"
@@ -1032,7 +1011,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
10321011

10331012
[[package]]
10341013
name = "lazycell"
1035-
version = "1.0.0"
1014+
version = "0.6.0"
10361015
source = "registry+https://github.com/rust-lang/crates.io-index"
10371016

10381017
[[package]]
@@ -1237,13 +1216,12 @@ name = "miri"
12371216
version = "0.1.0"
12381217
dependencies = [
12391218
"byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
1240-
"cargo_metadata 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
1241-
"colored 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
1219+
"cargo_metadata 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
12421220
"compiletest_rs 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)",
12431221
"env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
12441222
"lazy_static 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
12451223
"log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
1246-
"regex 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1224+
"regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
12471225
]
12481226

12491227
[[package]]
@@ -1383,7 +1361,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
13831361
dependencies = [
13841362
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
13851363
"rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
1386-
"smallvec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
1364+
"smallvec 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
13871365
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
13881366
]
13891367

@@ -2364,18 +2342,6 @@ dependencies = [
23642342
"serde_json 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
23652343
]
23662344

2367-
[[package]]
2368-
name = "rustfix"
2369-
version = "0.4.0"
2370-
source = "registry+https://github.com/rust-lang/crates.io-index"
2371-
dependencies = [
2372-
"failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
2373-
"log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
2374-
"serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
2375-
"serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
2376-
"serde_json 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
2377-
]
2378-
23792345
[[package]]
23802346
name = "rustfmt-nightly"
23812347
version = "0.8.2"
@@ -2497,8 +2463,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
24972463

24982464
[[package]]
24992465
name = "smallvec"
2500-
version = "0.6.2"
2466+
version = "0.6.3"
25012467
source = "registry+https://github.com/rust-lang/crates.io-index"
2468+
dependencies = [
2469+
"unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
2470+
]
25022471

25032472
[[package]]
25042473
name = "socket2"
@@ -3065,7 +3034,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
30653034
"checksum bufstream 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f382711e76b9de6c744cc00d0497baba02fb00a787f088c879f01d09468e32"
30663035
"checksum byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "74c0b906e9446b0a2e4f760cdb3fa4b2c48cdc6db8766a845c54b6ff063fd2e9"
30673036
"checksum cargo_metadata 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1efca0b863ca03ed4c109fb1c55e0bc4bbeb221d3e103d86251046b06a526bd0"
3068-
"checksum cargo_metadata 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d6809b327f87369e6f3651efd2c5a96c49847a3ed2559477ecba79014751ee1"
30693037
"checksum cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "2119ea4867bd2b8ed3aecab467709720b2d55b1bcfe09f772fd68066eaf15275"
30703038
"checksum cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efe5c877e17a9c717a0bf3613b2709f723202c4e4675cc8f12926ded29bcb17e"
30713039
"checksum chalk-engine 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a146c19172c7eea48ea55a7123ac95da786639bc665097f1e14034ee5f1d8699"
@@ -3097,7 +3065,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
30973065
"checksum env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0e6e40ebb0e66918a37b38c7acab4e10d299e0463fe2af5d29b9cc86710cfd2a"
30983066
"checksum environment 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f4b14e20978669064c33b4c1e0fb4083412e40fe56cbea2eae80fd7591503ee"
30993067
"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
3100-
"checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02"
31013068
"checksum failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "934799b6c1de475a012a02dab0ace1ace43789ee4b99bcfbf1a2e3e8ced5de82"
31023069
"checksum failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7cdda555bb90c9bb67a3b670a0f42de8e73f5981524123ad8578aafec8ddb8b"
31033070
"checksum filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "da4b9849e77b13195302c174324b5ba73eec9b236b24c221a61000daefb95c5f"
@@ -3136,7 +3103,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
31363103
"checksum languageserver-types 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d91d91d1c23db74187096d191967cb49f49bb175ad6d855fa9229d16ef2c982"
31373104
"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
31383105
"checksum lazy_static 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fb497c35d362b6a331cfd94956a07fc2c78a4604cdbee844a81170386b996dd3"
3139-
"checksum lazycell 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d33a48d0365c96081958cc663eef834975cb1e8d8bea3378513fc72bdbf11e50"
3106+
"checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef"
31403107
"checksum libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1"
31413108
"checksum libgit2-sys 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "9dcce5a1ecca1891ab06c1545a422fd4b35f65c19acec51ea638c66d5be0810d"
31423109
"checksum libssh2-sys 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c628b499e8d1a4f4bd09a95d6cb1f8aeb231b46a9d40959bbd0408f14dd63adf"
@@ -3223,7 +3190,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
32233190
"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
32243191
"checksum rustc_version 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a54aa04a10c68c1c4eacb4337fd883b435997ede17a9385784b990777686b09a"
32253192
"checksum rustfix 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9da3cf9b79dc889a2c9879643f26d7a53e37e9361c7566b7d2787d5ace0d8396"
3226-
"checksum rustfix 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6e2613df31a403754605dba168ded93d529a2b88c5a63b78cf2421bb5d62c936"
32273193
"checksum same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cfb6eded0b06a0b512c8ddbcf04089138c9b4362c2f696f3c3d76039d68f3637"
32283194
"checksum schannel 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "dc1fabf2a7b6483a141426e1afd09ad543520a77ac49bd03c286e7696ccfd77f"
32293195
"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
@@ -3237,7 +3203,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
32373203
"checksum shell-escape 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "170a13e64f2a51b77a45702ba77287f5c6829375b04a69cf2222acd17d0cfab9"
32383204
"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
32393205
"checksum siphasher 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537"
3240-
"checksum smallvec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "312a7df010092e73d6bbaf141957e868d4f30efd2bfd9bb1028ad91abec58514"
3206+
"checksum smallvec 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "26df3bb03ca5eac2e64192b723d51f56c1b1e0860e7c766281f4598f181acdc8"
32413207
"checksum socket2 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "962a516af4d3a7c272cb3a1d50a8cc4e5b41802e4ad54cfb7bee8ba61d37d703"
32423208
"checksum stable_deref_trait 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbc596e092fe5f598b12ef46cc03754085ac2f4d8c739ad61c4ae266cc3b3fa"
32433209
"checksum string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423"

src/librustdoc/clean/auto_trait.rs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use rustc::traits::auto_trait as auto;
12-
use rustc::ty::TypeFoldable;
13-
use rustc::hir;
11+
use rustc::{self, hir};
12+
use rustc::traits::{self, auto_trait as auto};
13+
use rustc::ty::{ToPredicate, TypeFoldable};
1414
use std::fmt::Debug;
1515

1616
use super::*;
@@ -82,6 +82,27 @@ impl<'a, 'tcx, 'rcx> AutoTraitFinder<'a, 'tcx, 'rcx> {
8282
name: Option<String>,
8383
) -> Vec<Item>
8484
where F: Fn(DefId) -> Def {
85+
86+
if ::std::env::var("LOL").is_ok() {
87+
let ty = self.cx.tcx.type_of(def_id);
88+
if let ty::TyAdt(_adt, _) = ty.sty {
89+
let subts = ty::subst::Substs::identity_for_item(self.cx.tcx.clone(), def_id);
90+
self.cx.tcx.infer_ctxt().enter(|infcx| {
91+
for impl_ in infcx.tcx.all_trait_implementations(LOCAL_CRATE).iter() {
92+
let trait_ref = rustc::ty::TraitRef::new(*impl_, subts);
93+
let pred = trait_ref.to_predicate();
94+
let obligation = traits::Obligation::new(traits::ObligationCause::dummy(),
95+
rustc::ty::ParamEnv::empty(),
96+
pred);
97+
println!("{} => {}",
98+
infcx.tcx.item_name(*impl_).to_string(),
99+
infcx.predicate_may_hold(&obligation));
100+
}
101+
});
102+
}
103+
}
104+
//let res = self.cx.tcx.trait_impls_of(def_id);
105+
//println!("=> {:?} {:?}", res.blanket_impls.len(), res.non_blanket_impls.len());
85106
if self.cx
86107
.tcx
87108
.get_attrs(def_id)

0 commit comments

Comments
 (0)