Commit Graph

125650 Commits

Author SHA1 Message Date
Joshua Nelson
219e93d91e Use impls for intra doc links as well 2020-08-19 08:26:28 -04:00
Guillaume Gomez
46f2b410e0 Clean up E0759 explanation 2020-08-19 14:22:52 +02:00
Joshua Nelson
9cf2fa84e8 Allow reusing the code in collect_trait_impls 2020-08-19 08:18:25 -04:00
Joshua Nelson
06d6d3dff5 impl_for_type -> PrimitiveType::impls 2020-08-19 08:18:25 -04:00
Joshua Nelson
3ddd8b233c Return all impls, not just the primary one 2020-08-19 08:18:24 -04:00
Joshua Nelson
8a0aa7bd9d Say tcx.lang_items() less 2020-08-19 08:18:24 -04:00
Joshua Nelson
967ec1f623 Refactor impl_for_type into a separate function 2020-08-19 08:18:24 -04:00
bors
11a44adc6f Auto merge of #75600 - nagisa:improve_align_offset, r=KodrAus
Improve codegen for `align_offset`

In this PR the `align_offset` implementation is changed/improved to produce better code in certain scenarios such as when pointer type is has a stride of 1 or when building for low optimisation levels.

While these changes do not achieve the "ideal" codegen referenced in #75579, it gets significantly closer to it. I’m not actually sure if the codegen can actually be much better with this function returning the offset, rather than the aligned pointer.

See the descriptions for separate commits for further information.
2020-08-19 10:54:44 +00:00
Aleksey Kladov
34e7eac1ca Remove #[cfg(miri)] from OnceCell tests
They were carried over from once_cell crate, but they are not entirely
correct (as miri now supports more things), and we don't run miri
tests for std, so let's just remove them.

Maybe one day we'll run miri in std, but then we can just re-install
these attributes.
2020-08-19 10:28:22 +02:00
bors
5b04bbfcbb Auto merge of #75692 - JohnTitor:rollup-8gr04ah, r=JohnTitor
Rollup of 9 pull requests

Successful merges:

 - #75038 (See also X-Link mem::{swap, take, replace})
 - #75049 (docs(marker/copy): provide example for `&T` being `Copy`)
 - #75499 (Fix documentation error)
 - #75554 (Fix clashing_extern_declarations stack overflow for recursive types.)
 - #75646 (Move to intra doc links for keyword documentation)
 - #75652 (Resolve true and false as booleans)
 - #75658 (Don't emit "is not a logical operator" error outside of associative expressions)
 - #75665 (Add doc examples coverage)
 - #75685 (Switch to intra-doc links in /src/sys/unix/ext/*.rs)

Failed merges:

