Commit graph

3182 commits

Author SHA1 Message Date
Guillaume Gomez
661c507a2e Rollup merge of #45849 - GuillaumeGomez:more-shortcut, r=QuietMisdreavus
Add "-" shortcut

Fixes #45847.

r? @Havvy
2017-11-08 10:09:18 +01:00
Guillaume Gomez
ac398a33a9 Add more elements in the sidebar 2017-11-07 23:45:06 +01:00
Guillaume Gomez
5e116985eb Add "-" shortcut 2017-11-07 22:44:18 +01:00
kennytm
4b2a5da8c9
Rollup merge of #45764 - QuietMisdreavus:rustdoc-doctest-lints, r=GuillaumeGomez
rustdoc: add #[allow(unused)] to every doctest

More information in #45750 - this is behavior that was documented but not actually implemented.

I also reordered how outer attributes are applied to doctests. Previously, attributes from `#![doc(test(attr(...)))]` would be applied *after* attributes from within the test itself, meaning if a doctest tried to override lints that would be set crate-wide, it wouldn't work at all. This gives a better scope of how lints can be applied.

Closes #45750
2017-11-07 22:40:16 +08:00
bors
3e7f501991 Auto merge of #45620 - ollie27:rustdoc_impl_generic_dupe, r=QuietMisdreavus
rustdoc: Fix duplicated impls with generics

The same type can appear multiple times in impls so we need to use a set
to avoid adding it multiple times.

Fixes: #45584
2017-11-07 07:24:13 +00:00
QuietMisdreavus
5abc524073 rustdoc: add #[allow(unused)] to every doctest
also modify the order crate attributes are applied, to have a better
order of how things can override lints, either per-crate or per-test
2017-11-05 09:30:00 -06:00
bors
94ede93467 Auto merge of #44042 - LukasKalbertodt:ascii-methods-on-instrinsics, r=alexcrichton
Copy all `AsciiExt` methods to the primitive types directly in order to deprecate it later

