]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoDon't print bang diagnostics for derives
Manish Goregaokar [Wed, 10 Jun 2020 07:38:13 +0000 (00:38 -0700)]
Don't print bang diagnostics for derives

4 years agoAvoid collisions between traits and their derive macros
Manish Goregaokar [Wed, 10 Jun 2020 07:33:10 +0000 (00:33 -0700)]
Avoid collisions between traits and their derive macros

4 years agoAdd test for proc macro resolution in intra doc links
Manish Goregaokar [Tue, 9 Jun 2020 21:13:23 +0000 (14:13 -0700)]
Add test for proc macro resolution in intra doc links

4 years agointra-doc macro resolution should also handle proc macros
Manish Goregaokar [Tue, 9 Jun 2020 19:59:15 +0000 (12:59 -0700)]
intra-doc macro resolution should also handle proc macros

4 years agoAuto merge of #72114 - anyska:vtable-rename, r=nikomatsakis
bors [Tue, 9 Jun 2020 09:14:49 +0000 (09:14 +0000)]
Auto merge of #72114 - anyska:vtable-rename, r=nikomatsakis

Rename traits::Vtable to ImplSource.

Originally suggested by @eddyb.

r? @nikomatsakis

4 years agoAuto merge of #73153 - ecstatic-morse:revert-71956, r=tmandry
bors [Tue, 9 Jun 2020 03:41:43 +0000 (03:41 +0000)]
Auto merge of #73153 - ecstatic-morse:revert-71956, r=tmandry

Revert #71956

...since it caused unsoundness in #73137. Also adds a reduced version of #73137 to the test suite. The addition of the `MaybeInitializedLocals` dataflow analysis has not been reverted, but it is no longer used.

Presumably there is a more targeted fix, but I'm worried that other bugs may be lurking. I'm not yet sure what the root cause of #73137 is.

This will need to get backported to beta.

r? @tmandry

4 years agoAuto merge of #73147 - Dylan-DPC:rollup-9saqhj5, r=Dylan-DPC
bors [Mon, 8 Jun 2020 23:52:04 +0000 (23:52 +0000)]
Auto merge of #73147 - Dylan-DPC:rollup-9saqhj5, r=Dylan-DPC

Rollup of 8 pull requests

Successful merges:

 - #71842 (doc: make impl block collapsible if it has an associated constant)
 - #72912 (Add new E0758 error code)
 - #73008 (Update RELEASES.md)
 - #73090 (Use `LocalDefId` directly in `Resolver::export_map`)
 - #73118 (Improve the wording in documentation of std::mem::drop)
 - #73124 (Removed lifetime parameters from Explanation of E0207 )
 - #73138 (Use shorthand linker strip arguments in order to support MacOS)
 - #73143 (Update books)

Failed merges:

r? @ghost

4 years agoAdd regression test for #73137
Dylan MacKenzie [Mon, 8 Jun 2020 22:01:02 +0000 (15:01 -0700)]
Add regression test for #73137

Co-authored-by: Aaron1011 <aa1ronham@gmail.com>
4 years agoRevert #71956
Dylan MacKenzie [Mon, 8 Jun 2020 21:50:39 +0000 (14:50 -0700)]
Revert #71956

4 years agoRollup merge of #73143 - ehuss:update-books, r=ehuss
Dylan DPC [Mon, 8 Jun 2020 20:15:21 +0000 (22:15 +0200)]
Rollup merge of #73143 - ehuss:update-books, r=ehuss

Update books

## nomicon

3 commits in d1517d4e3f29264c5c67bce2658516bb5202c800..bfe1ab96d717d1dda50e499b360f2e2f57e1750a
2020-05-12 13:47:00 -0400 to 2020-06-05 13:19:42 -0400
- Clarify that str data must still be initialized
- Remove language-level UB for non-UTF-8 str
- fix Nomicon transmute UB

## reference

