Commit graph

121105 commits

Author SHA1 Message Date
Dylan DPC 3bcf6973b6
Rollup merge of #72466 - lzutao:stabilize_str-strip, r=dtolnay
Stabilize str_strip feature

This PR stabilizes these APIs:

```rust
impl str {
    /// Returns a string slice with the prefix removed.
    ///
    /// If the string starts with the pattern `prefix`, `Some` is returned with the substring where
    /// the prefix is removed. Unlike `trim_start_matches`, this method removes the prefix exactly
    /// once.
    pub fn strip_prefix<'a, P: Pattern<'a>>(&'a self, prefix: P) -> Option<&'a str>;

    /// Returns a string slice with the suffix removed.
    ///
    /// If the string ends with the pattern `suffix`, `Some` is returned with the substring where
    /// the suffix is removed. Unlike `trim_end_matches`, this method removes the suffix exactly
    /// once.
    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>;
}
```

Closes  #67302
2020-05-29 02:33:11 +02:00
Dylan DPC b18c55b179
Rollup merge of #72239 - hch12907:master, r=dtolnay
Implement PartialOrd and Ord for SocketAddr*

The implementation is mostly the same as the one found in `IpAddr` (other than adding comparison for ports, of course).
Continues #53788 and #53863
Fixes #53710
2020-05-29 02:33:07 +02:00
Tomasz Miąsko 02cc593af0 Remove unused mut from long-linker-command-lines test 2020-05-29 00:00:00 +00:00
Esteban Küber 04243710a0 Account for trailing comma when suggesting where clauses
Fix #72693.
2020-05-28 16:31:48 -07:00
Jeremy Fitzhardinge ce81d15289 Add test to make sure -Wunused-crate-dependencies works with tests
Make sure code in `#[test]` blocks counts as a use of a crate.
2020-05-28 16:29:23 -07:00
Jonas Schievink d4ef1744f5
Whitelist #[allow_internal_unstable]
This should hopefully work around https://github.com/rust-lang/rust/issues/65023, which currently makes almost every bootstrap fail for me.
2020-05-29 01:19:33 +02:00
Bastian Kauschke 461891a000 remove redundant mk_const 2020-05-28 23:59:54 +02:00
Nathan Corbyn fa351eefa0 Fix ICE with explicit late-bound lifetimes 2020-05-28 19:23:25 +01:00
flip1995 0e857c27e2
Update RLS to clippyup branch 2020-05-28 20:04:49 +02:00
Esteban Küber 1bd69702de Account for Self as a type param 2020-05-28 10:36:21 -07:00
Niko Matsakis 0e3b31c641
Update src/librustdoc/core.rs 2020-05-28 13:23:33 -04:00
Vadim Petrochenkov 1eef0c3c1e rustc_lint: Remove unused_crate_dependencies from the unused group 2020-05-28 20:03:36 +03:00
Ivan Tham 42a4f5ac50
Fix grammar in liballoc raw_vec 2020-05-29 00:40:41 +08:00
Eric Huss 4329261095 Remove rustc-ux-guidelines 2020-05-28 08:23:23 -07:00
flip1995 914ff97f2b
Temp fix: don't run cargo lint tests in rustc test suite 2020-05-28 17:19:30 +02:00
Joshua M. Clulow bb745d6a18 update data layout for illumos x86
In a recent change, 8b199222cc,
adjustments were made to the data layout we pass to LLVM.
Unfortunately, the illumos target was missed in this change.
See also: https://github.com/rust-lang/rust/pull/67900
2020-05-28 08:09:10 -07:00
flip1995 f20fa1b1bb
Update Cargo.lock 2020-05-28 15:47:54 +02:00
Igor Matuszewski 489b7e4123
Set CFG_RELEASE for tools in bootstrap/tool.rs
Since rustc-ap-* v659 we now need to set CFG_RELEASE for
rustc-ap-rustc_attr for `#[cfg(version(...))]` to work.

