Commit Graph

121607 Commits

Author SHA1 Message Date
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
Sean Wilson 2650c5fc6c doc/rustdoc: Fix incorrect external_doc feature flag 2020-06-06 17:20:06 -07: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
Alexis Bourget 7897f60021 Improve the new documentation to be more precise about the necessary platform's capabilities 2020-06-05 19:07:24 +02:00
Felix S. Klock II a9d5dffe99 Ignore windows in the test. 2020-06-05 12:11:33 -04:00
bors e4124750c3 Auto merge of #73025 - Dylan-DPC:rollup-a1uzj5u, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #72260 (Spell out `Self` in async function return)
 - #72996 (Remove unsused `NodeId` related APIs in hir map)
 - #73010 (Update RELEASES.md)
 - #73017 (Use assert_eq for liballoc test)
 - #73019 (add test for #72960)

Failed merges:

r? @ghost
2020-06-05 15:21:01 +00:00
bors b16d10117a Auto merge of #5687 - flip1995:release_doc, r=phansch
Replace all remaining occurrences of submodule with subtree

r? @phansch

I should have included this in #5686, but forgot about it, so here we go again.

changelog: none
2020-06-05 13:34:19 +00:00
Ana-Maria Mihalache 00c19adeb5 Rename traits::ImplSourceImpl to ImplSourceUserDefined. 2020-06-05 13:31:48 +00:00
Ana-Maria Mihalache e01896a36f Rename traits::Vtable to ImplSource. 2020-06-05 13:20:09 +00:00