5 commits in becdca9477c9eafa96a4eea5156fe7a2730d9dd2..5d40ba5c2515caffa7790cda621239dc21ef5a72
2020-05-21 21:08:02 +0100 to 2020-06-06 20:25:36 -0700
- Add some links to Disambiguating Function Calls. (rust-lang-nursery/reference#829)
- change bash to sh as shell code blocks language indentifier (rust-lang-nursery/reference#827)
- Fix sentence mistake in array-expr.md (rust-lang-nursery/reference#826)
- removed the word "Second" form the beginning of the 2nd list item and  labelled it as `2` (rust-lang-nursery/reference#822)
- Update fn-like proc-macro invocation restrictions. (rust-lang-nursery/reference#816)

## book

14 commits in e8a4714a9d8a6136a59b8e63544e149683876e36..30cd9dfe71c446de63826bb4472627af45acc9db
2020-05-25 10:29:27 -0500 to 2020-06-07 23:07:19 -0500
- Unnecessarily long type name in Ch 13 (rust-lang/book#2362)
- Tweak example in chapter 10 (rust-lang/book#2363)
- Mention that to_lowercase isn't perfect (rust-lang/book#2364)
- fix typo in CONTRIBUTING.md (rust-lang/book#2360)
- Link German translation in appendix F (rust-lang/book#2347)
- Updates wording on Box example (rust-lang/book#2332)
- fix: match 15-24 with 15-18 (rust-lang/book#2324)
- Reword ch01-03 recap paragraph (rust-lang/book#2305)
- Remove some confusing wording. (rust-lang/book#2358)
- Clarify some wording a bit (rust-lang/book#2357)
- Update ch12-05 PowerShell note (rust-lang/book#2348)
- text -&gt; console (rust-lang/book#2352)
- Improve wording around drop (rust-lang/book#2350)
- Make some statements about crates more correct (rust-lang/book#2349)

## edition-guide

1 commits in 0a8ab5046829733eb03df0738c4fafaa9b36b348..82bec5877c77cfad530ca11095db4456d757f668
2020-05-18 08:34:23 -0500 to 2020-06-03 08:56:02 -0500
- Add stuff for Rust 1.33 (rust-lang/edition-guide#214)

4 years agoRollup merge of #73138 - eggyal:macos-linker-strip, r=petrochenkov
Dylan DPC [Mon, 8 Jun 2020 20:15:19 +0000 (22:15 +0200)]
Rollup merge of #73138 - eggyal:macos-linker-strip, r=petrochenkov

Use shorthand linker strip arguments in order to support MacOS

Per discussion from https://github.com/rust-lang/rust/issues/72110#issuecomment-636609419 onward, the current `-Z strip` options aren't supported by the MacOS linker, but I think only because it doesn't support the longhand arguments `--strip-debug` and `--strip-all`.

This PR switches to using the shorthand arguments `-s` and `-S` instead, which (I believe) are supported by all GCC linkers.

4 years agoRollup merge of #73124 - ayushmishra2005:correction_in_explanation_of_E0207, r=petroc...
Dylan DPC [Mon, 8 Jun 2020 20:15:17 +0000 (22:15 +0200)]
Rollup merge of #73124 - ayushmishra2005:correction_in_explanation_of_E0207, r=petrochenkov

Removed lifetime parameters from Explanation of E0207

Removed lifetime parameters from Explanation of E0207
Fixes #62144

4 years agoRollup merge of #73118 - alamb:alamb/doc-drop-typo, r=shepmaster
Dylan DPC [Mon, 8 Jun 2020 20:15:15 +0000 (22:15 +0200)]
Rollup merge of #73118 - alamb:alamb/doc-drop-typo, r=shepmaster

Improve the wording in documentation of std::mem::drop

I thought the original phrasing was somewhat awkward compared to rest of the (very well written) documentation, so figured I would propose a change to improve it.

4 years agoRollup merge of #73090 - marmeladema:resolver-outputs-local-def-id, r=petrochenkov
Dylan DPC [Mon, 8 Jun 2020 20:15:13 +0000 (22:15 +0200)]
Rollup merge of #73090 - marmeladema:resolver-outputs-local-def-id, r=petrochenkov

Use `LocalDefId` directly in `Resolver::export_map`

This is to avoid the final conversion from `NodeId` to `HirId`
during call to `(clone|into)_outputs`

This brings down the post-lowering uses of `NodeId` down to 2 calls to convert the `trait_map`.

cc #50928

r? @petrochenkov

4 years agoRollup merge of #73008 - tshepang:patch-1, r=nikomatsakis
Dylan DPC [Mon, 8 Jun 2020 20:15:12 +0000 (22:15 +0200)]
Rollup merge of #73008 - tshepang:patch-1, r=nikomatsakis

Update RELEASES.md

make catch_unwind line more readable

4 years agoRollup merge of #72912 - GuillaumeGomez:add-e0755, r=estebank
Dylan DPC [Mon, 8 Jun 2020 20:15:10 +0000 (22:15 +0200)]
Rollup merge of #72912 - GuillaumeGomez:add-e0755, r=estebank

Add new E0758 error code

4 years agoRollup merge of #71842 - tspiteri:doc-impl-const, r=GuillaumeGomez
Dylan DPC [Mon, 8 Jun 2020 20:15:08 +0000 (22:15 +0200)]
Rollup merge of #71842 - tspiteri:doc-impl-const, r=GuillaumeGomez

doc: make impl block collapsible if it has an associated constant

Fixes #71822.

4 years agoAuto merge of #72655 - jethrogb:sgx-lvi-hardening, r=petrochenkov
bors [Mon, 8 Jun 2020 20:10:07 +0000 (20:10 +0000)]
Auto merge of #72655 - jethrogb:sgx-lvi-hardening, r=petrochenkov

Enable LVI hardening for x86_64-fortanix-unknown-sgx

This implements mitigations for the Load Value Injection vulnerability (CVE-2020-0551) for the `x86_64-fortanix-unknown-sgx` target by enabling new LLVM passes. More information about LVI and mitigations may be found at https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection.

This PR unconditionally enables the mitigations for `x86_64-fortanix-unknown-sgx` since there is no available hardware that doesn't require the mitigations. This may be reconsidered in the future.

* [x] This depends on https://github.com/rust-lang/compiler-builtins/pull/359/

4 years agoUpdate books
Eric Huss [Mon, 8 Jun 2020 19:01:01 +0000 (12:01 -0700)]
Update books

4 years agoUse shorthand linker strip arguments in order to support MacOS
Alan Egerton [Mon, 8 Jun 2020 16:24:21 +0000 (17:24 +0100)]
Use shorthand linker strip arguments in order to support MacOS

4 years agoAuto merge of #73115 - RalfJung:rollup-jecowhz, r=RalfJung
bors [Mon, 8 Jun 2020 16:32:49 +0000 (16:32 +0000)]
Auto merge of #73115 - RalfJung:rollup-jecowhz, r=RalfJung

Rollup of 10 pull requests

Successful merges:

 - #72026 (Update annotate-snippets-rs to 0.8.0)
 - #72583 (impl AsRef<[T]> for vec::IntoIter<T>)
 - #72615 (Fix documentation example for gcov profiling)
 - #72761 (Added the documentation for the 'use' keyword)
 - #72799 (Add `-Z span-debug` to allow for easier debugging of proc macros)
 - #72811 (Liballoc impl)
 - #72963 (Cstring `from_raw` and `into_raw` safety precisions)
 - #73001 (Free `default()` forwarding to `Default::default()`)
 - #73075 (Add comments to `Resolve::get_module`)
 - #73092 (Clean up E0646)

Failed merges:

r? @ghost

4 years agoRemoved lifetime parameters from Explanation of E0207 #62144
Ayush Kumar Mishra [Mon, 8 Jun 2020 11:45:48 +0000 (17:15 +0530)]
Removed lifetime parameters from Explanation of E0207 #62144

4 years agoFix small typo in docs for std::mem::drop
alamb [Mon, 8 Jun 2020 10:04:34 +0000 (06:04 -0400)]
Fix small typo in docs for std::mem::drop

4 years agoRollup merge of #73092 - GuillaumeGomez:cleanup-e0646, r=Dylan-DPC
Ralf Jung [Mon, 8 Jun 2020 07:55:35 +0000 (09:55 +0200)]
Rollup merge of #73092 - GuillaumeGomez:cleanup-e0646, r=Dylan-DPC

Clean up E0646

r? @Dylan-DPC

4 years agoRollup merge of #73075 - jyn514:comment-module, r=Dylan-DPC
Ralf Jung [Mon, 8 Jun 2020 07:55:33 +0000 (09:55 +0200)]
Rollup merge of #73075 - jyn514:comment-module, r=Dylan-DPC

Add comments to `Resolve::get_module`

r? @Manishearth

4 years agoRollup merge of #73001 - ilya-bobyr:master, r=dtolnay
Ralf Jung [Mon, 8 Jun 2020 07:55:31 +0000 (09:55 +0200)]
Rollup merge of #73001 - ilya-bobyr:master, r=dtolnay

Free `default()` forwarding to `Default::default()`

It feels a bit redundant to have to say `Default::default()` every time I need a new value of a type that has a `Default` instance.
Especially so, compared to Haskell, where the same functionality is called `def`.
Providing a free `default()` function that forwards to `Default::default()` seems to improve the situation.
The trait is still there, so if someone wants to be explicit and to say `Default::default()` - it still works, but if imported as `std::default::default;`, then the free function reduces typing and visual noise.

4 years agoRollup merge of #72963 - poliorcetics:cstring-from-raw, r=dtolnay
Ralf Jung [Mon, 8 Jun 2020 07:55:30 +0000 (09:55 +0200)]
Rollup merge of #72963 - poliorcetics:cstring-from-raw, r=dtolnay

Cstring `from_raw` and `into_raw` safety precisions

Fixes #48525.
Fixes #68456.

This issue had two points:

- The one about `from_raw` has been addressed (I hope).
- The other one, about `into_raw`, has only been partially fixed.

About `into_raw`: the idea was to:

> steer users away from using the pattern of CString::{into_raw,from_raw} when interfacing with C APIs that may change the effective length of the string by writing interior NULs or erasing the final NUL

I tried making a `Vec<c_char>` like suggested but my current solution feels very unsafe and *hacky* to me (most notably the type cast), I included it here to make it available for discussion:

```rust
fn main() {
    use std::os::raw::c_char;

    let v = String::from("abc")
        .bytes()
        // From u8 to i8,
        // I feel like it will be a problem for values of u8 > 255
        .map(|c| c as c_char)
        .collect::<Vec<_>>();

    dbg!(v);
}
```

4 years agoRollup merge of #72811 - pickfire:liballoc-impl, r=Amanieu
Ralf Jung [Mon, 8 Jun 2020 07:55:28 +0000 (09:55 +0200)]
Rollup merge of #72811 - pickfire:liballoc-impl, r=Amanieu

Liballoc impl

Mainly code rearrangements

4 years agoRollup merge of #72799 - Aaron1011:feature/span-debug, r=petrochenkov
Ralf Jung [Mon, 8 Jun 2020 07:55:26 +0000 (09:55 +0200)]
Rollup merge of #72799 - Aaron1011:feature/span-debug, r=petrochenkov

Add `-Z span-debug` to allow for easier debugging of proc macros

Currently, the `Debug` impl for `proc_macro::Span` just prints out
the byte range. This can make debugging proc macros (either as a crate
author or as a compiler developer) very frustrating, since neither the
actual filename nor the `SyntaxContext` is displayed.

This commit adds a perma-unstable flag `-Z span-debug`. When enabled,
the `Debug` impl for `proc_macro::Span` simply forwards directly to
`rustc_span::Span`. Once #72618 is merged, this will start displaying
actual line numbers.

While `Debug` impls are not subject to Rust's normal stability
guarnatees, we probably shouldn't expose any additional information on
stable until `#![feature(proc_macro_span)]` is stabilized. Otherwise,
we would be providing a 'backdoor' way to access information that's
supposed be behind unstable APIs.

4 years agoRollup merge of #72761 - poliorcetics:use-keyword-doc, r=Dylan-DPC
Ralf Jung [Mon, 8 Jun 2020 07:55:24 +0000 (09:55 +0200)]
Rollup merge of #72761 - poliorcetics:use-keyword-doc, r=Dylan-DPC

Added the documentation for the 'use' keyword

This is a partial fix of #34601.

I heavily inspired myself from the Reference on the `use` keyword.

I checked the links when compiling the documentation, they should be ok.

I also added an example for the wildcard `*` in the case of types, because it's behaviour is not *import everything* like one might think at first.

4 years agoRollup merge of #72615 - jschwe:fix-Zprofile-documentation, r=steveklabnik
Ralf Jung [Mon, 8 Jun 2020 07:55:22 +0000 (09:55 +0200)]
Rollup merge of #72615 - jschwe:fix-Zprofile-documentation, r=steveklabnik

Fix documentation example for gcov profiling

closes #72546
Improves the documentation for the unstable Rustflag `-Zprofile` by:
- stating that Incremental compilation must be turned off.
- Adding the other `RUSTFLAGS` that should/need to be turned on (taken from [grcov documentation](https://github.com/mozilla/grcov#example-how-to-generate-gcda-files-for-a-rust-project))
- Mentioning `RUSTC_WRAPPER` to prevent everything getting instrumented.

r? @steveklabnik

4 years agoRollup merge of #72583 - CAD97:vec-iter-asref-slice, r=dtolnay
Ralf Jung [Mon, 8 Jun 2020 07:55:20 +0000 (09:55 +0200)]
Rollup merge of #72583 - CAD97:vec-iter-asref-slice, r=dtolnay

impl AsRef<[T]> for vec::IntoIter<T>

Adds `impl<T> AsRef<[T]> for vec::IntoIter<T>`. This mirrors the same trait impl for [`slice::Iter`](https://doc.rust-lang.org/nightly/std/slice/struct.Iter.html). Both types already offer `fn as_slice(&self) -> &[T]`, this just adds the trait impl for `vec::IntoIter`.

If/when `fn as_slice(&self) -> &[T]` stabilizes for `vec::Drain` and `slice::IterMut`, they should get `AsRef<[T]>` impls as well. As thus, tangentially related to #58957.

My ultimate goal here: being able to use `for<T, I: Iterator<Item=T> + AsRef<[T]>> I` to refer to `vec::IntoIter`, `vec::Drain`, and eventually `array::IntoIter`, as an approximation of the set of by-value iterators that can be "previewed" as by-ref iterators. (Actually expressing that as a trait requires GAT.)

4 years agoRollup merge of #72026 - botika:master, r=estebank
Ralf Jung [Mon, 8 Jun 2020 07:55:18 +0000 (09:55 +0200)]
Rollup merge of #72026 - botika:master, r=estebank

Update annotate-snippets-rs to 0.8.0

#59346
I made major changes to this library. In the previous version we worked with owned while in the current one with borrowed.

I have adapted it without changing the behavior.
I have modified the coverage since the previous one did not return correctly the index of the character in the line.

4 years agoAuto merge of #73046 - marmeladema:save-analysis-fix-path, r=Xanewok
bors [Mon, 8 Jun 2020 03:54:52 +0000 (03:54 +0000)]
Auto merge of #73046 - marmeladema:save-analysis-fix-path, r=Xanewok

save_analysis: fix some ICEs

Fixes #73020
Fixes #73022
Fixes #73041

4 years agoAuto merge of #72904 - shepmaster:reduce-abi-symbol-hash-churn, r=jonas-schievink...
bors [Sun, 7 Jun 2020 21:42:27 +0000 (21:42 +0000)]
Auto merge of #72904 - shepmaster:reduce-abi-symbol-hash-churn, r=jonas-schievink,RalfJung

Order the Rust and C ABIs first to reduce test churn

4 years agoUse `LocalDefId` directly in `Resolver::export_map` and `module_exports` query
marmeladema [Sun, 7 Jun 2020 10:14:47 +0000 (11:14 +0100)]
Use `LocalDefId` directly in `Resolver::export_map` and `module_exports` query

This is to avoid the final conversion from `NodeId` to `HirId`
during call to `Resolver::(clone|into)_outputs`.

4 years agoAuto merge of #73099 - Dylan-DPC:rollup-7u8f3m4, r=Dylan-DPC
bors [Sun, 7 Jun 2020 17:55:19 +0000 (17:55 +0000)]
Auto merge of #73099 - Dylan-DPC:rollup-7u8f3m4, r=Dylan-DPC

Rollup of 2 pull requests

Successful merges:

 - #72952 (run-make regression test for issue #70924.)
 - #72977 (Fix codegen tests for RISC-V)

Failed merges:

r? @ghost

4 years agoRollup merge of #72977 - tblah:riscv-codegen-llvm10, r=nikomatsakis
Dylan DPC [Sun, 7 Jun 2020 16:11:29 +0000 (18:11 +0200)]
Rollup merge of #72977 - tblah:riscv-codegen-llvm10, r=nikomatsakis

Fix codegen tests for RISC-V

Some codegen tests didn't seem relevant (e.g. unsupported annotations).

The RISC-V abi tests were broken by LLVM 10, c872dcf fixes that (cc: @msizanoen1)

I'm not sure about skipping catch-unwind.rs and included that change here mostly as a request for comment - I can't tell if that's a bug.

4 years agoRollup merge of #72952 - pnkfelix:regression-test-for-issue-70924, r=nikomatsakis
Dylan DPC [Sun, 7 Jun 2020 16:11:27 +0000 (18:11 +0200)]
Rollup merge of #72952 - pnkfelix:regression-test-for-issue-70924, r=nikomatsakis

run-make regression test for issue #70924.

Sometime after my PR #72767 (to fix issue #70924) landed, I realized that I *could* make a local regression test, thanks to `rustc --print sysroot`: I can make a fresh "copy" (really mostly symlinks) of the sysroot, and then modify it to recreate the terms of this bug.

4 years agoAuto merge of #73093 - Dylan-DPC:rollup-9gh5tyu, r=Dylan-DPC
bors [Sun, 7 Jun 2020 14:14:34 +0000 (14:14 +0000)]
Auto merge of #73093 - Dylan-DPC:rollup-9gh5tyu, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #72764 (Be more careful around ty::Error in generators)
 - #72908 (rename FalseEdges -> FalseEdge)
 - #72970 (Properly handle feature-gated lints)
 - #72998 (Mention that some atomic operations may not be available on some platforms)
 - #73063 (Elide type on liballoc vec)

Failed merges:

r? @ghost

4 years agoRollup merge of #73063 - pickfire:liballoc-elide, r=kennytm
Dylan DPC [Sun, 7 Jun 2020 13:33:45 +0000 (15:33 +0200)]
Rollup merge of #73063 - pickfire:liballoc-elide, r=kennytm

Elide type on liballoc vec

4 years agoRollup merge of #72998 - poliorcetics:atomic-availability-doc, r=Amanieu
Dylan DPC [Sun, 7 Jun 2020 13:33:44 +0000 (15:33 +0200)]
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.

4 years agoRollup merge of #72970 - OddCoincidence:feature-gated-lints, r=petrochenkov
Dylan DPC [Sun, 7 Jun 2020 13:33:42 +0000 (15:33 +0200)]
Rollup merge of #72970 - OddCoincidence:feature-gated-lints, r=petrochenkov

Properly handle feature-gated lints

Closes #72694

4 years agoRollup merge of #72908 - RalfJung:false-edge, r=matthewjasper
Dylan DPC [Sun, 7 Jun 2020 13:33:39 +0000 (15:33 +0200)]
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

4 years agoRollup merge of #72764 - jonas-schievink:mind-the-tyerr, r=estebank
Dylan DPC [Sun, 7 Jun 2020 13:33:32 +0000 (15:33 +0200)]
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

4 years agoClean up E0646
Guillaume Gomez [Sun, 7 Jun 2020 13:22:15 +0000 (15:22 +0200)]
Clean up E0646

4 years agoAdd tests for E0758
Guillaume Gomez [Tue, 2 Jun 2020 12:16:46 +0000 (14:16 +0200)]
Add tests for E0758

4 years agoCreate new error code E0758 for unterminated multi-line comments
Guillaume Gomez [Tue, 2 Jun 2020 12:13:03 +0000 (14:13 +0200)]
Create new error code E0758 for unterminated multi-line comments

4 years agoEnable LVI hardening for x86_64-fortanix-unknown-sgx
Jethro Beekman [Tue, 26 May 2020 20:53:30 +0000 (22:53 +0200)]
Enable LVI hardening for x86_64-fortanix-unknown-sgx

4 years agounstable book: default_free_fn
Ilya Bobyr [Fri, 5 Jun 2020 06:15:35 +0000 (23:15 -0700)]
unstable book: default_free_fn

4 years agoFree `default()` forwarding to `Default::default()`
Ilya Bobyr [Thu, 4 Jun 2020 03:36:53 +0000 (20:36 -0700)]
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.

4 years agorename FalseEdges -> FalseEdge
Ralf Jung [Tue, 2 Jun 2020 07:15:24 +0000 (09:15 +0200)]
rename FalseEdges -> FalseEdge

4 years agoAuto merge of #73072 - arcnmx:lld-noload, r=nikic
bors [Sun, 7 Jun 2020 05:58:49 +0000 (05:58 +0000)]
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

4 years agoOrder the Rust and C ABIs first to reduce test churn
Jake Goulding [Tue, 2 Jun 2020 02:20:12 +0000 (22:20 -0400)]
Order the Rust and C ABIs first to reduce test churn

4 years agoAuto merge of #73081 - Dylan-DPC:rollup-1aqk215, r=Dylan-DPC
bors [Sun, 7 Jun 2020 00:34:54 +0000 (00:34 +0000)]
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

4 years agoRollup merge of #73059 - lcnr:outdated-comment, r=matthewjasper
Dylan DPC [Sun, 7 Jun 2020 00:29:02 +0000 (02:29 +0200)]
Rollup merge of #73059 - lcnr:outdated-comment, r=matthewjasper

remove outdated comment

r? @matthewjasper

4 years agoRollup merge of #73057 - GuillaumeGomez:cleanup-e0644, r=Dylan-DPC
Dylan DPC [Sun, 7 Jun 2020 00:29:00 +0000 (02:29 +0200)]
Rollup merge of #73057 - GuillaumeGomez:cleanup-e0644, r=Dylan-DPC

Clean up E0644 explanation

r? @Dylan-DPC

4 years agoRollup merge of #72993 - cuviper:beta-number, r=Mark-Simulacrum
Dylan DPC [Sun, 7 Jun 2020 00:28:58 +0000 (02:28 +0200)]
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.

4 years agoRollup merge of #72989 - pnkfelix:revert-pr-71840, r=matthewjasper
Dylan DPC [Sun, 7 Jun 2020 00:28:56 +0000 (02:28 +0200)]
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.

4 years agoRollup merge of #72810 - RalfJung:mir-terminate-sanity, r=jonas-schievink
Dylan DPC [Sun, 7 Jun 2020 00:28:54 +0000 (02:28 +0200)]
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.

4 years agosave_analysis: fix panic in `write_sub_paths_truncated`
marmeladema [Fri, 5 Jun 2020 23:54:28 +0000 (00:54 +0100)]
save_analysis: fix panic in `write_sub_paths_truncated`

4 years agoAdd comments to `Resolve::get_module`
Joshua Nelson [Sat, 6 Jun 2020 21:09:31 +0000 (17:09 -0400)]
Add comments to `Resolve::get_module`

4 years agoOnly mention `u8` and not booleans
Poliorcetics [Sat, 6 Jun 2020 20:30:09 +0000 (22:30 +0200)]
Only mention `u8` and not booleans

Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
4 years agoAuto merge of #73073 - RalfJung:rollup-i24dh28, r=RalfJung
bors [Sat, 6 Jun 2020 19:58:27 +0000 (19:58 +0000)]
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

4 years agoRollup merge of #72708 - petrochenkov:linkhack, r=cuviper
Ralf Jung [Sat, 6 Jun 2020 19:57:39 +0000 (21:57 +0200)]
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.

4 years agoRollup merge of #72508 - ecstatic-morse:poly-self-ty, r=nikomatsakis
Ralf Jung [Sat, 6 Jun 2020 19:57:38 +0000 (21:57 +0200)]
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.

4 years agoRollup merge of #71796 - RalfJung:from-secs, r=nikomatsakis
Ralf Jung [Sat, 6 Jun 2020 19:57:33 +0000 (21:57 +0200)]
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.

4 years agoElide type on liballoc vec
Ivan Tham [Sat, 6 Jun 2020 15:07:02 +0000 (23:07 +0800)]
Elide type on liballoc vec

4 years agoremove outdated comment
Bastian Kauschke [Sat, 6 Jun 2020 13:54:07 +0000 (15:54 +0200)]
remove outdated comment

4 years agoClean up E0644 explanation
Guillaume Gomez [Sat, 6 Jun 2020 11:16:26 +0000 (13:16 +0200)]
Clean up E0644 explanation

4 years agoAuto merge of #72927 - petrochenkov:rustc, r=Mark-Simulacrum
bors [Sat, 6 Jun 2020 09:00:51 +0000 (09:00 +0000)]
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.

4 years agosave_analysis: fix ice in `get_expr_data`
marmeladema [Fri, 5 Jun 2020 23:38:39 +0000 (00:38 +0100)]
save_analysis: fix ice in `get_expr_data`

4 years agoproperly handle feature gated lints
Joey Hain [Thu, 4 Jun 2020 02:16:29 +0000 (19:16 -0700)]
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

4 years agoAuto merge of #72982 - tblah:riscv-ui-tests, r=estebank
bors [Fri, 5 Jun 2020 18:55:52 +0000 (18:55 +0000)]
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.

4 years agoUpdate LLVM submodule to include lld NOLOAD fix
arcnmx [Fri, 5 Jun 2020 18:36:45 +0000 (11:36 -0700)]
Update LLVM submodule to include lld NOLOAD fix

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

4 years agoImprove the new documentation to be more precise about the necessary platform's capab...
Alexis Bourget [Fri, 5 Jun 2020 17:07:24 +0000 (19:07 +0200)]
Improve the new documentation to be more precise about the necessary platform's capabilities

4 years agoIgnore windows in the test.
Felix S. Klock II [Fri, 5 Jun 2020 16:11:33 +0000 (12:11 -0400)]
Ignore windows in the test.

4 years agoAuto merge of #73025 - Dylan-DPC:rollup-a1uzj5u, r=Dylan-DPC
bors [Fri, 5 Jun 2020 15:21:01 +0000 (15:21 +0000)]
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

4 years agoRename traits::ImplSourceImpl to ImplSourceUserDefined.
Ana-Maria Mihalache [Tue, 2 Jun 2020 15:54:24 +0000 (15:54 +0000)]
Rename traits::ImplSourceImpl to ImplSourceUserDefined.

4 years agoRename traits::Vtable to ImplSource.
Ana-Maria Mihalache [Mon, 11 May 2020 15:25:33 +0000 (15:25 +0000)]
Rename traits::Vtable to ImplSource.

4 years agoAuto merge of #72957 - Mark-Simulacrum:bootstrap-bump, r=sfackler
bors [Fri, 5 Jun 2020 11:11:26 +0000 (11:11 +0000)]
Auto merge of #72957 - Mark-Simulacrum:bootstrap-bump, r=sfackler

Bump bootstrap compiler to 1.45

Pretty standard update.

4 years agoRollup merge of #73019 - matthiaskrgr:test_72960, r=Xanewok
Dylan DPC [Fri, 5 Jun 2020 11:07:10 +0000 (13:07 +0200)]
Rollup merge of #73019 - matthiaskrgr:test_72960, r=Xanewok

add test for #72960

Fixes #72960

r? @Xanewok

4 years agoRollup merge of #73017 - pickfire:liballoc-assert, r=Xanewok
Dylan DPC [Fri, 5 Jun 2020 11:07:08 +0000 (13:07 +0200)]
Rollup merge of #73017 - pickfire:liballoc-assert, r=Xanewok

Use assert_eq for liballoc test

4 years agoRollup merge of #73010 - tshepang:patch-2, r=Mark-Simulacrum
Dylan DPC [Fri, 5 Jun 2020 11:07:06 +0000 (13:07 +0200)]
Rollup merge of #73010 - tshepang:patch-2, r=Mark-Simulacrum

Update RELEASES.md

try fix the f64 as u32 line

4 years agoRollup merge of #72996 - marmeladema:remove-hir-map-nodeid-apis, r=ecstatic-morse
Dylan DPC [Fri, 5 Jun 2020 11:07:05 +0000 (13:07 +0200)]
Rollup merge of #72996 - marmeladema:remove-hir-map-nodeid-apis, r=ecstatic-morse

Remove unsused `NodeId` related APIs in hir map

cc #50928

r? @ecstatic-morse

4 years agoRollup merge of #72260 - csmoe:issue-69276, r=estebank
Dylan DPC [Fri, 5 Jun 2020 11:07:03 +0000 (13:07 +0200)]
Rollup merge of #72260 - csmoe:issue-69276, r=estebank

Spell out `Self` in async function return

Closes #69276
r? @tmandry

4 years agoadd test for #72960
Matthias Krüger [Fri, 5 Jun 2020 10:03:43 +0000 (12:03 +0200)]
add test for #72960

Fixes #72960

4 years agoUse assert_eq for liballoc test
Ivan Tham [Fri, 5 Jun 2020 08:56:51 +0000 (16:56 +0800)]
Use assert_eq for liballoc test

4 years agoaddress review comment
Tshepang Lekhonkhobe [Fri, 5 Jun 2020 01:41:21 +0000 (03:41 +0200)]
address review comment

4 years agoUpdate RELEASES.md
Tshepang Lekhonkhobe [Fri, 5 Jun 2020 01:30:56 +0000 (03:30 +0200)]
Update RELEASES.md

try fix the f64 as u32 line

4 years agoUpdate RELEASES.md
Tshepang Lekhonkhobe [Fri, 5 Jun 2020 01:05:12 +0000 (03:05 +0200)]
Update RELEASES.md

make catch_unwind line more readable

4 years agoAuto merge of #72901 - ehuss:update-cargo, r=Mark-Simulacrum
bors [Thu, 4 Jun 2020 23:17:05 +0000 (23:17 +0000)]
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)

4 years agoEnable lld for Cargo tests on Windows.
Eric Huss [Thu, 4 Jun 2020 21:32:23 +0000 (14:32 -0700)]
Enable lld for Cargo tests on Windows.

4 years agoAdd a **Note**: comment in documentation when the type/method/function is not always...
Alexis Bourget [Thu, 4 Jun 2020 20:07:56 +0000 (22:07 +0200)]
Add a **Note**: comment in documentation when the type/method/function is not always available

4 years agoAdd `-Z span-debug` to allow for easier debugging of proc macros
Aaron Hill [Sun, 31 May 2020 20:20:50 +0000 (16:20 -0400)]
Add `-Z span-debug` to allow for easier debugging of proc macros

Currently, the `Debug` impl for `proc_macro::Span` just prints out
the byte range. This can make debugging proc macros (either as a crate
author or as a compiler developer) very frustrating, since neither the
actual filename nor the `SyntaxContext` is displayed.

This commit adds a perma-unstable flag `-Z span-debug`. When enabled,
the `Debug` impl for `proc_macro::Span` simply forwards directly to
`rustc_span::Span`. Once #72618 is merged, this will start displaying
actual line numbers.

While `Debug` impls are not subject to Rust's normal stability
guarnatees, we probably shouldn't expose any additional information on
stable until `#![feature(proc_macro_span)]` is stabilized. Otherwise,
we would be providing a 'backdoor' way to access information that's
supposed be behind unstable APIs.

4 years agoRemove unsused `NodeId` related APIs in hir map
marmeladema [Thu, 4 Jun 2020 19:31:51 +0000 (20:31 +0100)]
Remove unsused `NodeId` related APIs in hir map

4 years agoAuto merge of #72995 - Dylan-DPC:rollup-7gsyb8x, r=Dylan-DPC
bors [Thu, 4 Jun 2020 19:31:59 +0000 (19:31 +0000)]
Auto merge of #72995 - Dylan-DPC:rollup-7gsyb8x, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #72946 (remove outdated fixme)
 - #72971 (Hexagon libstd: fix typo for c_ulonglong)
 - #72986 (Add more assert to Vec with_capacity docs)
 - #72987 (Add myself to mailmap)
 - #72990 (Fix missing word in RELEASES.md)

Failed merges:

r? @ghost

4 years agoRollup merge of #72990 - rust-lang:wesleywiser-patch-1, r=Dylan-DPC
Dylan DPC [Thu, 4 Jun 2020 19:31:22 +0000 (21:31 +0200)]
Rollup merge of #72990 - rust-lang:wesleywiser-patch-1, r=Dylan-DPC

Fix missing word in RELEASES.md

4 years agoRollup merge of #72987 - BatmanAoD:kjs-mailmap, r=Mark-Simulacrum
Dylan DPC [Thu, 4 Jun 2020 19:31:20 +0000 (21:31 +0200)]
Rollup merge of #72987 - BatmanAoD:kjs-mailmap, r=Mark-Simulacrum

Add myself to mailmap

Now that I have (accidentally) made contributions using two separate email addresses, I've added the rest of the addresses I typical use.

4 years agoRollup merge of #72986 - pickfire:vec-assert, r=Mark-Simulacrum
Dylan DPC [Thu, 4 Jun 2020 19:31:19 +0000 (21:31 +0200)]
Rollup merge of #72986 - pickfire:vec-assert, r=Mark-Simulacrum

Add more assert to Vec with_capacity docs

Show assertion on len too to show them how adding new items will affect both the
length and capacity, before and after.