Commit graph

121994 commits

Author SHA1 Message Date
Manish Goregaokar
39f8784eb6
Rollup merge of #71976 - mibac138:let-recovery, r=estebank
Improve diagnostics for `let x += 1`

Fixes(?) #66736

The code responsible for the `E0404` errors is [here](https://github.com/rust-lang/rust/blob/master/src/librustc_parse/parser/ty.rs#L399-L424) which I don't think can be easily modified to prevent emitting an error in one specific case. Because of this I couldn't get rid of `E0404` and instead added `E0067` along with a help message which will fix the problem.

r? @estebank
2020-06-18 15:20:36 -07:00
Manish Goregaokar
45d033b21c
Rollup merge of #71338 - estebank:recursive-impl-trait, r=nikomatsakis
Expand "recursive opaque type" diagnostic

Fix #70968, partially address #66523.
2020-06-18 15:20:33 -07:00
Manish Goregaokar
9d388d465d
Rollup merge of #70551 - mark-i-m:ty-err-2, r=varkor
Make all uses of ty::Error delay a span bug

r? @eddyb

A second attempt at https://github.com/rust-lang/rust/pull/70245

resolves https://github.com/rust-lang/rust/issues/70866
2020-06-18 15:20:30 -07:00
bors
036b5fec49 Auto merge of #73446 - ecstatic-morse:issue-73431, r=pnkfelix
Make novel structural match violations not a `bug`

Fixes (on master) #73431.

Ideally, `CustomEq` would emit a strict subset of the structural match errors that are found by `search_for_structural_match_violation`, since it allows more cases due to value-based reasoning. However, const qualification is more conservative than `search_for_structural_match_violation` around associated constants, since qualification does not try to substitute type parameters.

In the long term, we should probably make const qualification work for generic associated constants, but I don't like extending its capabilities even further.

r? @pnkfelix
2020-06-18 21:50:45 +00:00
Eric Huss
5a9ff052b4 Disable core benches on wasm (benches not supported). 2020-06-18 14:48:53 -07:00
Ivan Tham
111c2d27f5 Rearrange liballoc __impl_slice_eq1 2020-06-19 00:34:49 +08:00
Ivan Tham
ec8ff1cc24 Liballoc clean up macro_rules style 2020-06-19 00:34:20 +08:00
Ivan Tham
8aecafe8e8 Fix liballoc doc spelling 2020-06-19 00:33:24 +08:00
Eric Huss
abb5800dd5 Ensure std benchmarks get tested. 2020-06-18 09:11:15 -07:00
Jake Degen
721facf29c Removed trailing whitespace 2020-06-18 11:45:52 -04:00
Jake Degen
b805f2c4dc Added tooltip for should_panic code examples.
Previously, compile_fail and ignore code examples displayed a tooltip
indicating this in the documentation. This tooltip has now also been
added to should_panic examples.
2020-06-18 11:12:36 -04:00
qy3u
d134870bd4 Document format correction 2020-06-18 17:46:27 +08:00
bors
e55d3f9c52 Auto merge of #73384 - petrochenkov:gnulink, r=cuviper
linker: Never pass `-no-pie` to non-gnu linkers

Fixes https://github.com/rust-lang/rust/issues/73370
2020-06-18 04:29:23 +00:00
Lzu Tao
4e77214583 Improve document for Result::as_deref(_mut) 2020-06-18 02:09:53 +00:00
bors
7d16c1d5f5 Auto merge of #73065 - Amanieu:tls-fix, r=oli-obk
Fix link error with #[thread_local] introduced by #71192

r? @oli-obk
2020-06-18 00:29:10 +00:00
David Tolnay
2da9ca72bc
Remove duplicate sentence fragment from mem::zeroed doc 2020-06-17 17:17:07 -07:00
Josh Stone
a7c2cf8f51 Reduce pointer casts in Box::into_boxed_slice
We only need to cast the pointer once to change `Box<T>` to an array
`Box<[T; 1]>`, then we can let unsized coercion return `Box<[T]>`.
2020-06-17 16:30:27 -07:00
Esteban Küber
8d1a3801fa review comments 2020-06-17 16:29:03 -07:00
Rich Kadel
36c9014ddd removed try config to test mac & windows (passed)
https://dev.azure.com/rust-lang/rust/_build/results?buildId=32224&view=results
2020-06-17 14:50:28 -07:00
Rich Kadel
b9f0304af8 temporarily enable mac and windows tests on bors try
testing platform-specific changes
2020-06-17 11:39:35 -07:00
Rich Kadel
c3387293d4
Update src/libcore/intrinsics.rs
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2020-06-17 10:29:00 -07:00
erikdesjardins
6351850d8f
ignore-debug: debug assertions in slice indexing prevent the optimization 2020-06-17 13:10:49 -04:00
Dylan MacKenzie
3a1207f688 Add issue number to novel violation warning 2020-06-17 10:05:07 -07:00
Dylan MacKenzie
38e921b2c1 Add regression test for #73431 2020-06-17 09:55:08 -07:00
Dylan MacKenzie
c9dc73d757 Make novel structural match violations a warning 2020-06-17 09:29:33 -07:00
bors
2935d294ff Auto merge of #69890 - lenary:lenary/riscv-frame-pointers, r=hanna-kruppe,Mark-Simulacrum
[RISC-V] Do not force frame pointers

We have been seeing some very inefficient code that went away when using
`-Cforce-frame-pointers=no`. For instance `core::ptr::drop_in_place` at
`-Oz` was compiled into a function which consisted entirely of saving
registers to the stack, then using the frame pointer to restore the same
registers (without any instructions between the prolog and epilog).

The RISC-V LLVM backend supports frame pointer elimination, so it makes
sense to allow this to happen when using Rust. It's not clear to me that
frame pointers have ever been required in the general case.

In rust-lang/rust#61675 it was pointed out that this made reassembling
stack traces easier, which is true, but there is a code generation
option for forcing frame pointers, and I feel the default should not be
to require frame pointers, given it demonstrably makes code size worse
(around 10% in some embedded applications).

The kinds of targets mentioned in rust-lang/rust#61675 are popular, but
should not dictate that code generation should be worse for all RISC-V
targets, especially as there is a way to use CFI information to
reconstruct the stack when the frame pointer is eliminated. It is also
a misconception that `fp` is always used for the frame pointer. `fp` is
an ABI name for `x8` (aka `s0`), and if no frame pointer is required,
`x8` may be used for other callee-saved values.

---

I am partly posting this to get feedback from @fintelia who introduced the change to require frame pointers, and @hanna-kruppe who had issues with the original PR. I would understand if we wanted to remove this setting on only a subset of RISC-V targets, but my preference would be to remove this setting everywhere.

There are more details on the code size savings seen in Tock here: https://github.com/tock/tock/pull/1660
2020-06-17 11:30:56 +00:00
asrar
caffb28ece
add blank line bw sections
Separate target features from rust ones with a blank line

Co-authored-by: Josh Stone <cuviper@gmail.com>
2020-06-17 10:31:46 +05:30
Rich Kadel
1db44afecd Ensure profiling runtime for -Zinstrument-coverage
If config.toml `profiler = false`, the test/mir-opt/instrument_coverage
test is ignored. Otherwise, this patch ensures the profiler_runtime is
loaded when -Zinstrument-coverage is enabled. Confirmed that this works
for MacOS.
2020-06-16 18:48:46 -07:00
Poliorcetics
e75fa896ba
Don't imply function pointers are references
Co-authored-by: David Tolnay <dtolnay@gmail.com>
2020-06-17 03:30:41 +02:00
pierwill
9f2e8adc35
Fix typo in librustc_ast docs
Fixed sentence by removing a word.
2020-06-16 18:11:47 -07:00
Esteban Küber
af45d8a5bb Suggest new type param on single char ident
Suggest new type parameter on single char uppercase ident even if it
doesn't appear in a field's type parameter.

Address comment in #72641.
2020-06-16 17:36:55 -07:00
Gary Guo
2b7d858866 Add some comments related to place op typeck 2020-06-16 22:50:21 +01:00
Alexis Bourget
15cd51af5e Mention functions pointers in the documentation 2020-06-16 23:39:03 +02:00
bors
e8ff4bcbd0 Auto merge of #73322 - Amanieu:asm-srcloc-llvm, r=cuviper
Update LLVM submodule

Only includes one commit:
- [D80759](https://reviews.llvm.org/D80759): Fix FastISel dropping srcloc metadata from InlineAsm

Fixes #40555
2020-06-16 20:40:22 +00:00
Ralf Jung
81c7ebd544 we can enable one more codegen test in debug mode now 2020-06-16 16:01:30 -04:00
Ralf Jung
f0a42332b8 memory access sanity checks: abort instead of panic 2020-06-16 16:01:30 -04:00
root
457acbd5a8 trim whitespace 2020-06-16 18:53:30 +00:00
root
9f50f84ef1 break long line for formatting 2020-06-16 18:14:32 +00:00
root
4506a358ca add header for rust specific feature 2020-06-16 17:36:04 +00:00
bors
a647c0cd68 Auto merge of #73402 - Dylan-DPC:rollup-8udzpfu, r=Dylan-DPC
Rollup of 8 pull requests

Successful merges:

 - #73237 (Check for overflow in DroplessArena and align returned memory)
 - #73339 (Don't run generator transform when there's a TyErr)
 - #73372 (Re-order correctly the sections in the sidebar)
 - #73373 (Use track caller for bug! macro)
 - #73380 (Add more info to `x.py build --help` on default value for `-j JOBS`.)
 - #73381 (Fix typo in docs of std::mem)
 - #73389 (Use `Ipv4Addr::from<[u8; 4]>` when possible)
 - #73400 (Fix forge-platform-support URL)

Failed merges:

r? @ghost
2020-06-16 14:58:14 +00:00
Who? Me?!
cfdbbb5600
format derives
Co-authored-by: lzutao <taolzu@gmail.com>
2020-06-16 09:41:05 -05:00
Charles Lew
1990f9777f Disallow loading crates with non-ascii identifier name. 2020-06-16 21:34:36 +08:00
Dylan DPC
b4dd6a0dc4
Rollup merge of #73400 - rnestler:patch-1, r=jonas-schievink
Fix forge-platform-support URL

Apparently it got changed.
2020-06-16 15:08:48 +02:00
Dylan DPC
3c437e5733
Rollup merge of #73389 - lzutao:from, r=kennytm
Use `Ipv4Addr::from<[u8; 4]>` when possible

Resolve this comment: https://github.com/rust-lang/rust/pull/73331#discussion_r440098369
2020-06-16 15:08:47 +02:00
Dylan DPC
759547b210
Rollup merge of #73381 - ratijas:fix-typo-std-mem, r=jonas-schievink
Fix typo in docs of std::mem
2020-06-16 15:08:45 +02:00
Dylan DPC
66a1da38d0
Rollup merge of #73380 - pnkfelix:make-bootstrap-help-print-num-cpus, r=Mark-Simulacrum
Add more info to `x.py build --help` on default value for `-j JOBS`.
2020-06-16 15:08:43 +02:00
Dylan DPC
94105c2da3
Rollup merge of #73373 - lzutao:bug-trackcaller, r=Amanieu
Use track caller for bug! macro
2020-06-16 15:08:42 +02:00
Dylan DPC
6c44519749
Rollup merge of #73372 - GuillaumeGomez:re-order-sidebar-sections, r=kinnison
Re-order correctly the sections in the sidebar

Before that, "trait implementations" and "implementors" titles in the sidebar were before "methods" for example. Which wasn't logical considering that the two sections come after in the "content".

r? @kinnison
2020-06-16 15:08:40 +02:00
Dylan DPC
5bbcdf5f53
Rollup merge of #73339 - jonas-schievink:unbug, r=estebank
Don't run generator transform when there's a TyErr

Not sure if this might cause any problems later on, but we shouldn't be hitting codegen or const eval for the produced MIR anyways, so it should be fine.

cc https://github.com/rust-lang/rust/issues/72685#issuecomment-643749020
2020-06-16 15:08:37 +02:00
Dylan DPC
c65f39dac4
Rollup merge of #73237 - tmiasko:arena, r=nnethercote
Check for overflow in DroplessArena and align returned memory

* Check for overflow when calculating the slice start & end position.
* Align the pointer obtained from the allocator, ensuring that it
  satisfies user requested alignment (the allocator is only asked for
  layout compatible with u8 slice).
* Remove an incorrect assertion from DroplessArena::align.
* Avoid forming references to an uninitialized memory in DroplessArena.

Helps with #73007, #72624.
2020-06-16 15:08:35 +02:00