Commit Graph

107616 Commits

Author SHA1 Message Date
Guillaume Gomez
78e4bd1c75 Clean up E0367 explanation 2020-02-23 12:02:32 +01:00
bors
9c230f39c1 Auto merge of #69336 - Mark-Simulacrum:no-infra-toolstate, r=Dylan-DPC
Do not ping the infrastructure team on toolstate changes

To my knowledge, there is essentially never any particular action that the infra team needs to take on these pings, and they are currently relatively annoying.

cc rust-lang/infra -- does anyone *want* these notifications?
2020-02-23 09:40:18 +00:00
Dylan DPC
d6414f5f8c
Rollup merge of #69376 - petrochenkov:bumpwith, r=Centril
parser: Cleanup `Parser::bump_with` and its uses

Follow-up to https://github.com/rust-lang/rust/pull/69006.
r? @Centril
2020-02-23 09:57:45 +01:00
Dylan DPC
bdd275de2a
Rollup merge of #69375 - Menschenkindlein:master, r=Dylan-DPC
Rename CodeMap to SourceMap follow up

See https://github.com/rust-lang/rust/issues/51574
2020-02-23 09:57:44 +01:00
Dylan DPC
ae50725dc3
Rollup merge of #69361 - Centril:free-ty-alias, r=petrochenkov
parse: allow `type Foo: Ord` syntactically

This addresses:
> (Work still remains to fuse this with free type aliases, but this can be done later.)

in https://github.com/rust-lang/rust/pull/69194.

r? @petrochenkov
2020-02-23 09:57:43 +01:00
Dylan DPC
cec00033a7
Rollup merge of #69351 - mati865:mingw-ultimate-fix, r=cramertj
Improve external MinGW detection

Fixes #68872
2020-02-23 09:57:40 +01:00
Dylan DPC
b76099429b
Rollup merge of #69336 - Mark-Simulacrum:no-infra-toolstate, r=Dylan-DPC
Do not ping the infrastructure team on toolstate changes

To my knowledge, there is essentially never any particular action that the infra team needs to take on these pings, and they are currently relatively annoying.

cc rust-lang/infra -- does anyone *want* these notifications?
2020-02-23 09:57:38 +01:00
bors
1484196358 Auto merge of #69334 - Centril:nested-item-vis-def, r=petrochenkov
print vis & defaultness for nested items

Fixes https://github.com/rust-lang/rust/issues/69315 which was injected by https://github.com/rust-lang/rust/pull/69194.

r? @petrochenkov
cc @alexcrichton
2020-02-23 06:27:07 +00:00
memoryruins
ad47bf50f6 Add rustdoc aliases to ptr::copy and ptr::copy_nonoverlapping 2020-02-22 22:25:47 -05:00
Tomasz Miąsko
d78b22f35e Mark attributes consumed by check_mod_attrs as normal
Take advantage of the fact that `check_mod_attrs` marks attributes as
used and change their type to normal, so that any remaining uses will be
warned about by the unused attribute lint.
2020-02-23 00:00:00 +00:00
Jane Lusby
09bc5e3d96 rustfmt darnit 2020-02-22 15:29:03 -08:00
Jane Lusby
40c67221e2 make doc comments regular comments 2020-02-22 15:13:22 -08:00
Daniel Henry-Mantilla
2cf339aeda Fix doc example for MaybeUninit::get_mut()
Suggested by @ametisf in https://github.com/rust-lang/rust/pull/65948#issuecomment-589988183

Co-Authored-By: Frantisek Fladung <fladufra@fel.cvut.cz>
2020-02-22 23:19:05 +01:00
Mark Mansi
9434d6b67f update some tests 2020-02-22 16:14:14 -06:00
ridiculousfish
9e41c4b682 Relax str::get_unchecked precondition to permit empty slicing
Prior to this commit, `str` documented that `get_unchecked` had
the precondition that "`begin` must come before `end`". This would appear
to prohibit empty slices (i.e. begin == end).

In practice, get_unchecked is called often with empty slices. Let's relax
the precondition so as to allow them.
2020-02-22 13:30:54 -08:00
John Ericson
03ca0e2706 Allow getting no_std from the config file
Currently, it is only set correctly in the sanity checking implicit
default fallback code. Having a config file at all will for force
`no_std = false`.
2020-02-22 15:23:15 -05:00
mark
7a6361f465 remove unneeded fn 2020-02-22 13:17:04 -06:00
mark
9207a13bfc get rid of lazy 2020-02-22 13:17:04 -06:00
mark
74360571e9 address some review comments/bugs 2020-02-22 13:17:04 -06:00
Mark Mansi
c6781037eb article and descr for closures 2020-02-22 13:17:04 -06:00
Mark Mansi
66500effea add generator_kind query 2020-02-22 13:17:03 -06:00
Mark Mansi
245062cdcd some fixes 2020-02-22 13:11:15 -06:00
Mark Mansi
4d22e757cd minor cleanup 2020-02-22 13:11:15 -06:00
Mark Mansi
7f7709e3d4 Generalized article_and_description 2020-02-22 13:11:15 -06:00
bors
436494b8f8 Auto merge of #69358 - ehuss:update-cargo, r=ehuss
Update cargo