Co-authored-by: Eric Huss <ehuss@users.noreply.github.com>
2020-05-28 15:46:59 +02:00
Igor Matuszewski 84eae777c1
submodules: Update RLS and Rustfmt 2020-05-28 15:46:52 +02:00
flip1995 873ddf7da0
Merge commit '7ea7cd165ad6705603852771bf82cc2fd6560db5' into clippyup2 2020-05-28 15:45:24 +02:00
Ralf Jung 52ed89ae8c from_u32_unchecked: check validity when debug assertions are enabled 2020-05-28 14:04:36 +02:00
David Wood a54ed872cb
standardize limit comparisons with Limit type
This commit introduces a `Limit` type which is used to ensure that all
comparisons against limits within the compiler are consistent (which can
result in ICEs if they aren't).

Signed-off-by: David Wood <david@davidtw.co>
2020-05-28 10:33:07 +01:00
David Wood 804e9e546d
mir: adjust conditional in recursion limit check
This commit adjusts the condition used in the recursion limit check of
the monomorphization collector, from `>` to `>=`.

In #67552, the test case had infinite indirect recursion, repeating a
handful of functions (from the perspective of the monomorphization
collector): `rec` -> `identity` -> `Iterator::count` -> `Iterator::fold`
-> `Iterator::next` -> `rec`.

During this process, `resolve_associated_item` was invoked for
`Iterator::fold` (during the construction of an `Instance`), and
ICE'd due to substitutions needing inference. However, previous
iterations of this recursion would have called this function for
`Iterator::fold` - and did! - and succeeded in doing so (trivially
checkable from debug logging, `()` is present where `_` is in the substs
of the failing execution).

The expected outcome of this test case would be a recursion limit error
(which is present when the `identity` fn indirection is removed), and
the recursion depth of `rec` is increasing (other functions finish
collecting their neighbours and thus have their recursion depths reset).

When the ICE occurs, the recursion depth of `rec` is 256 (which matches
the recursion limit), which suggests perhaps that a different part of
the compiler is using a `>=` comparison and returning a different result
on this recursion rather than what it returned in every previous
recursion, thus stopping the monomorphization collector from reporting
an error on the next recursion, where `recursion_depth_of_rec > 256`
would have been true.

With grep and some educated guesses, we can determine that
the recursion limit check at line 818 in
`src/librustc_trait_selection/traits/project.rs` is the other check that
is using a different comparison. Modifying either comparison to be `>` or
`>=` respectively will fix the error, but changing the monomorphization
collector produces the nicer error.

Signed-off-by: David Wood <david@davidtw.co>
2020-05-28 10:18:51 +01:00
Yuki Okushi e069524c48
Add test for #66930 2020-05-28 16:50:10 +09:00
CAD97 cd6a8cae2a FIx off-by-one in char::steps_between 2020-05-28 01:33:28 -04:00
Esteban Küber f213acf4db review comments: change wording and visual output 2020-05-27 20:58:05 -07:00
Esteban Küber cb6408afc6 Fix rebase 2020-05-27 19:24:09 -07:00
Joe Richey 7d5415b5a2 Add additional checks for isize overflow
We now perform the correct checks even if the pointer size differs
between the host and target.

Signed-off-by: Joe Richey <joerichey@google.com>
2020-05-27 19:10:17 -07:00
bors 4512721156 Auto merge of #72494 - lcnr:predicate-cleanup, r=nikomatsakis
Pass more `Copy` types by value.

There are a lot of locations where we pass `&T where T: Copy` by reference,
which should both be slightly less performant and less readable IMO.

This PR currently consists of three fairly self contained commits:

- passes `ty::Predicate` by value and stops depending on `AsRef<ty::Predicate>`.
- changes `<&List<_>>::into_iter` to iterate over the elements by value. This would break `List`s
  of non copy types. But as the only list constructor requires `T` to be copy anyways, I think
  the improved readability is worth this potential future restriction.
- passes `mir::PlaceElem` by value. Mir currently has quite a few copy types which are passed by reference, e.g. `Local`. As I don't have a lot of experience working with MIR, I mostly did this to get some feedback from people who use MIR more frequently
- tries to reuse `ty::Predicate` in case it did not change in some places, which should hopefully
  fix the regression caused by #72055

r? @nikomatsakis for the first commit, which continues the work of #72055 and makes adding `PredicateKind::ForAll` slightly more pleasant. Feel free to reassign though
2020-05-28 00:18:52 +00:00
Esteban Küber c52dbbc643 fix rebase 2020-05-27 16:28:20 -07:00
Esteban Küber 500504c0bd fix rebase 2020-05-27 16:28:20 -07:00
Esteban Küber 2b35247d7a Modify wording 2020-05-27 16:28:20 -07:00
Esteban Küber d0d30b0a3e fix rebase 2020-05-27 16:28:20 -07:00
Esteban Küber 2e2f82053f review comment: use FxIndexSet 2020-05-27 16:28:20 -07:00
Esteban Küber 3811232190 review comments 2020-05-27 16:28:20 -07:00
Esteban Küber eb0f4d51df Tweak output for mismatched impl item
Detect type parameter that might require lifetime constraint.
Do not name `ReVar`s in expected/found output.
Reword text suggesting to check the lifetimes.
2020-05-27 16:28:20 -07:00
Esteban Küber 5ba22205a4 Name RegionKind::ReVar lifetimes in diagnostics 2020-05-27 16:28:04 -07:00
Esteban Küber 3fea832fd7 Fix spacing of expected/found notes without a label 2020-05-27 16:27:15 -07:00
LeSeulArtichaut db684beb4e Whitelist unsafe_op_in_unsafe_fn in rustdoc 2020-05-28 00:45:06 +02:00
Mark Rousskov b1063b83da Clippy should always build
This just unwraps clippy's build step instead of skipping tests if clippy didn't
build. This matches e.g. cargo's behavior and seems more correct, as we always
expect clippy to successfully build.
2020-05-27 17:25:47 -04:00
Jonas Schievink 1ab0db1272
Fix incorrect comment in generator test 2020-05-27 21:38:38 +02:00
Vadim Petrochenkov 5369f4aa57 rustc_session: Cleanup session creation 2020-05-27 22:32:24 +03:00
Guillaume Gomez 5ba5b65367 Sort fields, variants and other unsorted elements in the sidebar 2020-05-27 21:30:33 +02:00
Guillaume Gomez 5548e69226 Add working example for E0617 explanation 2020-05-27 21:29:09 +02:00
bors 7ea7cd165a Auto merge of #5652 - rust-lang:flip1995-patch-1, r=yaahc
Fail bors on missing changelog

Bors stopped failed if the changelog was missing. Instead it waited 2h (?) and then timed out.

changelog: none
2020-05-27 18:55:57 +00:00
LeSeulArtichaut 63066c0c06 Use LintIds to check for gated lints 2020-05-27 20:37:59 +02:00
LeSeulArtichaut 1b08850622 Fix import 2020-05-27 20:37:59 +02:00
LeSeulArtichaut e3d27ec1c8 Add explanation about taking the minimum of the two lints 2020-05-27 20:37:59 +02:00
LeSeulArtichaut 4a538d31e0 Do not hardcode lint name 2020-05-27 20:37:59 +02:00
LeSeulArtichaut 3599ada976 Mark deduplicated errors as expected in gate test 2020-05-27 20:37:58 +02:00