r? @ghost
2020-08-19 06:59:13 +00:00
Yuki Okushi
07ea340e89
Rollup merge of #75685 - nixphix:docs/unix-ext, r=jyn514
Switch to intra-doc links in /src/sys/unix/ext/*.rs

Partial fix for #75080

@rustbot modify labels: T-doc, A-intra-doc-links, T-rustdoc

r? @jyn514

These two links are not resolving to either `crate::fs::File...` or `fs::File...`
```
# unix/ext/fs.rs
   27:    /// [`File::read`]: ../../../../std/fs/struct.File.html#method.read

  130:   /// [`File::write`]: ../../../../std/fs/struct.File.html#method.write
```
2020-08-19 15:54:39 +09:00
Yuki Okushi
98f7d882c8
Rollup merge of #75665 - GuillaumeGomez:doc-examples-coverage, r=jyn514
Add doc examples coverage

r? @jyn514
2020-08-19 15:54:37 +09:00
Yuki Okushi
e6fe5232df
Rollup merge of #75658 - tgnottingham:issue-75599, r=estebank
Don't emit "is not a logical operator" error outside of associative expressions

Avoid showing this error where it doesn't make sense by not assuming
"and" and "or" were intended to mean "&&" and "||" until after we decide
to continue parsing input as an associative expression.

Note that the decision of whether or not to continue parsing input as an
associative expression doesn't actually depend on this assumption.

Fixes #75599

---

First time contributor! Let me know if there are any conventions or policies I should be following that I missed here. Thanks :)
2020-08-19 15:54:35 +09:00
Yuki Okushi
e6e917e12d
Rollup merge of #75652 - jyn514:true-false-2, r=GuillaumeGomez
Resolve true and false as booleans

Successor to https://github.com/rust-lang/rust/pull/75101.

r? @Manishearth
cc @rust-lang/rustdoc
2020-08-19 15:54:34 +09:00
Yuki Okushi
9cf390357b
Rollup merge of #75646 - poliorcetics:intra-links-keywords, r=jyn514
Move to intra doc links for keyword documentation

Helps with #75080.

@rustbot modify labels: T-doc, A-intra-doc-links, T-rustdoc
2020-08-19 15:54:32 +09:00
Yuki Okushi
e8d30bf542
Rollup merge of #75554 - jumbatm:fix-clashing-extern-decl-overflow, r=lcnr
Fix clashing_extern_declarations stack overflow for recursive types.

Fixes #75512.

Adds a seen set to `structurally_same_type` to avoid recursing indefinitely for types which contain values of the same type through a pointer or reference.
2020-08-19 15:54:30 +09:00
Yuki Okushi
ac264b53d1
Rollup merge of #75499 - jack-champagne:jack-champagne/issue-75412, r=Dylan-DPC
Fix documentation error

This should fix #75412. Just a quick >= to > sign replacement.
2020-08-19 15:54:28 +09:00
Yuki Okushi
1f4f31785e
Rollup merge of #75049 - janriemer:patch-1, r=poliorcetics
docs(marker/copy): provide example for `&T` being `Copy`

### Edited 2020-08-16 (most recent)
In the current documentation about the `Copy` marker trait, there is a section
with examples of structs that can implement `Copy`. Currently there is no example for
showing that shared references (`&T`) are also `Copy`.
It is worth to have a dedicated example for `&T` being `Copy`, because shared
references are an integral part of the language and it being `Copy` is not as
intuitive as other types that share this behaviour like `i32` or `bool`.

The example picks up on the previous non-`Copy` struct and shows that
structs can be `Copy`, even when they hold a shared reference to a non-`Copy` type.

-----------------------------------------
### Edited 2020-08-02, 3:28 p.m.
I've just realized that it says "in addition to the **implementors listed below**", which makes this PR kind of "wrong", because `&T` is indeed in the "implementors listed below".
Maybe we can instead show an example with `&T` in the [When can my type be Copy](https://doc.rust-lang.org/std/marker/trait.Copy.html#when-can-my-type-be-copy) section.

What I really want to achieve is that it becomes more obvious that `&T` is also `Copy`, because, I think, it is very valuable to know and it wasn't obvious for me, until I read something about it in a forum post.

What do you think? I would create another PR for that.
**Please feel free to close this PR.**

-----------------------------------
### Original post
In the current documentation about the `Copy` marker trait, there is a section
about "additional implementors", which list additional implementors of the `Copy` trait.
The fact that shared references are also `Copy` is mixed with another point,
which makes it hard to recognize and make it seem not as important.

This clarifies the fact that shared references are also `Copy`, by mentioning it as a
separate item in the list of "additional implementors".
2020-08-19 15:54:26 +09:00
Yuki Okushi
17d3ce457f
Rollup merge of #75038 - rust-lang:Havvy-patch-1, r=steveklabnik
See also X-Link mem::{swap, take, replace}

Since it's easy to end up at one of these functions when you really wanted the other one, cross link them with descriptions of why you'd want to use them.
2020-08-19 15:54:24 +09:00
Surya Midatala
632db79ad6 Apply suggestions from code review 2020-08-19 10:29:31 +05:30
Rich Kadel
d129ac2655 Moved coverage counter injection from BasicBlock to Statement. 2020-08-18 21:06:45 -07:00
bors
c03c213daf Auto merge of #75677 - cuviper:shrink-towel, r=Mark-Simulacrum
Don't panic in Vec::shrink_to_fit

We can help the compiler see that `Vec::shrink_to_fit` will never reach the panic case in `RawVec::shrink_to_fit`, just by guarding the call only for cases where the capacity is strictly greater. A capacity less than the length is only possible through an unsafe call to `set_len`, which would break the `Vec` invariants, so `shrink_to_fit` can just ignore that.

This removes the panicking code from the examples in both #71861 and #75636.
2020-08-19 02:56:59 +00:00
bors
1656582822 Auto merge of #75555 - workingjubilee:update-everything, r=Mark-Simulacrum
Cargo update (almost) all the things!

This runs `cargo update` on our dependency tree, bumping numerous crates. See details in the first commit of this PR.

Several updates were held back intentionally; version_check in particular landed a change in behavior in 0.9.2 (arguably a bug fix, but still will be split into a separate PR).
2020-08-19 01:02:19 +00:00
Prabakaran Kumaresshan
63d2e9b05f resolve comments 2020-08-19 06:19:35 +05:30
Prabakaran Kumaresshan
3e3a2c82f3 Switch to intra-doc links in /src/sys/unix/ext/*.rs 2020-08-19 05:43:55 +05:30
Tomasz Miąsko
6a80b1387f Enable stack-overflow detection on musl for non-main threads 2020-08-19 00:00:00 +00:00
bors
30f0a07684 Auto merge of #75516 - matklad:remove-deprecation, r=petrochenkov
Promote missing_fragment_specifier to hard error

It has been deny_by_default since 2017 (and warned for some time
before that), so it seems reasonable to promote it.

The specific technical motivation to do this now is to remove a field
from `ParseSess` -- it is a global state, and global state makes
extracting libraries annoying.

Closes #40107
2020-08-18 20:51:22 +00:00
Bastian Kauschke
7542615c21 change const param ty warning message 2020-08-18 22:44:06 +02:00
Bastian Kauschke
6ad01e9932 run wfcheck in parralel again, add test for 74950 2020-08-18 22:14:40 +02:00
Bastian Kauschke
70dfe3fa74 move const param structural match checks to wfcheck 2020-08-18 22:14:40 +02:00
Tomasz Miąsko
8c40426051 Fix asm compiler flags change from cmake 0.1.44
cmake-rs@8141f0e changed the logic for handling asm compiler flags.
This change was pulled in with the cmake 0.1.42 -> 0.1.44 update.

This introduced two new flags to the LLVM build, breaking it:
"-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64"
"-DCMAKE_ASM_COMPILER=/usr/bin/cc"

This patch should resolve the breakage by handling it in bootstrap.
2020-08-18 12:58:19 -07:00
Tyson Nottingham
ff73a40995 Don't emit "is not a logical operator" error outside of associative expressions
Avoid showing this error where it doesn't make sense by not assuming
"and" and "or" were intended to mean "&&" and "||" until after we decide
to continue parsing input as an associative expression.

Note that the decision of whether or not to continue parsing input as an
associative expression doesn't actually depend on this assumption.

Fixes #75599
2020-08-18 12:15:57 -07:00
Josh Stone
7551f3fbbd Don't panic in Vec::shrink_to_fit 2020-08-18 11:45:40 -07:00
bors
be97d13ffc Auto merge of #75657 - TimDiekmann:allocref-cleanup, r=Amanieu
Clean up AllocRef implementation and documentation

r? @Amanieu
2020-08-18 18:43:50 +00:00
Alexis Bourget
5d49c0e55a Move to intra doc links for std::io 2020-08-18 19:36:52 +02:00
Jan Riemer
522d177f34 docs: add another derive for Copyable struct
This adds another `derive` for a `Copy`able struct, so that we are
consistent with `derive` annotations.
2020-08-18 18:40:19 +02:00
bors
b287b56f97 Auto merge of #75635 - Aaron1011:fix/incr-fn-param-names, r=eddyb
Don't use `dep_graph.with_ignore` when encoding fn param names

The call to `with_ignore` was added years ago, and should no longer be
necessary with the modern incremental query infrastructure.

I also removed a related FIXME comment for issue #38501, which was
closed months ago.
2020-08-18 16:18:07 +00:00
Surya Midatala
11f69796ee Move to intra-doc links for task.rs and vec.rs 2020-08-18 21:47:23 +05:30
Jubilee Young
25441fb60a Downgrade version_check 0.9.2 -> 0.9.1
0.9.2 is a breaking change to the #[cfg(version)] test in
src/test/ui/feature-gates/feature-gate-config-version.*
Let's downgrade for now.
2020-08-18 10:27:13 -04:00
Jubilee Young
8f5ea8083d Resolve licensing by updating tinyvec 0.3.3 -> 0.3.4
Per https://github.com/rust-lang/rust/pull/75555#issuecomment-675090858
Zlib license might be OK. "OR Apache-2.0 OR MIT" definitely is.
unicode-normalization depends on this and rustc_parse, clippy,
and many other things depend on unicode-normalization.
2020-08-18 10:27:13 -04:00
Mark Rousskov
4b9675fb05 Update license check post-cargo update 2020-08-18 10:27:13 -04:00
Mark Rousskov
342d956749 Update dependencies
This runs cargo update, applying the following changes:
      Adding arrayref v0.3.6
      Adding base64 v0.11.0
      Adding blake2b_simd v0.5.10
      Adding cloudabi v0.1.0
      Adding crossbeam-queue v0.2.3
      Adding instant v0.1.6
      Adding lock_api v0.4.1
      Adding maybe-uninit v2.0.0
      Adding parking_lot_core v0.7.2
      Adding parking_lot_core v0.8.0
      Adding parking_lot v0.11.0
      Adding proc-macro-error-attr v1.0.4
      Adding quick-error v2.0.0
      Adding rust-argon2 v0.7.0
      Adding signal-hook-registry v1.2.1
      Adding smallvec v0.6.13
      Adding smallvec v1.4.2
      Adding tinyvec v0.3.3
    Removing argon2rs v0.2.5
    Removing arrayvec v0.4.7
    Removing blake2-rfc v0.2.18
    Removing fuchsia-cprng v0.1.1
    Removing nodrop v0.1.12
    Removing parking_lot_core v0.7.1
    Removing rand_core v0.3.0
    Removing rand_core v0.4.0
    Removing rand_os v0.1.3
    Removing rdrand v0.4.0
    Removing scoped_threadpool v0.1.9
    Removing signal-hook v0.1.7
    Removing smallvec v0.6.10
    Removing smallvec v1.4.0
    Updating aho-corasick v0.7.10 -> v0.7.13
    Updating anyhow v1.0.31 -> v1.0.32
    Updating arc-swap v0.3.7 -> v0.4.7
    Updating bitmaps v2.0.0 -> v2.1.0
    Updating bstr v0.1.3 -> v0.2.13
    Updating byteorder v1.3.2 -> v1.3.4
    Updating bytesize v1.0.0 -> v1.0.1
    Updating bytes v0.4.11 -> v0.4.12
    Updating cargo_metadata v0.8.0 -> v0.8.2
    Updating chrono v0.4.6 -> v0.4.15
    Updating clap v2.33.0 -> v2.33.3
    Updating cmake v0.1.42 -> v0.1.44
    Updating constant_time_eq v0.1.3 -> v0.1.5
    Updating crossbeam-channel v0.4.0 -> v0.4.3
    Updating crossbeam-deque v0.7.1 -> v0.7.3
    Updating crossbeam-epoch v0.7.2 -> v0.8.2
    Updating crossbeam-utils v0.6.5 -> v0.6.6
    Updating crypto-hash v0.3.1 -> v0.3.4
    Updating ctor v0.1.13 -> v0.1.15
    Updating curl-sys v0.4.25 -> v0.4.34+curl-7.71.1
    Updating curl v0.4.25 -> v0.4.31
    Updating derive_more v0.99.2 -> v0.99.9
    Updating diff v0.1.11 -> v0.1.12
    Updating directories v2.0.1 -> v2.0.2
    Updating dirs-sys v0.3.3 -> v0.3.5
    Updating dirs v2.0.1 -> v2.0.2
    Updating either v1.5.0 -> v1.6.0
    Updating failure v0.1.5 -> v0.1.8
    Updating filetime v0.2.9 -> v0.2.12
    Updating fnv v1.0.6 -> v1.0.7
    Updating fortanix-sgx-abi v0.3.2 -> v0.3.3
    Updating fst v0.3.0 -> v0.3.5
    Updating futures v0.1.28 -> v0.1.29
    Updating git2 v0.13.5 -> v0.13.8
    Updating globset v0.4.3 -> v0.4.5
    Updating handlebars v3.0.1 -> v3.4.0
    Updating heck v0.3.0 -> v0.3.1
    Updating hex v0.4.0 -> v0.4.2
    Updating home v0.5.1 -> v0.5.3
    Updating humantime v2.0.0 -> v2.0.1
    Updating ignore v0.4.11 -> v0.4.16
    Updating itertools v0.8.0 -> v0.8.2
    Updating itoa v0.4.4 -> v0.4.6
    Updating jemalloc-sys v0.3.0 -> v0.3.2
    Updating jsonrpc-client-transports v14.0.5 -> v14.2.1
    Updating jsonrpc-core-client v14.0.5 -> v14.2.0
    Updating jsonrpc-core v14.0.5 -> v14.2.0
    Updating jsonrpc-derive v14.0.5 -> v14.2.1
    Updating jsonrpc-pubsub v14.0.6 -> v14.2.0
    Updating jsonrpc-server-utils v14.0.5 -> v14.2.0
    Updating json v0.11.13 -> v0.11.15
    Updating lazycell v1.2.1 -> v1.3.0
    Updating libgit2-sys v0.12.7+1.0.0 -> v0.12.9+1.0.1
    Updating libnghttp2-sys v0.1.2 -> v0.1.4+1.41.0
    Updating libssh2-sys v0.2.14 -> v0.2.18
    Updating libz-sys v1.0.25 -> v1.0.27
    Updating linked-hash-map v0.5.2 -> v0.5.3
    Updating log v0.4.8 -> v0.4.11
    Updating lzma-sys v0.1.14 -> v0.1.16
    Updating macro-utils v0.1.2 -> v0.1.3
    Updating maplit v1.0.1 -> v1.0.2
    Updating mdbook v0.4.0 -> v0.4.2
    Updating memoffset v0.5.1 -> v0.5.5
    Updating mio-named-pipes v0.1.6 -> v0.1.7
    Updating mio-uds v0.6.7 -> v0.6.8
    Updating mio v0.6.16 -> v0.6.22
    Updating miow v0.3.3 -> v0.3.5
    Updating net2 v0.2.33 -> v0.2.34
    Updating new_debug_unreachable v1.0.3 -> v1.0.4
    Updating num_cpus v1.10.1 -> v1.13.0
    Updating num-integer v0.1.39 -> v0.1.43
    Updating num-traits v0.2.6 -> v0.2.12
    Updating once_cell v1.1.0 -> v1.4.0
    Updating opener v0.4.0 -> v0.4.1
    Updating openssl-src v111.9.0+1.1.1g -> v111.10.2+1.1.1g
    Updating openssl-sys v0.9.54 -> v0.9.58
    Updating openssl v0.10.25 -> v0.10.30
    Updating open v1.2.1 -> v1.4.0
    Updating packed_simd v0.3.1 -> v0.3.3
    Updating pest v2.1.0 -> v2.1.3
    Updating pkg-config v0.3.17 -> v0.3.18
    Updating proc-macro2 v1.0.3 -> v1.0.19
    Updating proc-macro-crate v0.1.4 -> v0.1.5
    Updating proc-macro-error v0.2.6 -> v1.0.4
    Updating psm v0.1.10 -> v0.1.11
    Updating pulldown-cmark v0.7.1 -> v0.7.2
    Updating punycode v0.4.0 -> v0.4.1
    Updating quote v1.0.2 -> v1.0.7
    Updating rayon-core v1.6.0 -> v1.7.1
    Updating rayon v1.2.0 -> v1.3.1
    Updating redox_syscall v0.1.56 -> v0.1.57
    Updating redox_users v0.3.0 -> v0.3.4
    Updating regex-syntax v0.6.17 -> v0.6.18
    Updating regex v1.3.7 -> v1.3.9
    Updating remove_dir_all v0.5.2 -> v0.5.3
    Updating rustfix v0.5.0 -> v0.5.1
    Updating ryu v1.0.0 -> v1.0.5
    Updating same-file v1.0.4 -> v1.0.6
    Updating schannel v0.1.16 -> v0.1.19
    Updating scopeguard v1.0.0 -> v1.1.0
    Updating serde_derive v1.0.106 -> v1.0.115
    Updating serde_ignored v0.1.0 -> v0.1.2
    Updating serde_json v1.0.40 -> v1.0.57
    Updating serde_repr v0.1.5 -> v0.1.6
    Updating serde v1.0.99 -> v1.0.115
    Updating shell-escape v0.1.4 -> v0.1.5
    Updating stable_deref_trait v1.1.0 -> v1.2.0
    Updating stacker v0.1.9 -> v0.1.11
    Updating structopt-derive v0.3.1 -> v0.4.9
    Updating structopt v0.3.1 -> v0.3.16
    Updating synstructure v0.12.1 -> v0.12.4
    Updating syn v1.0.11 -> v1.0.38
    Updating tar v0.4.26 -> v0.4.29
    Updating tendril v0.4.0 -> v0.4.1
    Updating term v0.6.0 -> v0.6.1
    Updating thiserror-impl v1.0.5 -> v1.0.20
    Updating thiserror v1.0.5 -> v1.0.20
    Updating time v0.1.42 -> v0.1.43
    Updating tokio-codec v0.1.1 -> v0.1.2
    Updating tokio-current-thread v0.1.6 -> v0.1.7
    Updating tokio-executor v0.1.9 -> v0.1.10
    Updating tokio-fs v0.1.6 -> v0.1.7
    Updating tokio-io v0.1.12 -> v0.1.13
    Updating tokio-process v0.2.4 -> v0.2.5
    Updating tokio-reactor v0.1.11 -> v0.1.12
    Updating tokio-signal v0.2.7 -> v0.2.9
    Updating tokio-sync v0.1.7 -> v0.1.8
    Updating tokio-tcp v0.1.3 -> v0.1.4
    Updating tokio-threadpool v0.1.17 -> v0.1.18
    Updating tokio-timer v0.2.12 -> v0.2.13
    Updating tokio-udp v0.1.5 -> v0.1.6
    Updating tokio-uds v0.2.5 -> v0.2.7
    Updating toml v0.5.3 -> v0.5.6
    Updating tracing-attributes v0.1.9 -> v0.1.10
    Updating tracing-core v0.1.12 -> v0.1.14
    Updating tracing-subscriber v0.2.10 -> v0.2.11
    Updating tracing v0.1.18 -> v0.1.19
    Updating ucd-parse v0.1.4 -> v0.1.8
    Updating ucd-trie v0.1.1 -> v0.1.3
    Updating unicode-normalization v0.1.12 -> v0.1.13
    Updating unicode-script v0.5.1 -> v0.5.2
    Updating unicode-width v0.1.6 -> v0.1.8
    Updating unicode-xid v0.2.0 -> v0.2.1
    Updating url v2.1.0 -> v2.1.1
    Updating utf-8 v0.7.2 -> v0.7.5
    Updating vcpkg v0.2.8 -> v0.2.10
    Updating vec_map v0.8.1 -> v0.8.2
    Updating version_check v0.9.1 -> v0.9.2
    Updating walkdir v2.2.7 -> v2.3.1
    Updating winapi v0.3.8 -> v0.3.9
    Updating xz2 v0.1.5 -> v0.1.6
    Updating yaml-merge-keys v0.4.0 -> v0.4.1
    Updating yaml-rust v0.4.3 -> v0.4.4
2020-08-18 10:27:13 -04:00
bors
a45dedf3d0 Auto merge of #75639 - RalfJung:miri, r=RalfJung
update miri

Fixes https://github.com/rust-lang/rust/issues/75630
Cc @rust-lang/miri r? @ghost
2020-08-18 14:23:22 +00:00
Oliver Scherer
f0bae6726f Typo 2020-08-18 15:23:45 +02:00
Tim Diekmann
63d241a7b7 Make grow_impl unsafe 2020-08-18 15:22:10 +02:00
Guillaume Gomez
f957bae74e Update rustdoc-ui tests 2020-08-18 14:32:15 +02:00
bors
2c3dc04ea4 Auto merge of #75663 - Xanewok:update-rls, r=Mark-Simulacrum
Use git for Rustfmt dependency of RLS

Closes #75442

r? @Mark-Simulacrum

cc @calebcartwright for changed rustfmt dep kind
2020-08-18 12:29:50 +00:00
Oliver Scherer
acad5744cc Elaborate docs on the promoted_mir query 2020-08-18 14:18:45 +02:00
Oliver Scherer
39a114e400 Explain why we are creating an aggregate constant 2020-08-18 13:57:32 +02:00
Oliver Scherer
03d38d42b7 Address review comments 2020-08-18 13:46:11 +02:00