**EDIT:** [this PR is ready now](https://github.com/rust-lang/rust/pull/44042#issuecomment-333883548). I edited this post to reflect the current status of discussion, which is (apart from code review) pretty much settled.

---

This is my current progress in order to prepare stabilization of #39658. As discussed there (and in #39659), the idea is to deprecated `AsciiExt` and copy all methods to the type directly. Apparently there isn't really a reason to have those methods in an extension trait¹.

~~This is **work in progress**: copy&pasting code while slightly modifying the documentation isn't the most exciting thing to do. Therefore I wanted to already open this WIP PR after doing basically 1/4 of the job (copying methods to `&[u8]`, `char` and `&str` is still missing) to get some feedback before I continue. Some questions possibly worth discussing:~~

1. ~~Does everyone agree that deprecating `AsciiExt` is a good idea? Does everyone agree with the goal of this PR?~~ => apparently yes
2. ~~Are my changes OK so far? Did I do something wrong?~~
3. ~~The issue of the unstable-attribute is currently set to 0. I would wait until you say "Ok" to the whole thing, then create a tracking issue and then insert the correct issue id. Is that ok?~~
4. ~~I tweaked `eq_ignore_ascii_case()`: it now takes the argument `other: u8` instead of `other: &u8`. The latter was enforced by the trait. Since we're not bound to a trait anymore, we can drop the reference, ok?~~ => I reverted this, because the interface has to match the `AsciiExt` interface exactly.

¹ ~~Could it be that we can't write `impl [u8] {}`? This might be the reason for `AsciiExt`. If that is the case: is there a good reason we can't write such an impl block? What can we do instead?~~ => we couldn't at the time this PR was opened, but Simon made it possible.

/cc @SimonSapin @zackw
2017-11-05 11:42:59 +00:00
bors
dcd343bfbc Auto merge of #45617 - GuillaumeGomez:search-fixes, r=QuietMisdreavus
Search fixes

Fixes #45608.

r? @QuietMisdreavus
2017-11-04 12:54:34 +00:00
Lukas Kalbertodt
259c125267 Mark several ascii methods as unstable again
We don't want to stabilize them now already. The goal of this set of
commits is just to add inherent methods to the four types. Stabilizing
all of those methods can be done later.
2017-11-03 21:28:04 +01:00
Lukas Kalbertodt
da57580736 Remove unused AsciiExt imports and fix tests related to ascii methods
Many AsciiExt imports have become useless thanks to the inherent ascii
methods added in the last commits. These were removed. In some places, I
fully specified the ascii method being called to enforce usage of the
AsciiExt trait. Note that some imports are not removed but tagged with
a `#[cfg(stage0)]` attribute. This is necessary, because certain ascii
methods are not yet available in stage0. All those imports will be
removed later.

Additionally, failing tests were fixed. The test suite should exit
successfully now.
2017-11-03 21:27:40 +01:00
Lukas Kalbertodt
d425f8d226 Copy AsciiExt methods to char directly
This is done in order to deprecate AsciiExt eventually.
2017-11-03 21:27:40 +01:00
leonardo.yvens
37dfc0c598 Feature gate auto trait and ignore it in rustdoc 2017-11-03 16:13:21 -02:00
leonardo.yvens
06506bb751 [Syntax Breaking] Rename DefaultImpl to AutoImpl
DefaultImpl is a highly confusing name for what we now call auto impls,
as in `impl Send for ..`. The name auto impl is not formally decided
but for sanity anything is better than `DefaultImpl` which refers
neither to `default impl` nor to `impl Default`.
2017-11-03 16:13:20 -02:00
Guillaume Gomez
ee7e372bbf Remove duplicated results in the search 2017-11-01 13:41:43 +01:00
Guillaume Gomez
e8db5adcce fix function not appearing in first tab when appearing in another one. Thanks to @Seeker14491 for this one! 2017-11-01 13:41:43 +01:00
Guillaume Gomez
f6a546e14d Be more flexible when looking for something by using levenshtein method 2017-11-01 13:41:43 +01:00
Guillaume Gomez
6f21008aba Better check for returned value 2017-11-01 13:41:43 +01:00
Guillaume Gomez
56dbb3e32d Keep displaying good information when query is made 2017-11-01 13:41:43 +01:00
kennytm
07df45d363 Rollup merge of #45450 - GuillaumeGomez:overlap-link, r=QuietMisdreavus
Fix title heading overlap in rust doc

Fixes #45158.

To be noted that this margin only appears when a title is the first element.

<img width="1440" alt="screen shot 2017-10-22 at 16 08 44" src="https://user-images.githubusercontent.com/3050060/31862746-6411070e-b743-11e7-9a75-4159e1f7f1d6.png">

r? @rust-lang/docs
2017-11-01 13:32:08 +08:00
bors
fc3e12a03c Auto merge of #45187 - GuillaumeGomez:doc-ui-improvement, r=QuietMisdreavus
Improve sidebar rendering and add methods list

I suppose it can be reviewed as is, but this is just the first step of a more global plan.

cc @rust-lang/docs @nical

And a screenshot of course:

<img width="1440" alt="screen shot 2017-10-10 at 23 38 45" src="https://user-images.githubusercontent.com/3050060/31412170-657beaf6-ae14-11e7-9f01-1e562a034595.png">
2017-11-01 01:45:58 +00:00
Oliver Middleton
676b4bbdc4 rustdoc: Fix duplicated impls with generics
The same type can appear multiple times in impls so we need to use a set
to avoid adding it multiple times.
2017-10-29 18:21:20 +00:00
Guillaume Gomez
6fa521c491 Fix weird bugs 2017-10-28 17:24:09 +02:00
bors
dce604a8fe Auto merge of #44295 - plietar:extern-types, r=arielb1
Implement RFC 1861: Extern types

A few notes :

- Type parameters are not supported. This was an unresolved question from the RFC. It is not clear how useful this feature is, and how variance should be treated. This can be added in a future PR.

- `size_of_val` / `align_of_val` can be called with extern types, and respectively return 0 and 1. This differs from the RFC, which specified that they should panic, but after discussion with @eddyb on IRC this seems like a better solution.
If/when a `DynSized` trait is added, this will be disallowed statically.

- Auto traits are not implemented by default, since the contents of extern types is unknown. This means extern types are `!Sync`, `!Send` and `!Freeze`. This seems like the correct behaviour to me.
Manual `unsafe impl Sync for Foo` is still possible.

- This PR allows extern type to be used as the tail of a struct, as described by the RFC :
```rust
extern {
    type OpaqueTail;
}

#[repr(C)]
struct FfiStruct {
    data: u8,
    more_data: u32,
    tail: OpaqueTail,
}
```

However this is undesirable, as the alignment of `tail` is unknown (the current PR assumes an alignment of 1). Unfortunately we can't prevent it in the general case as the tail could be a type parameter :
```rust
#[repr(C)]
struct FfiStruct<T: ?Sized> {
    data: u8,
    more_data: u32,
    tail: T,
}
```

Adding a `DynSized` trait would solve this as well, by requiring tail fields to be bound by it.

- Despite being unsized, pointers to extern types are thin and can be casted from/to integers. However it is not possible to write a `null<T>() -> *const T` function which works with extern types, as I've explained here : https://github.com/rust-lang/rust/issues/43467#issuecomment-321678621

- Trait objects cannot be built from extern types. I intend to support it eventually, although how this interacts with `DynSized`/`size_of_val` is still unclear.

- The definition of `c_void` is unmodified
2017-10-28 13:34:12 +00:00
kennytm
b644339a16 Rollup merge of #45421 - QuietMisdreavus:update-pulldown, r=steveklabnik
rustdoc: update pulldown + fix spurious rendering difference around footnotes

fixes #45420
2017-10-28 15:56:19 +08:00
Guillaume Gomez
3dafd2c690 Encode urls 2017-10-27 23:09:18 +02:00
Guillaume Gomez
7bde591327 Change sidebar items order 2017-10-27 23:09:18 +02:00
Guillaume Gomez
8fb1250aba Improve sidebar rendering and add methods list 2017-10-27 23:09:18 +02:00
Paul Lietar
77f7e85d7f Implement RFC 1861: Extern types 2017-10-27 23:01:34 +02:00
bors
e847f30f57 Auto merge of #45532 - kennytm:rollup, r=kennytm
Rollup of 7 pull requests

- Successful merges: #45059, #45212, #45398, #45483, #45496, #45508, #45526
- Failed merges:
2017-10-25 22:21:44 +00:00
kennytm
fc48893845 Rollup merge of #45212 - GuillaumeGomez:sidebar-fixed, r=QuietMisdreavus
Limit the sidebar height

The sidebar is now fixed, which means its scrolling is independent of the main page now.

r? @rust-lang/docs
2017-10-26 03:02:49 +08:00
bors
f9d2416594 Auto merge of #44636 - GuillaumeGomez:little-error-msg, r=michaelwoerister
Add short error message-format

Fixes #42653.
2017-10-25 18:19:42 +00:00
Guillaume Gomez
deef11dd26 Show src button and function version on mobile version 2017-10-24 22:34:59 +02:00
Guillaume Gomez
9ce41f2544 Fix the sidebar height 2017-10-24 21:16:43 +02:00
bors
336624735c Auto merge of #44766 - sunjay:lift_generics, r=nikomatsakis
Move Generics from MethodSig to TraitItem and ImplItem

As part of `rust-impl-period/WG-compiler-traits`, we want to "lift" `Generics` from `MethodSig` into `TraitItem` and `ImplItem`. This is in preparation for adding associated type generics. (https://github.com/rust-lang/rust/issues/44265#issuecomment-331172238)

Currently this change is only made in the AST. In the future, it may also impact the HIR. (Still discussing)

To understand this PR, it's probably best to start from the changes to `ast.rs` and then work your way to the other files to understand the far reaching effects of this change.

r? @nikomatsakis
2017-10-24 01:20:09 +00:00
Guillaume Gomez
237ad82f3c Remove useless top margin on first heading 2017-10-22 16:11:07 +02:00
Guillaume Gomez
becd45be80 Fix title heading overlap in rust doc 2017-10-22 16:08:31 +02:00
QuietMisdreavus
af09ba82e0 change footnote anchor formats to fix spurious rendering differences 2017-10-21 15:00:26 -05:00
QuietMisdreavus
4fdd6299b0 rustdoc: update pulldown renderer
fixes #45420
2017-10-21 13:27:06 -05:00
Guillaume Gomez
83bca40350 Add short message-format 2017-10-20 16:04:32 +02:00
bors
95272a07f1 Auto merge of #45324 - GuillaumeGomez:switch-default-markdown-renderer, r=steveklabnik
Print rustdoc rendering warnings all the time

r? @rust-lang/dev-tools
2017-10-20 10:31:20 +00:00
bors
a651106ad0 Auto merge of #45288 - GuillaumeGomez:tab-key-binding, r=QuietMisdreavus
Save the highlighted item when switching tab

To be merged after #45281.

r? @rust-lang/docs
2017-10-19 23:55:20 +00:00
kennytm
6b505d6a3f Rollup merge of #45354 - cuviper:unit_doc, r=QuietMisdreavus
rustdoc: add a primitive page for "unit"

In `src/libstd/primitive_docs.rs`, a `#[doc(primitive = "unit")]`
section has sat long neglected.  This patch teaches rustdoc to recognize
"unit", and steals its trait implementations away from the tuple page.
2017-10-19 01:59:54 +08:00
kennytm
4913b92ff5 Rollup merge of #45281 - GuillaumeGomez:tab-selection, r=QuietMisdreavus
Save selected search tab

Fixes #45278.

r? @rust-lang/docs
2017-10-19 01:59:50 +08:00
kennytm
ebdfe338e5 Rollup merge of #44138 - steveklabnik:rustdoc-deprecations, r=QuietMisdreavus
Deprecate several flags in rustdoc

Part of #44136

cc @rust-lang/dev-tools @rust-lang/docs

This is a very basic PR to start deprecating some flags; `rustdoc` doesn't really have fancy output options like `rustc` does, so I went with `eprintln!`. Happy to change it if people feel that's not appropriate.

Also, I have no idea if we can or should write tests here, so I didn't try. If someone feels strongly about it, then let's do it, but given that the only outcome here is a side effect...
2017-10-19 01:59:44 +08:00
Josh Stone
9fda05c0bc rustdoc: add a primitive page for "unit"
In `src/libstd/primitive_docs.rs`, a `#[doc(primitive = "unit")]`
section has sat long neglected.  This patch teaches rustdoc to recognize
"unit", and steals its trait implementations away from the tuple page.
2017-10-17 23:03:50 -07:00
Sunjay Varma
b43db76d36 Fixing rustdoc 2017-10-17 22:14:14 -04:00
steveklabnik
aad8787586 Create a new flag, --document-private-items
Fixes #44136
2017-10-17 10:54:27 -04:00
steveklabnik
4adf6aed69 Deprecate several flags in rustdoc
Part of #44136

Upgrades cargo due to https://github.com/rust-lang/cargo/pull/4451
2017-10-17 10:54:27 -04:00
bors
0be6863a15 Auto merge of #45290 - GuillaumeGomez:fix-help, r=QuietMisdreavus
Hide help when search bar is focused

Fixes #45286

r? @rust-lang/docs
2017-10-17 12:18:25 +00:00
Guillaume Gomez
11b2b08ba9 Display rustdoc pulldown switch warnings everytime 2017-10-16 21:41:10 +02:00