Commit graph

2810 commits

Author SHA1 Message Date
Igor Matuszewski
f4b2a205ad Bump Rustfmt and RLS 2020-06-19 15:38:14 +02:00
bors
f315c35a77 Auto merge of #72357 - ortem:new-dbg-pretty-printers, r=pnkfelix
Implement new gdb/lldb pretty-printers

Reopened #60826

This PR replaces current gdb and lldb pretty-printers with new ones that were originally written for [IntelliJ Rust](https://github.com/intellij-rust/intellij-rust/tree/master/prettyPrinters).

The current state of lldb pretty-printers is poor, because [they don't use synthetic children](https://github.com/rust-lang/rust/issues/55586#issuecomment-436610063). When I started to reimplement lldb pretty-printers with synthetic children support, I've found current version strange and hard to support. I think `debugger_pretty_printers_common.py` is overkill, so I got rid of it.

The new pretty-printers have to support all types supported by current pretty-printers, and also support `Rc`, `Arc`, `Cell`, `Ref`, `RefCell`, `RefMut`, `HashMap`, `HashSet`.

Fixes #56252
2020-06-15 15:21:45 +00:00
Ralf Jung
89eb74dcac
Rollup merge of #72938 - lzutao:stabilize_option_zip, r=dtolnay
Stabilize Option::zip

This PR stabilizes the following API:

```rust
impl<T> Option<T> {
    pub fn zip<U>(self, other: Option<U>) -> Option<(T, U)>;
}
```

This API has real world usage as seen in <https://grep.app/search?q=-%3E%20Option%3C%5C%28T%2C%5Cs%3FU%5C%29%3E&regexp=true&filter[lang][0]=Rust>.

The `zip_with` method is left unstably as this API is kinda niche
and it hasn't received much usage in Rust repositories on GitHub.

cc #70086
2020-06-15 12:01:03 +02:00
bors
ce6d3a73b5 Auto merge of #72080 - matthewjasper:uniform-impl-trait, r=nikomatsakis
Clean up type alias impl trait implementation

- Removes special case for top-level impl trait
- Removes associated opaque types
- Forbid lifetime elision in let position impl trait. This is consistent with the behavior for inferred types.
- Handle lifetimes in type alias impl trait more uniformly with other parameters

cc #69323
cc #63063
Closes #57188
Closes #62988
Closes #69136
Closes #73061
2020-06-15 04:10:24 +00:00
Lzu Tao
8b2092803e Stabilize Option::zip 2020-06-13 01:27:18 +00:00
Dylan DPC
c06799e4c4
Rollup merge of #72906 - lzutao:migrate-numeric-assoc-consts, r=dtolnay
Migrate to numeric associated consts

The deprecation PR is #72885

cc #68490
cc rust-lang/rfcs#2700
2020-06-12 12:28:23 +02:00
bors
59493917be Auto merge of #73266 - ehuss:update-cargo, r=ehuss
Update cargo

2 commits in 1ec223effbbbf9fddd3453cdcae3a96a967608eb..79c769c3d7b4c2cf6a93781575b7f592ef974255
2020-06-09 20:03:14 +0000 to 2020-06-11 22:13:37 +0000
- Fix failure with missing readme. (rust-lang/cargo#8353)
- Some LTO fixes. (rust-lang/cargo#8349)
2020-06-12 04:46:03 +00:00
Eric Huss
826ea22be3 Update cargo 2020-06-11 18:47:27 -07:00
bors
e91bf6c881 Auto merge of #69478 - avr-rust:avr-support-upstream, r=jonas-schievink
Enable AVR as a Tier 3 target upstream

Tracking issue: #44052.

Things intentionally left out of the initial upstream:

* The `target_cpu` flag

I have made the cleanup suggestions by @jplatte and @jplatte in 043550d9db.

Anybody feel free to give the branch a test and see how it fares, or make suggestions on the code patch itself.
2020-06-12 01:28:37 +00:00
Dylan DPC
84b9145076
Rollup merge of #73182 - Aaron1011:feature/call-fn-span, r=matthewjasper
Track span of function in method calls, and use this in #[track_caller]

Fixes #69977

When we parse a chain of method calls like `foo.a().b().c()`, each
`MethodCallExpr` gets assigned a span that starts at the beginning of
the call chain (`foo`). While this is useful for diagnostics, it means
that `Location::caller` will return the same location for every call
in a call chain.

This PR makes us separately record the span of the function name and
arguments for a method call (e.g. `b()` in `foo.a().b().c()`). This
`Span` is passed through HIR lowering and MIR building to
`TerminatorKind::Call`, where it is used in preference to
`Terminator.source_info.span` when determining `Location::caller`.

This new span is also useful for diagnostics where we want to emphasize
a particular method call - for an example, see
https://github.com/rust-lang/rust/pull/72389#discussion_r436035990
2020-06-11 19:04:16 +02:00
Matthew Jasper
6c04d8672d Remove ImplItemKind::OpaqueTy from clippy 2020-06-11 16:24:01 +01:00
Matthew Jasper
4201fd273e Remove associated opaque types
They're unused now.
2020-06-11 16:24:01 +01:00
Aaron Hill
e5f3b94d56
Clippy fixes 2020-06-10 17:30:12 -04:00
Aaron Hill
6e4d0b4205
Update Clippy for MethodCall changes 2020-06-10 17:30:11 -04:00
Eric Huss
fdeed85355 Update cargo 2020-06-09 19:55:04 -07:00
Lzu Tao
fff822fead Migrate to numeric associated consts 2020-06-10 01:35:47 +00:00
Lzu Tao
41c845efd9 Merge commit 'ff0993c5e9' into clippy 2020-06-09 14:36:01 +00:00
ortem
47c26e69a9 Implement new gdb/lldb pretty-printers
Replace old GDB and LLDB pretty-printers with new ones
which were originally written for IntelliJ Rust.
New LLDB pretty-printers support synthetic children.
New GDB/LLDB pretty-printers support all Rust types
supported by old pretty-printers, and also support:
Rc, Arc, Cell, Ref, RefCell, RefMut, HashMap, HashSet.
2020-06-09 16:13:11 +03:00
Dylan McKay
b4a041c050 [AVR] Update the compiletest library to recognize AVR as a 16-bit target 2020-06-09 17:40:53 +12:00
Jake Goulding
690bb8af51 [AVR] Add AVR platform support 2020-06-09 17:34:07 +12:00
Ralf Jung
de4d5ce11e
Rollup merge of #72508 - ecstatic-morse:poly-self-ty, r=nikomatsakis
Make `PolyTraitRef::self_ty` return `Binder<Ty>`

This came up during review of #71618. The current implementation is the same as a call to `skip_binder` but harder to audit. Make it preserve binding levels and add a call to `skip_binder` at all use sites so they can be audited as part of #72507.
2020-06-06 21:57:38 +02:00
bors
118b50524b Auto merge of #72927 - petrochenkov:rustc, r=Mark-Simulacrum
Rename all remaining compiler crates to use the `rustc_foo` pattern

libarena -> librustc_arena
libfmt_macros -> librustc_parse_format
libgraphviz -> librustc_graphviz
libserialize -> librustc_serialize

Closes https://github.com/rust-lang/rust/issues/71177 in particular.
2020-06-06 09:00:51 +00:00
bors
84ec8238b1 Auto merge of #72957 - Mark-Simulacrum:bootstrap-bump, r=sfackler
Bump bootstrap compiler to 1.45

Pretty standard update.
2020-06-05 11:11:26 +00:00
bors
219380d840 Auto merge of #72901 - ehuss:update-cargo, r=Mark-Simulacrum
Update cargo

9 commits in 9fcb8c1d20c17f51054f7aa4e08ff28d381fe096..40ebd52206e25c7a576ee42c137cc06a745a167a
2020-05-25 16:25:36 +0000 to 2020-06-01 22:35:00 +0000
- Warn if using hash in git URL, Fixes rust-lang/cargo#8241 (rust-lang/cargo#8297)
- reset lockfile information between resolutions (rust-lang/cargo#8274)
- Disable strip_works test on macos. (rust-lang/cargo#8301)
- Fix typo in impl Display for Strip (rust-lang/cargo#8299)
- Add support for rustdoc root URL mappings. (rust-lang/cargo#8287)
- Fix tests with enoent error message on non-english systems. (rust-lang/cargo#8295)
- Fix fingerprinting for lld on Windows with dylib. (rust-lang/cargo#8290)
- Fix a typo (rust-lang/cargo#8289)
- Fix several issues with close_output test. (rust-lang/cargo#8286)
2020-06-04 23:17:05 +00:00
marmeladema
70228f97ab Update rls submodule 2020-06-04 08:31:45 +01:00
Mark Rousskov
7139342249 Bump to 1.46 2020-06-03 15:27:51 -04:00
Vadim Petrochenkov
e793b46e49 Update fulldeps tests and clippy 2020-06-03 00:18:57 +03:00
Vadim Petrochenkov
283e5b4106 Rename the crates in source code 2020-06-02 20:42:54 +03:00
Tom Eccles
81df5ac241 compiletest: Add name directive for remote runners
Allow tests to use
// ignore-remote
to ignore the test when using remote-test-{client,server}. In most
situations this would be covered by
// ignore-cross-compile
but I see no reason that a non-cross compiled remote test runner
shouldn't work.
2020-06-02 14:00:18 +01:00
Tom Eccles
9e137bb8b6 tools/remote-test-server: make use of verbose option
There was an unused verbose command line argument. Add some prints if
verbose is set.
2020-06-02 14:00:18 +01:00
Tom Eccles
1b7ec76c16 tools/remote-test-{server,client}: support RUST_TEST_TMPDIR
Some tests (e.g. ui-fulldeps/create-dir-all-bare.rs) assume that
RUST_TEST_TMPDIR exists on the system running the test. Expand
remote-test-{server,client} such that a tmp directory is created on the
remote runner and this environment variable will point at it.
2020-06-02 14:00:18 +01:00
bors
eeaf497b2a Auto merge of #72672 - seritools:remote-test-windows, r=Mark-Simulacrum
Make remote-test-client and remote-test-server compatible with windows

`compiletest` and `remote-test-client`:

The command line for `remote-test-client` was changed slightly to allow cross-platform compatible paths. The old way of supplying the support libs was by joining their paths with the executable path
with `:`. This caused Windows-style paths to be split after the directory letter. Now, the number of support libs is provided as a parameter as well, and the support lib paths are split off from the regular args in the client.

`remote-test-server`:

- Marked Unix-only parts as such and implemented Windows alternatives
- On Windows `LD_LIBRARY_PATH` doesn't exist. Libraries are loaded from `PATH` though, so that's the way around it.
- Tiny cleanup: `Command::args`/`envs` instead of manually looping over them
- The temp path for Windows has to be set via environment variable, since there isn't a global temp directory that would work on every machine (as a static string)
2020-06-02 07:54:38 +00:00
Yuki Okushi
8a68fc6ff4
Rollup merge of #72775 - JohnTitor:await-sugg, r=estebank
Return early to avoid ICE

Fixes #72766
2020-06-02 13:07:12 +09:00
Eric Huss
860b381793 Update cargo 2020-06-01 17:15:23 -07:00
Dylan MacKenzie
b4e06b9e88 Call skip_binder or no_bound_vars before self_ty 2020-06-01 12:18:57 -07:00
Ralf Jung
759e495bbf bump Miri, update for cargo-miri being a separate project 2020-06-01 20:17:26 +02:00
Dennis Duda
036da3a6dc Make remote-test-client work as cargo runner again
Since cargo appends executable/args, the support_lib count
parameter has to come first.
2020-05-31 17:36:17 +02:00
Dennis Duda
0199fdc0f7 Update help text of remote-test-client to reflect changed command 2020-05-31 17:23:46 +02:00
Dennis Duda
577ac2f836 Fix set_permissions call for non-windows 2020-05-31 17:23:46 +02:00
Dennis Duda
41d540fcb7 Unify temp path generation for non-android 2020-05-31 17:23:46 +02:00
Dennis Duda
a367956100 Make remote-test-client and remote-test-server compatible with windows
`compiletest` and `remote-test-client`:

The command line for `remote-test-client` was changed slightly
to allow cross-platform compatible paths. The old way of supplying
the support libs was by joining their paths with the executable path
with `:`. This caused Windows-style paths to be split after the
directory letter. Now, the number of support libs is provided
as a parameter as well, and the support lib paths are split off
from the regular args in the client.

`remote-test-server`:

- Marked Unix-only parts as such and implemented Windows alternatives
- On Windows `LD_LIBRARY_PATH` doesn't exist. Libraries are
  loaded from `PATH` though, so that's the way around it.
- Tiny cleanup: `Command::args`/`envs` instead of manually
  looping over them
- The temp path for Windows has to be set via environment variable,
  since there isn't a global temp directory that would work on every
  machine (as a static string)
2020-05-31 17:23:46 +02:00
Yuki Okushi
77503578e1
Return early to avoid ICE 2020-05-30 18:48:54 +09:00
bors
96dd4690c3 Auto merge of #72671 - flip1995:clippyup, r=Xanewok
Update Clippy, RLS, and rustfmt

r? @Dylan-DPC

This makes Clippy test-pass again: 3089c3b

Otherwise this includes bugfixes and a few new lints.

Fixes #72231
Fixes #72232
2020-05-29 11:16:45 +00:00
flip1995
3f3e0ee4b0
Add fibersapi feature to winapi in rustc-workspace-hack
Co-authored-by: Eric Huss <ehuss@users.noreply.github.com>
2020-05-29 08:20:18 +02:00
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
flip1995
0e857c27e2
Update RLS to clippyup branch 2020-05-28 20:04:49 +02:00
flip1995
914ff97f2b
Temp fix: don't run cargo lint tests in rustc test suite 2020-05-28 17:19:30 +02:00
Igor Matuszewski
84eae777c1
submodules: Update RLS and Rustfmt 2020-05-28 15:46:52 +02:00
flip1995
873ddf7da0
Merge commit '7ea7cd165a' into clippyup2 2020-05-28 15:45:24 +02: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