Commit Graph

121557 Commits

Author SHA1 Message Date
Dylan DPC a23b51ebea
Rollup merge of #73063 - pickfire:liballoc-elide, r=kennytm
Elide type on liballoc vec
2020-06-07 15:33:45 +02:00
Dylan DPC de1941ab2a
Rollup merge of #72998 - poliorcetics:atomic-availability-doc, r=Amanieu
Mention that some atomic operations may not be available on some platforms

fixes #54250

This simply adds a line saying the type/function/method may not be available on some platforms, depending on said platform capabilities.

I *think* I got them all.
2020-06-07 15:33:44 +02:00
Dylan DPC 1ff0ba03ef
Rollup merge of #72970 - OddCoincidence:feature-gated-lints, r=petrochenkov
Properly handle feature-gated lints

Closes #72694
2020-06-07 15:33:42 +02:00
Dylan DPC cbab74528a
Rollup merge of #72908 - RalfJung:false-edge, r=matthewjasper
rename FalseEdges -> FalseEdge

There's just a single false edge in this terminator, not multiple of them.

r? @matthewjasper @jonas-schievink
2020-06-07 15:33:39 +02:00
Dylan DPC 2cab88a33e
Rollup merge of #72764 - jonas-schievink:mind-the-tyerr, r=estebank
Be more careful around ty::Error in generators

cc https://github.com/rust-lang/rust/issues/72685

(doesn't close it because it's missing a reproduction to use as a test case)

r? @estebank
2020-06-07 15:33:32 +02:00
Guillaume Gomez af68249a8d Clean up E0646 2020-06-07 15:22:15 +02:00
Guillaume Gomez fbf7d27791 Add tests for E0758 2020-06-07 14:57:57 +02:00
Guillaume Gomez e8fb46090e Create new error code E0758 for unterminated multi-line comments 2020-06-07 14:57:53 +02:00
bors 67ec96c8f9 Auto merge of #5691 - flip1995:rustup, r=matthiaskrgr
Rustup

changelog: none
2020-06-07 12:55:08 +00:00
flip1995 d9aa26a14d
Temporarily disable RLS integration test 2020-06-07 14:54:21 +02:00
Jethro Beekman ea48f2e4da Enable LVI hardening for x86_64-fortanix-unknown-sgx 2020-06-07 12:12:30 +02:00
Ilya Bobyr ebb8722ea7 unstable book: default_free_fn 2020-06-07 01:27:06 -07:00
Ilya Bobyr 8f4dfa8839 Free `default()` forwarding to `Default::default()`
When creating default values a trait method needs to be called with an
explicit trait name.  `Default::default()` seems redundant.  A free
function on the other hand, when imported directly, seems to be a better
API, as it is just `default()`.  When implementing the trait, a method
is still required.
2020-06-07 01:27:06 -07:00
Ralf Jung d931b031b4 rename FalseEdges -> FalseEdge 2020-06-07 10:12:21 +02:00
bors a2fc33e0c8 Auto merge of #73072 - arcnmx:lld-noload, r=nikic
Update LLVM submodule to include lld NOLOAD fix

> Rust nightly 2020-05-22 and later ships lld with a regression related to linker scripts: NOLOAD sections incorrectly generate sections filled with 0s. This causes gdb and other elf loaders to write to reserved or otherwise invalid addresses (gdb also seems confused by the resulting ELF files and spits out a warning about the sections). This is particularly a problem for embedded rust projects that use lld by default and have affected linker scripts (cortex-m-rt based projects for instance).

https://github.com/rust-lang/llvm-project/pull/64

Note that this also pulls in llvm changes from #72937
2020-06-07 05:58:49 +00:00
Jake Goulding ae3586c9b7 Order the Rust and C ABIs first to reduce test churn 2020-06-06 22:36:21 -04:00
flip1995 5bdbc45ae5
Rustup to rust-lang/rust#71796 2020-06-07 03:07:48 +02:00
bors 450abe80f1 Auto merge of #73081 - Dylan-DPC:rollup-1aqk215, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #72810 (validate basic sanity for TerminatorKind)
 - #72989 (Revert pr 71840)
 - #72993 (Count the beta prerelease number just from master)
 - #73057 (Clean up E0644 explanation)
 - #73059 (remove outdated comment)

Failed merges:

r? @ghost
2020-06-07 00:34:54 +00:00
Dylan DPC b117a3956f
Rollup merge of #73059 - lcnr:outdated-comment, r=matthewjasper
remove outdated comment

r? @matthewjasper
2020-06-07 02:29:02 +02:00
Dylan DPC 71230e135b
Rollup merge of #73057 - GuillaumeGomez:cleanup-e0644, r=Dylan-DPC
Clean up E0644 explanation

