Skip to content

Commit 73cb823

Browse files
some improvements
1 parent ccdf4ae commit 73cb823

File tree

4 files changed

+68
-18
lines changed

4 files changed

+68
-18
lines changed

src/Cargo.lock

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -208,13 +208,14 @@ 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 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
211+
"lazycell 1.0.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)",
218219
"same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
219220
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
220221
"serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -243,6 +244,18 @@ dependencies = [
243244
"serde_json 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
244245
]
245246

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+
246259
[[package]]
247260
name = "cargotest2"
248261
version = "0.1.0"
@@ -629,6 +642,14 @@ dependencies = [
629642
"backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
630643
]
631644

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+
632653
[[package]]
633654
name = "error_index_generator"
634655
version = "0.0.0"
@@ -1011,7 +1032,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
10111032

10121033
[[package]]
10131034
name = "lazycell"
1014-
version = "0.6.0"
1035+
version = "1.0.0"
10151036
source = "registry+https://github.com/rust-lang/crates.io-index"
10161037

10171038
[[package]]
@@ -1216,12 +1237,13 @@ name = "miri"
12161237
version = "0.1.0"
12171238
dependencies = [
12181239
"byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
1219-
"cargo_metadata 0.5.8 (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)",
12201242
"compiletest_rs 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)",
12211243
"env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
12221244
"lazy_static 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
12231245
"log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
1224-
"regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
1246+
"regex 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
12251247
]
12261248

12271249
[[package]]
@@ -1361,7 +1383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
13611383
dependencies = [
13621384
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
13631385
"rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
1364-
"smallvec 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
1386+
"smallvec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
13651387
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
13661388
]
13671389

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

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+
23452379
[[package]]
23462380
name = "rustfmt-nightly"
23472381
version = "0.8.2"
@@ -2463,11 +2497,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
24632497

24642498
[[package]]
24652499
name = "smallvec"
2466-
version = "0.6.3"
2500+
version = "0.6.2"
24672501
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-
]
24712502

24722503
[[package]]
24732504
name = "socket2"
@@ -3034,6 +3065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
30343065
"checksum bufstream 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f382711e76b9de6c744cc00d0497baba02fb00a787f088c879f01d09468e32"
30353066
"checksum byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "74c0b906e9446b0a2e4f760cdb3fa4b2c48cdc6db8766a845c54b6ff063fd2e9"
30363067
"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"
30373069
"checksum cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "2119ea4867bd2b8ed3aecab467709720b2d55b1bcfe09f772fd68066eaf15275"
30383070
"checksum cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efe5c877e17a9c717a0bf3613b2709f723202c4e4675cc8f12926ded29bcb17e"
30393071
"checksum chalk-engine 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a146c19172c7eea48ea55a7123ac95da786639bc665097f1e14034ee5f1d8699"
@@ -3065,6 +3097,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
30653097
"checksum env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0e6e40ebb0e66918a37b38c7acab4e10d299e0463fe2af5d29b9cc86710cfd2a"
30663098
"checksum environment 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f4b14e20978669064c33b4c1e0fb4083412e40fe56cbea2eae80fd7591503ee"
30673099
"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"
30683101
"checksum failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "934799b6c1de475a012a02dab0ace1ace43789ee4b99bcfbf1a2e3e8ced5de82"
30693102
"checksum failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7cdda555bb90c9bb67a3b670a0f42de8e73f5981524123ad8578aafec8ddb8b"
30703103
"checksum filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "da4b9849e77b13195302c174324b5ba73eec9b236b24c221a61000daefb95c5f"
@@ -3103,7 +3136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
31033136
"checksum languageserver-types 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d91d91d1c23db74187096d191967cb49f49bb175ad6d855fa9229d16ef2c982"
31043137
"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
31053138
"checksum lazy_static 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fb497c35d362b6a331cfd94956a07fc2c78a4604cdbee844a81170386b996dd3"
3106-
"checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef"
3139+
"checksum lazycell 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d33a48d0365c96081958cc663eef834975cb1e8d8bea3378513fc72bdbf11e50"
31073140
"checksum libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1"
31083141
"checksum libgit2-sys 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "9dcce5a1ecca1891ab06c1545a422fd4b35f65c19acec51ea638c66d5be0810d"
31093142
"checksum libssh2-sys 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c628b499e8d1a4f4bd09a95d6cb1f8aeb231b46a9d40959bbd0408f14dd63adf"
@@ -3190,6 +3223,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
31903223
"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
31913224
"checksum rustc_version 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a54aa04a10c68c1c4eacb4337fd883b435997ede17a9385784b990777686b09a"
31923225
"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"
31933227
"checksum same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cfb6eded0b06a0b512c8ddbcf04089138c9b4362c2f696f3c3d76039d68f3637"
31943228
"checksum schannel 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "dc1fabf2a7b6483a141426e1afd09ad543520a77ac49bd03c286e7696ccfd77f"
31953229
"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
@@ -3203,7 +3237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
32033237
"checksum shell-escape 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "170a13e64f2a51b77a45702ba77287f5c6829375b04a69cf2222acd17d0cfab9"
32043238
"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
32053239
"checksum siphasher 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537"
3206-
"checksum smallvec 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "26df3bb03ca5eac2e64192b723d51f56c1b1e0860e7c766281f4598f181acdc8"
3240+
"checksum smallvec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "312a7df010092e73d6bbaf141957e868d4f30efd2bfd9bb1028ad91abec58514"
32073241
"checksum socket2 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "962a516af4d3a7c272cb3a1d50a8cc4e5b41802e4ad54cfb7bee8ba61d37d703"
32083242
"checksum stable_deref_trait 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbc596e092fe5f598b12ef46cc03754085ac2f4d8c739ad61c4ae266cc3b3fa"
32093243
"checksum string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423"