11 commits in e02974078a692d7484f510eaec0e88d1b6cc0203..e57bd02999c9f40d52116e0beca7d1dccb0643de
2020-02-18 15:24:43 +0000 to 2020-02-21 20:20:10 +0000
- fix most remaining clippy findings (mostly redundant imports) (rust-lang/cargo#7912)
- Add -Zfeatures tracking issues. (rust-lang/cargo#7917)
- Use rust-lang/rust linkchecker on CI. (rust-lang/cargo#7913)
- Clean up code mostly based on clippy suggestions (rust-lang/cargo#7911)
- Add an option to include crate versions to the generated docs (rust-lang/cargo#7903)
- Better support for license-file. (rust-lang/cargo#7905)
- Add new feature resolver. (rust-lang/cargo#7820)
- Switch azure to macOS 10.15. (rust-lang/cargo#7906)
- Modified the help information of cargo-rustc (rust-lang/cargo#7892)
- Update for nightly rustfmt. (rust-lang/cargo#7904)
- Support `--config path_to_config.toml` cli syntax. (rust-lang/cargo#7901)
2020-02-22 18:07:03 +00:00
Jane Lusby
494dd0b719 Remove trait 2020-02-22 08:28:56 -08:00
jumbatm
a796af7a76 Fail on multiple declarations of main.
Previously, when inserting the entry function, we only checked for
duplicate _definitions_ of `main`.  However, it's possible to cause
problems even only having a duplicate _declaration_. For example,
shadowing `main` using an extern block isn't caught by the current
check, and causes an assertion failure down the line in in LLVM code.
2020-02-23 02:06:11 +10:00
bors
3eeefc21f1 Auto merge of #69374 - Dylan-DPC:rollup-x7mjd5z, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #68984 (Make `u8::is_ascii` a stable `const fn`)
 - #69339 (Add test for #69312)
 - #69346 (Clean up E0323, E0324, E0325 and E0326 explanations)
 - #69348 (Wrong error message for move_ref_pattern)
 - #69349 (MIR is not an experiment anymore)
 - #69354 (Test `Duration::new` panics on overflow)
 - #69370 (move const_eval.rs into the module folder)

Failed merges:

r? @ghost
2020-02-22 14:36:14 +00:00
Vadim Petrochenkov
4356d18e4a parser: Cleanup Parser::bump_with and its uses 2020-02-22 17:28:10 +03:00
Maxim Zholobak
20c9a40fec Rename CodeMap to SourceMap follow up 2020-02-22 16:17:31 +02:00
Dylan DPC
e5fb1291a0
Rollup merge of #69370 - RalfJung:const-eval-mod, r=oli-obk
move const_eval.rs into the module folder

This groups the file together with the other `const_eval` files in editors, diff views, etc.

r? @oli-obk
2020-02-22 18:43:08 +05:30
Dylan DPC
4f71270d7b
Rollup merge of #69354 - MichaelMcDonnell:duration_overflow_test, r=Centril
Test `Duration::new` panics on overflow

A `Duration` is created from a second and nanoseconds variable. The
documentation says: "This constructor will panic if the carry from the
nanoseconds overflows the seconds counter". This was, however, not tested
in the tests. I doubt the behavior will ever regress, but it is usually a
good idea to test all documented behavior.
2020-02-22 18:43:07 +05:30
Dylan DPC
541b407c14
Rollup merge of #69349 - spastorino:mir-not-an-experiment, r=Dylan-DPC
MIR is not an experiment anymore

At least I hope is not 😝

r? @oli-obk
2020-02-22 18:43:05 +05:30
Dylan DPC
8ab4060057
Rollup merge of #69348 - LeSeulArtichaut:patch-1, r=Centril
Wrong error message for move_ref_pattern

The current error message states that move occurs *because of `Copy`*:
```Rust
"move occurs because `{}` has type `{}` which does implement the `Copy` trait."
```
I found this randomly when surfing through the sources. This means, I don't have any context and might be completely wrong.

r? @Centril
2020-02-22 18:43:04 +05:30
Dylan DPC
1cb9fb5e16
Rollup merge of #69346 - GuillaumeGomez:clean-up-e032x-explanations, r=Dylan-DPC
Clean up E0323, E0324, E0325 and E0326 explanations

r? @Dylan-DPC
2020-02-22 18:43:03 +05:30
Dylan DPC
3d9b68a5c3
Rollup merge of #69339 - wesleywiser:test_for_69312, r=Centril
Add test for #69312

This bug was fixed by #67501.

Closes #69312
2020-02-22 18:43:01 +05:30
Dylan DPC
c261ff1a77
Rollup merge of #68984 - ecstatic-morse:const-u8-is-ascii, r=sfackler
Make `u8::is_ascii` a stable `const fn`

`char::is_ascii` was already stabilized as `const fn` in #55278, so there is no reason for `u8::is_ascii` to go through an unstable period.

cc @rust-lang/libs
2020-02-22 18:42:59 +05:30
varkor
bead79ebc6 Add note regarding argument ordering 2020-02-22 11:34:29 +00:00
varkor
e372ad4800 Expand the documentation for E0747 2020-02-22 11:34:29 +00:00
varkor
76fb26b8c2 Add invalid argument spans to GenericArgCountMismatch 2020-02-22 11:34:29 +00:00
Ralf Jung
88d6ab84c9 move const_eval.rs into the module folder 2020-02-22 12:24:05 +01:00
bors
07534591ff Auto merge of #69333 - ecstatic-morse:revert-simd-shuffle, r=petrochenkov
Revert #69280

Resolves #69313 by reverting #69280.

After #69280, `#[rustc_args_required_const(2)]` is required on the declaration of `simd_shuffle` intrinsics. This is allowed breakage, since you can't define platform intrinsics on stable. However, the latest release of the widely used `packed_simd` crate defines these intrinsics without the requisite attribute. Since there's no urgency to merge #69280, let's revert it. We can reconsider when rust-lang/packed_simd#278 is included in a point release of `packed_simd`.

r? @petrochenkov
2020-02-22 11:11:47 +00:00
bors
03d2f5cd6c Auto merge of #69332 - nnethercote:revert-u8to64_le-changes, r=michaelwoerister
Revert `u8to64_le` changes from #68914.

`SipHasher128`'s `u8to64_le` function was simplified in #68914.
Unfortunately, the new version is slower, because it introduces `memcpy`
calls with non-statically-known lengths.

This commit reverts the change, and adds an explanatory comment (which
is also added to `libcore/hash/sip.rs`). This barely affects
`SipHasher128`'s speed because it doesn't use `u8to64_le` much, but it
does result in `SipHasher128` once again being consistent with
`libcore/hash/sip.rs`.

r? @michaelwoerister
2020-02-22 07:26:58 +00:00
bors
87e494c4cd Auto merge of #67330 - golddranks:split_inclusive, r=kodraus
Implement split_inclusive for slice and str

# Overview
* Implement `split_inclusive` for `slice` and `str` and `split_inclusive_mut` for `slice`
* `split_inclusive` is a substring/subslice splitting iterator that includes the matched part in the iterated substrings as a terminator.
* EDIT: The behaviour has now changed, as per @KodrAus 's input, to the same semantics with the `split_terminator` function. I updated the examples below.
* Two examples below:
```Rust
    let data = "\nMäry häd ä little lämb\nLittle lämb\n";
    let split: Vec<&str> = data.split_inclusive('\n').collect();
    assert_eq!(split, ["\n", "Märy häd ä little lämb\n", "Little lämb\n"]);
```

```Rust
    let uppercase_separated = "SheePSharKTurtlECaT";
    let mut first_char = true;
    let split: Vec<&str> = uppercase_separated.split_inclusive(|c: char| {
        let split = !first_char && c.is_uppercase();
        first_char = split;
        split
    }).collect();
    assert_eq!(split, ["SheeP", "SharK", "TurtlE", "CaT"]);
```

# Justification for the API
* I was surprised to find that stdlib currently only has splitting iterators that leave out the matched part. In my experience, wanting to leave a substring terminator as a part of the substring is a pretty common usecase.
* This API is strictly more expressive than the standard `split` API: it's easy to get the behaviour of `split` by mapping a subslicing operation that drops the terminator. On the other hand it's impossible to derive this behaviour from `split` without using hacky and brittle `unsafe` code. The normal way to achieve this functionality would be implementing the iterator yourself.
* Especially when dealing with mutable slices, the only way currently is to use `split_at_mut`. This API provides an ergonomic alternative that plays to the strengths of the iterating capabilities of Rust. (Using `split_at_mut` iteratively used to be a real pain before NLL, fortunately the situation is a bit better now.)

# Discussion items
* <s>Does it make sense to mimic `split_terminator` in that the final empty slice would be left off in case of the string/slice ending with a terminator? It might do, as this use case is naturally geared towards considering the matching part as a terminator instead of a separator.</s>
  * EDIT: The behaviour was changed to mimic `split_terminator`.
* Does it make sense to have `split_inclusive_mut` for `&mut str`?
2020-02-22 03:54:50 +00:00
Jane Lusby
b44b4ca602 rustfmt you cruel mistress 2020-02-21 16:46:14 -08:00
varkor
33143fd756 Be explicit about whether GenericArgCountMismatch arose from a fatal error 2020-02-22 00:28:49 +00:00
varkor
104131c9d4 Use Result instead of bool throughout 2020-02-22 00:28:49 +00:00
varkor
dff64eb4b6 Make return value of check_generic_arg_count semantically clearer 2020-02-22 00:28:49 +00:00
varkor
c9b7b1f73b Refactor create_substs_for_generic_args a little 2020-02-22 00:28:48 +00:00
varkor
039045c49b Move generic arg / param validation to create_substs_for_generic_args 2020-02-22 00:28:18 +00:00