r? @Dylan-DPC
2020-06-07 02:29:00 +02:00
Dylan DPC 101e59361e
Rollup merge of #72993 - cuviper:beta-number, r=Mark-Simulacrum
Count the beta prerelease number just from master

We were computing a merge-base between the remote beta and master
branches, but this was giving incorrect answers for the first beta if
the remote hadn't been pushed yet. For instance, `1.45.0-beta.3359`
corresponds to the number of merges since the 1.44 beta, but we really
want just `.1` for the sole 1.45 beta promotion merge.

We don't really need to query the remote beta at all -- `master..HEAD`
suffices if we assume that we're on the intended beta branch already.
2020-06-07 02:28:58 +02:00
Dylan DPC 6f8760bda3
Rollup merge of #72989 - pnkfelix:revert-pr-71840, r=matthewjasper
Revert pr 71840

Revert7 PR #71840 to fix issue #72470

This will need a backport to beta if we do not want #72470 to hit stable.
2020-06-07 02:28:56 +02:00
Dylan DPC 63b314c367
Rollup merge of #72810 - RalfJung:mir-terminate-sanity, r=jonas-schievink
validate basic sanity for TerminatorKind

r? @jonas-schievink

This mainly checks that all `BasicBlock` actually exist. On top of that, it checks that `Call` actually calls something of `FnPtr`/`FnDef` type, and `Assert` has to work on a `bool`. Also `SwitchInt` cannot have an empty target list.
2020-06-07 02:28:54 +02:00
flip1995 1a8a69d012
Merge remote-tracking branch 'upstream/master' into rustup 2020-06-07 02:17:49 +02:00
marmeladema a7c18e021f save_analysis: fix panic in `write_sub_paths_truncated` 2020-06-06 23:40:24 +01:00
Joshua Nelson ff327c87e3 Add comments to `Resolve::get_module` 2020-06-06 17:09:31 -04:00
Poliorcetics 53984569e2
Only mention `u8` and not booleans
Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
2020-06-06 22:30:09 +02:00
bors 9c1857fad8 Auto merge of #73073 - RalfJung:rollup-i24dh28, r=RalfJung
Rollup of 3 pull requests

Successful merges:

 - #71796 (de-promote Duration::from_secs)
 - #72508 (Make `PolyTraitRef::self_ty` return `Binder<Ty>`)
 - #72708 (linker: Add a linker rerun hack for gcc versions not supporting -static-pie)

Failed merges:

r? @ghost
2020-06-06 19:58:27 +00:00
Ralf Jung d112d8bf3b
Rollup merge of #72708 - petrochenkov:linkhack, r=cuviper
linker: Add a linker rerun hack for gcc versions not supporting -static-pie

Which mirrors the existing `-no-pie` linker rerun hack, but the logic is a bit more elaborated in this case.

If the linker (gcc or clang) errors on `-static-pie` we rerun in with `-static` instead.
We must also replace CRT objects corresponding to `-static-pie` with ones corresponding to `-static` in this case.

(One sanity check for CRT objects in target specs is also added as a drive-by fix.)

To do in the future: refactor all linker rerun hacks into separate functions and share more code with `add_(pre,post)_link_objects`.

This PR accompanies https://github.com/rust-lang/rust/pull/71804 and unblocks https://github.com/rust-lang/rust/pull/70740.
2020-06-06 21:57:39 +02:00
Ralf Jung 161474b7f7 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
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
Ralf Jung 64c27f9fee
Rollup merge of #71796 - RalfJung:from-secs, r=nikomatsakis
de-promote Duration::from_secs

In https://github.com/rust-lang/rust/pull/67531, we removed the `rustc_promotable` attribute from a bunch of `Duration` methods, but not from `Duration::from_secs`. This makes the current list of promotable functions the following (courtesy of @ecstatic-morse):

* `INT::min_value`, `INT::max_value`
* `std::mem::size_of`, `std::mem::align_of`
* `RangeInclusive::new` (backing `x..=y`)
* `std::ptr::null`, `std::ptr::null_mut`
* `RawWaker::new`, `RawWakerVTable::new` ???
* `Duration::from_secs`

I feel like the last one stands out a bit here -- the rest are all very core language primitives, and `RawWaker` has a strong motivation for getting a `'static` vtable. But a `&'static Duration`? That seems unlikely. So I propose we no longer promote calls to `Duration::from_secs`, which is what this PR does.

https://github.com/rust-lang/rust/pull/67531 saw zero regressions and I am not aware of anyone complaining that this broke their (non-cratered) code, so I consider it likely the same will be true here, but of course we'd do a crater run.