src/librustdoc/clean/auto_trait.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,11 @@ impl<'a, 'tcx, 'rcx> AutoTraitFinder<'a, 'tcx, 'rcx> {
9292
let mut traits = FxHashMap();
9393
if let ty::TyAdt(_adt, _) = ty.sty {
9494
let param_env = self.cx.tcx.param_env(def_id);
95-
for &trait_def_id in self.cx.tcx.all_traits(LOCAL_CRATE).iter() {
95+
match _adt.adt_kind() {
96+
AdtKind::Struct => println!("|||||> {}", self.cx.tcx.item_name(def_id).to_string()),
97+
_ => {}
98+
}
99+
for &trait_def_id in self.cx.all_traits.iter() {
96100
self.cx.tcx.for_each_relevant_impl(trait_def_id, ty, |impl_def_id| {
97101
self.cx.tcx.infer_ctxt().enter(|infcx| {
98102
let trait_ref = infcx.tcx.impl_trait_ref(impl_def_id).unwrap();
@@ -120,6 +124,7 @@ impl<'a, 'tcx, 'rcx> AutoTraitFinder<'a, 'tcx, 'rcx> {
120124
// FIXME: add crate's id before the name to avoid removing a
121125
// trait which doesn't exist.
122126
if traits.get(&trait_def_id).is_none() {
127+
println!("=> {}", infcx.tcx.item_name(trait_def_id).to_string());
123128
/*let generics = (infcx.tcx.generics_of(trait_def_id), &predicates).clean(cx);
124129
get_path_for_type(self.cx.tcx, trait_def_id, hir::def::Def::Trait)*/
125130
/*if let Some(i) = self.get_auto_trait_impl_for(
@@ -221,11 +226,11 @@ impl<'a, 'tcx, 'rcx> AutoTraitFinder<'a, 'tcx, 'rcx> {
221226
"get_auto_traits: type {:?} auto_traits {:?}",
222227
def_id, auto_traits
223228
);
224-
if ::std::env::var("LOL").is_ok() {
229+
/*if ::std::env::var("LOL").is_ok() {
225230
for x in &auto_traits {
226231
println!("\n=> {:?}", x);
227232
}
228-
}
233+
}*/
229234
auto_traits
230235
}
231236

src/librustdoc/core.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use rustc_lint;
1212
use rustc_driver::{self, driver, target_features, abort_on_err};
1313
use rustc::session::{self, config};
14-
use rustc::hir::def_id::{DefId, CrateNum};
14+
use rustc::hir::def_id::{DefId, CrateNum, LOCAL_CRATE};
1515
use rustc::hir::def::Def;
1616
use rustc::middle::cstore::CrateStore;
1717
use rustc::middle::privacy::AccessLevels;
@@ -84,6 +84,7 @@ pub struct DocContext<'a, 'tcx: 'a, 'rcx: 'a> {
8484
/// Maps (type_id, trait_id) -> auto trait impl
8585
pub generated_synthetics: RefCell<FxHashSet<(DefId, DefId)>>,
8686
pub current_item_name: RefCell<Option<Name>>,
87+
pub all_traits: Lrc<Vec<DefId>>,
8788
}
8889

8990
impl<'a, 'tcx, 'rcx> DocContext<'a, 'tcx, 'rcx> {
@@ -385,6 +386,7 @@ pub fn run_core(search_paths: SearchPaths,
385386
all_fake_def_ids: RefCell::new(FxHashSet()),
386387
generated_synthetics: RefCell::new(FxHashSet()),
387388
current_item_name: RefCell::new(None),
389+
all_traits: tcx.all_traits(LOCAL_CRATE),
388390
};
389391
debug!("crate: {:?}", tcx.hir.krate());
390392

src/librustdoc/html/render.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3585,11 +3585,11 @@ fn render_assoc_items(w: &mut fmt::Formatter,
35853585
None => return Ok(()),
35863586
};
35873587
let (non_trait, traits): (Vec<_>, _) = v.iter().partition(|i| {
3588-
if ::std::env::var("LOL").is_ok() {
3588+
/*if ::std::env::var("LOL").is_ok() {
35893589
if let Some(ref t) = i.inner_impl().trait_ {
35903590
println!("==> {:?}", t);
35913591
}
3592-
}
3592+
}*/
35933593
i.inner_impl().trait_.is_none()
35943594
});
35953595
if !non_trait.is_empty() {
@@ -3632,7 +3632,16 @@ fn render_assoc_items(w: &mut fmt::Formatter,
36323632

36333633
let (synthetic, concrete) = traits
36343634
.iter()
3635-
.partition::<Vec<_>, _>(|t| t.inner_impl().synthetic);
3635+
.partition::<Vec<&&Impl>, _>(|t| t.inner_impl().synthetic);
3636+
3637+
// ugly hacks to remove duplicates.
3638+
let synthetic = synthetic.into_iter()
3639+
.filter(|t| {
3640+
!concrete.iter()
3641+
.any(|tt| {
3642+
tt.inner_impl().trait_.def_id() == t.inner_impl().trait_.def_id()
3643+
})
3644+
}).collect::<Vec<_>>();
36363645

36373646
struct RendererStruct<'a, 'b, 'c>(&'a Context, Vec<&'b &'b Impl>, &'c clean::Item);
36383647

0 commit comments

Comments
 (0)