See [this document](https://github.com/rust-lang/const-eval/blob/master/promotion.md) for some more background on promotion and https://github.com/rust-lang/const-eval/issues/19 for some of the concerns around promoting function calls.
2020-06-06 21:57:33 +02:00
Ayaz Hafiz ab7355a886
fixup! Add regression test for const generic ICE in #72819 2020-06-06 12:00:23 -07:00
Ayaz Hafiz 568cc22c3d
Add regression test for const generic ICE in #72819
Closes #72819
2020-06-06 11:44:28 -07:00
Ivan Tham 758aa23e44 Elide type on liballoc vec 2020-06-06 23:07:02 +08:00
Bastian Kauschke 32c488f045 remove outdated comment 2020-06-06 15:54:07 +02:00
Guillaume Gomez 392c6f45a4 Clean up E0644 explanation 2020-06-06 13:16:26 +02:00
bors 5699672b5b Auto merge of #5674 - ThibsG:DocTypeDefinesMethod, r=yaahc,phansch,flip1995
Add doc for checking if type defines specific method

This PR adds documentation on how:
- check if a type defines a specific method
- check an expr is calling a specific method

closes: #3843

changelog: none
2020-06-06 10:32:02 +00:00
bors e6f05ad912 Auto merge of #5528 - phansch:same-tys, r=flip1995
Cleanup: Use rustc's `same_type` for our `same_tys`

This delegates our `same_tys` to [ty::TyS::same_type][same_type] to
remove some duplication.

Our `same_tys` was introduced 4 years ago in #730. Before, it was
building an inference context to be able to call
`can_eq` to compare the types. The `rustc-dev-guide` has some more details
about `can_eq` in [Type Inference -> Trying equality][try_eq].

Now, using the rustc function, we are essentially comparing the `DefId`s
of the given types, which also makes more sense, IMO.

I also confirmed that the FIXME is resolved via a bit of `dbg!`, however
no UI tests seem to have been affected.

[same_type]: 659951c4a0/src/librustc_middle/ty/util.rs (L777)
[try_eq]: https://rustc-dev-guide.rust-lang.org/type-inference.html#trying-equality

---

changelog: none
2020-06-06 10:04:21 +00:00
Philipp Hansch 623faac84e
Cleanup: Use rustc's `same_types` instead of our `same_tys` 2020-06-06 11:50:59 +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 b059c0a2e6 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
marmeladema 84e4777ae2 save_analysis: fix ice in `get_expr_data` 2020-06-06 00:39:18 +01:00
Aaron Hill ae42c91c65
Fix typo
Co-authored-by: Randy Taylor <tehgecKozzz@gmail.com>
2020-06-05 18:57:17 -04:00
bors ea7066a01d Auto merge of #5688 - ebroto:fix_cargo_tests_in_rustc, r=flip1995
Fix cargo tests when running inside the rustlang/rust repo

It seems we hit https://github.com/rust-lang/cargo/issues/5418, so I've applied the suggested solution. Also added some more info when cargo-metadata fails to execute.

(there was no open issue for this)

changelog: none
2020-06-05 21:59:37 +00:00
Joey Hain e7e6bc1126 properly handle feature gated lints
- lint: add `feature_gate` field, allow specifying it in `declare_lint!`

- generalize the lint feature gate check

- librustdoc: generalize whitelisting of feature-gated lints
2020-06-05 13:52:34 -07:00
Eduardo Broto c325c120c2 Fix cargo ui tests when running inside rust repo 2020-06-05 22:30:14 +02:00
Eduardo Broto 413713c884 Add error info when cargo metadata fails to run 2020-06-05 22:28:58 +02:00
bors 826cb062a6 Auto merge of #72982 - tblah:riscv-ui-tests, r=estebank
resolve: Sort E0408 errors by Symbol str

This is a request for comments implementing my suggested solution to https://github.com/rust-lang/rust/issues/72913

Previously errors were sorted by Symbol index instead of the string. The indexes are not the same between architectures because Symbols for architecture extensions (e.g. x86 AVX or RISC-V d) are interned before the source file is parsed. RISC-V's naming of extensions after single letters led to it having errors sorted differently for test cases using single letter variable names. Instead sort the errors by the Symbol string so that it is stable across architectures.

While I was at it, there's also 8edb05c2  skipping some ui tests which I think are irrelevant for risc-v.
2020-06-05 18:55:52 +00:00
arcnmx aa7e771d67 Update LLVM submodule to include lld NOLOAD fix
https://github.com/rust-lang/llvm-project/pull/64
2020-06-05 11:36:45 -07:00