Commit Graph

107802 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
5adfa4bd48
Rollup merge of #69641 - ehuss:update-books, r=ehuss
Update books

## nomicon

8 commits in 3e6e1001dc6e095dbd5c88005e80969f60e384e1..9f797e65e6bcc79419975b17aff8e21c9adc039f
2019-12-14 22:08:52 +0000 to 2020-03-04 03:45:13 +0100
- Rustup to latest rustc (rust-lang-nursery/nomicon#203)
- (minor) Add backticks around type names (rust-lang-nursery/nomicon#197)
- Add book.toml (rust-lang-nursery/nomicon#185)
- Rename `Alloc` to `AllocRef` (rust-lang-nursery/nomicon#188)
- Lifetimes: explain how to fix destructor example (rust-lang-nursery/nomicon#195)
- mention soundness (rust-lang-nursery/nomicon#194)
- Fix example in FFI section Calling Rust from C (rust-lang-nursery/nomicon#193)
- Removed repeated word (rust-lang-nursery/nomicon#191)

## reference

8 commits in 64239df6d173562b9deb4f012e4c3e6e960c4754..559e09caa9661043744cf7af7bd88432d966f743
2020-02-10 19:05:13 +0100 to 2020-03-02 01:17:14 +0100
- Syntax error fix (rust-lang-nursery/reference#769)
- Fix incorrect pseudocode for #[repr(C)] struct alignment (rust-lang-nursery/reference#766)
- Replace "Field-Less" with "Fieldless" (rust-lang-nursery/reference#768)
- Removed repeated word (rust-lang-nursery/reference#767)
- Update for change in const lint name. (rust-lang-nursery/reference#764)
- semantic type -> resolved type (rust-lang-nursery/reference#761)
- add behavior change of relative paths without `self` in 2018 edition (rust-lang-nursery/reference#757)
- assignment operator expressions -> compound assignment expressions (rust-lang-nursery/reference#759)

## rust-by-example

3 commits in 32facd5522ddbbf37baf01e4e4b6562bc55c071a..db57f899ea2a56a544c8d280cbf033438666273d
2020-02-11 09:25:06 -0300 to 2020-02-18 17:46:46 -0300
- Minor typo fix in src/mod/visibility (rust-lang/rust-by-example#1309)
- Don't suggest Into implements a reverse conversion (rust-lang/rust-by-example#1307)
- Improve grammar in example of 'in let' section (rust-lang/rust-by-example#1308)

## embedded-book

2 commits in b2e1092bf67bd4d7686c4553f186edbb7f5f92db..b81ffb7a6f4c5aaed92786e770e99db116aa4ebd
2020-01-30 08:45:46 +0000 to 2020-02-27 08:06:04 +0000
- Setting output to `high` needs a `true` argument  (rust-embedded/book#227)
- Add licence notes to index.md  (rust-embedded/book#226)
2020-03-08 11:51:15 +01:00
Mazdak Farrokhzad
c717721c1b
Rollup merge of #69599 - Centril:typeck-tweak-wording, r=davidtwco
check_binding_alt_eq_ty: improve precision wrt. `if let`

Follow up to https://github.com/rust-lang/rust/pull/69452 -- this tweaks the `check_binding_alt_eq_ty` logic wrt. wording so that `if let` doesn't include "in this arm" (because there can only ever be one arm).

r? @estebank
2020-03-08 11:51:14 +01:00
Mazdak Farrokhzad
d4860fcff3
Rollup merge of #69561 - JohnTitor:clean-up-unstable-book, r=Mark-Simulacrum
Clean up unstable book

- #58402's feature was renamed to `tidy_test_never_used_anywhere_else` and it is now used for tidy only
- `read_initializer` link is wrong and the doc should be auto-generated so removed
- Add dummy doc for `link_cfg`
- Stop generating `compiler_builtins_lib` doc in favor of b8ccc0f8a6
- Make `rustc_attrs` tracking issue "None"
2020-03-08 11:51:12 +01:00
Mazdak Farrokhzad
24757a82f1
Rollup merge of #69548 - LeSeulArtichaut:assert-errors, r=petrochenkov
Turn trailing tokens in `assert!()` into hard errors

I didn't have time to build the compiler and thus edited the tests manually, I hope it will still pass.

Closes #69531
r? @Centril do you want to queue the Crater experiment?
2020-03-08 11:51:09 +01:00
Mazdak Farrokhzad
f459d2ed99
Rollup merge of #69422 - JohnTitor:remove-unwrap, r=Xanewok
Remove use of `unwrap()` from save-analysis

Fix #69409, fix #69416
2020-03-08 11:51:04 +01:00
bors
f943349eaf Auto merge of #69804 - Centril:rollup-u86dc1g, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #69667 (Remove the `no_debug` feature)
 - #69687 (resolve, inconsistent binding mode: tweak wording)
 - #69708 (On mismatched delimiters, only point at empty blocks that are in the same line)
 - #69765 (reduce test size for Miri)
 - #69773 (fix various typos)
 - #69787 (mir::Local is Copy we can pass it by value in these cases)
 - #69794 (Add `Layout::dangling()` to return a well-aligned `NonNull<u8>`)
 - #69797 (Correct version that relaxed orphan rules)

Failed merges:

r? @ghost
2020-03-08 05:27:21 +00:00
Mazdak Farrokhzad
8ee7278fca
Rollup merge of #69797 - jongiddy:convert-version, r=Mark-Simulacrum
Correct version that relaxed orphan rules

Docs say
> Prior to Rust 1.40, if the destination type was not part of the current crate then you couldn't implement From directly

Version 1.41 of Rust introduced the change to the orphan rules - https://blog.rust-lang.org/2020/01/30/Rust-1.41.0.html#relaxed-restrictions-when-implementing-traits - so this should say
> Prior to Rust 1.41...
2020-03-07 17:27:37 +01:00
Mazdak Farrokhzad
963b0aa541
Rollup merge of #69794 - TimDiekmann:dangling, r=Amanieu
Add `Layout::dangling()` to return a well-aligned `NonNull<u8>`

Adds a convenient function to `Layout` to create a `NonNull<u8>` out of a layout to be returned on ZST allocations.

This is the first item on the roadmap to support ZSTs in `AllocRef`: https://github.com/rust-lang/wg-allocators/issues/38#issuecomment-595861542

r? @Amanieu
2020-03-07 17:27:35 +01:00
Mazdak Farrokhzad
f1f4864de3
Rollup merge of #69787 - spastorino:use-local-directly-its-copy, r=oli-obk
mir::Local is Copy we can pass it by value in these cases

r? @oli-obk
2020-03-07 17:27:34 +01:00
Mazdak Farrokhzad
10f999b72d
Rollup merge of #69773 - matthiaskrgr:typos, r=petrochenkov
fix various typos
2020-03-07 17:27:32 +01:00
Mazdak Farrokhzad
e6d4996a43
Rollup merge of #69765 - RalfJung:miri-test, r=LukasKalbertodt
reduce test size for Miri

The larger sizes take quite a while, and there is probably little point in repeating this quite so often.
2020-03-07 17:27:30 +01:00
Mazdak Farrokhzad
1a1f948deb
Rollup merge of #69708 - estebank:tiny, r=petrochenkov
On mismatched delimiters, only point at empty blocks that are in the same line

We point at empty blocks when we have mismatched braces to detect cases where editors auto insert `}` after writing `{`. Gate this to only the case where the entire span is in the same line so we never point at explicitly empty blocks.
2020-03-07 17:27:29 +01:00
Mazdak Farrokhzad
289c3a5f6e
Rollup merge of #69687 - Centril:bm-inconsistent-wording, r=estebank
resolve, inconsistent binding mode: tweak wording

Now that we can have e.g. `let Ok(x) | Err(x) = res;`, it's no longer appropriate to refer to "the same *match arm*", so let's tweak the wording.

r? @estebank
2020-03-07 17:27:27 +01:00
Mazdak Farrokhzad
614cd8dc47
Rollup merge of #69667 - JohnTitor:no-debug, r=nikomatsakis
Remove the `no_debug` feature

Context: https://github.com/rust-lang/rust/issues/29721#issuecomment-367642779

r? @nikomatsakis
2020-03-07 17:27:26 +01:00
bors
823ff8cf13 Auto merge of #69676 - ecstatic-morse:fix-enum-discr-effect, r=oli-obk
Pass correct place to `discriminant_switch_effect`

PR #69562, which fixed a bug that was causing clippy to ICE, mistakenly passed the place holding the *result* of `Rvalue::Discriminant` instead of the place holding its *operand* to `apply_discriminant_switch_effect` as the enum place. As a result, no effect was applied at all, and we lost the perf benefits from marking inactive enum variants as uninitialized.

**edit:** The regression test has been split into #69744.

r? @oli-obk
2020-03-07 13:47:46 +00:00
Jonathan Giddy
dffd18fafc Correct version that relaxed orphan rules 2020-03-07 08:21:27 +00:00
bors
a03921701c Auto merge of #69796 - Centril:rollup-xg85jmx, r=Centril
Rollup of 9 pull requests

Successful merges:

 - #67741 (When encountering an Item in a pat context, point at the item def)
 - #68985 (Parse & reject postfix operators after casts)
 - #69656 (Use .next() instead of .nth(0) on iterators.)
 - #69680 (rustc_expand: Factor out `Annotatable::into_tokens` to a separate method)
 - #69690 (test(pattern): add tests for combinations of pattern features)
 - #69706 (Use subslice patterns in slice methods)
 - #69727 (Avoid using `unwrap()` in suggestions)
 - #69754 (Update deprecation version to 1.42 for Error::description)
 - #69782 (Don't redundantly repeat field names (clippy::redundant_field_names))

Failed merges:

r? @ghost
2020-03-07 08:07:10 +00:00
Mazdak Farrokhzad
709325af67
Rollup merge of #69782 - matthiaskrgr:redundant_field_name_rep, r=cramertj
Don't redundantly repeat field names (clippy::redundant_field_names)
2020-03-07 08:15:33 +01:00
Mazdak Farrokhzad
ca90c3d0a7
Rollup merge of #69754 - Dylnuge:dylnuge/dep-version, r=Mark-Simulacrum
Update deprecation version to 1.42 for Error::description

Error::description is deprecated as of version 1.42, as the commit was
not in the release for 1.41.

Fixes #69751
2020-03-07 08:15:32 +01:00
Mazdak Farrokhzad
93a57cf3a8
Rollup merge of #69727 - JohnTitor:sugg-unwrap, r=estebank
Avoid using `unwrap()` in suggestions

Fixes #69725

r? @estebank
2020-03-07 08:15:30 +01:00
Mazdak Farrokhzad
b25fb9e79b
Rollup merge of #69706 - cuviper:subslice-methods, r=Centril
Use subslice patterns in slice methods

For all of the methods that pick off the first or last element, we can
use subslice patterns to implement them directly, rather than relying on
deeper indexing function calls. At a minimum, this means the generated
code will rely less on inlining for performance, but in some cases it
also optimizes better.
2020-03-07 08:15:29 +01:00
Mazdak Farrokhzad
ba1f6cbb00
Rollup merge of #69690 - thekuom:test/67311-extend-bindings-after-at-tests, r=Centril
test(pattern): add tests for combinations of pattern features

Reference issue #67311

Tests combinations of the following pattern features:
- bindings_after_at
- or_patterns
- slice_patterns
- box_patterns

r? @Centril
2020-03-07 08:15:28 +01:00
Mazdak Farrokhzad
e9c3ddc8df
Rollup merge of #69680 - petrochenkov:nont4, r=Centril
rustc_expand: Factor out `Annotatable::into_tokens` to a separate method

Minor refactoring salvaged from https://github.com/rust-lang/rust/pull/69594.
r? @Centril
2020-03-07 08:15:26 +01:00
Mazdak Farrokhzad
5d1433b1f4
Rollup merge of #69656 - matthiaskrgr:iter_nth_zero, r=oli-obk
Use .next() instead of .nth(0) on iterators.
2020-03-07 08:15:24 +01:00
Mazdak Farrokhzad
111724f5e2
Rollup merge of #68985 - daboross:fix-35813, r=Centril
Parse & reject postfix operators after casts

This adds an explicit error messages for when parsing `x as Type[0]` or similar expressions. Our add an extra parse case for parsing any postfix operator (dot, indexing, method calls, await) that triggers directly after parsing `as` expressions.

My friend and I worked on this together, but they're still deciding on a github username and thus I'm submitting this for both of us.

It will immediately error out, but will also provide the rest of the parser with a useful parse tree to deal with.

There's one decision we made in how this produces the parse tree. In the situation `&x as T[0]`, one could imagine this parsing as either `&((x as T)[0])` or `((&x) as T)[0]`. We chose the latter for ease of implementation, and as it seemed the most intuitive.

Feedback welcome! This is our first change to the parser section, and it might be completely horrible.

Fixes #35813.
2020-03-07 08:15:21 +01:00
Mazdak Farrokhzad
e8bb6c05ab
Rollup merge of #67741 - estebank:point-at-pat-def, r=Centril
When encountering an Item in a pat context, point at the item def

```
error[E0308]: mismatched types
  --> $DIR/const-in-struct-pat.rs:8:17
   |
LL | struct foo;
   | ----------- `foo` defined here
...
LL |     let Thing { foo } = t;
   |                 ^^^ expected struct `std::string::String`, found struct `foo`
   |
   = note: `foo` is interpreted as a unit struct, not a new binding
help: you can bind the struct field to a different name
   |
LL |     let Thing { foo: other_foo } = t;
   |                 ^^^^^^^^^^^^^^
```
```
error[E0308]: mismatched types
  --> $DIR/const.rs:14:9
   |
LL | const FOO: Foo = Foo{bar: 5};
   | ----------------------------- constant defined here
...
LL |         FOO => {},
   |         ^^^
   |         |
   |         expected `&Foo`, found struct `Foo`
   |         `FOO` is interpreted as a constant, not a new binding
   |         help: use different name to introduce a new binding: `other_foo`
```

Fix #55631, fix #48062, cc #42876.
2020-03-07 08:15:19 +01:00
Tim Diekmann
09d3ba13af
Update alloc.rs 2020-03-07 02:45:55 +01:00
Tim Diekmann
545ef9d83a Add Layout::dangling() to return a well-aligned NonNull<u8> 2020-03-07 02:40:54 +01:00
Esteban Küber
125159f30a When encountering an Item in a pat context, point at the item def 2020-03-06 15:29:26 -08:00
Santiago Pastorino
0ed6e795fb
mir::Local is Copy we can pass it by value in these cases 2020-03-06 18:23:18 -03:00
LeSeulArtichaut
33ebc20513 Turn trailing tokens in assert!() into hard errors 2020-03-06 22:02:20 +01:00
Yuki Okushi
3d67649287
Add a regression test 2020-03-07 04:38:50 +09:00
Yuki Okushi
1631b4de1c
Avoid using unwrap() in suggestions 2020-03-07 04:24:13 +09:00
Matthias Krüger
83980aca20 Don't redundantly repeat field names (clippy::redundant_field_names) 2020-03-06 19:42:18 +01:00
Matthias Krüger
4c2b0f1631 bless tests 2020-03-06 19:37:22 +01:00
Yuki Okushi
18080e6072
Remove NO_DEBUG const 2020-03-07 03:32:01 +09:00
bors
2890b37b86 Auto merge of #69753 - pnkfelix:issue-69191-ice-on-uninhabited-enum-field, r=oli
Do not ICE when matching an uninhabited enum's field

Fix #69191
2020-03-06 17:52:52 +00:00
Vadim Petrochenkov
2d0c5b4337 rustc_expand: Factor out Annotatable::into_tokens to a separate method 2020-03-06 20:34:01 +03:00
Matthias Krüger
136ad015b6 fix various typos 2020-03-06 15:19:31 +01:00
Felix S. Klock II
b4422fb14b Added oli's multivariant test case (alpha renaming the enum name itself).
(And added Ralf's suggested test.)

Added my own three-variant multi-variant as well.
2020-03-06 06:46:37 -05:00
bors
865b44a3e3 Auto merge of #69614 - estebank:ice-age, r=davidtwco
`delay_span_bug` when codegen cannot select obligation

Fix #69602, introduced in #60126 by letting the compiler continue past
type checking after encountering errors.
2020-03-06 08:24:48 +00:00
Oliver Scherer
40809b0585
Add FIXME 2020-03-06 08:48:58 +01:00
Dylan Nugent
9afbf28ef6 Update deprecation version to 1.42 for Error::description
Error::description is deprecated as of version 1.42, as the commit was
not in the release for 1.41.
2020-03-05 21:55:36 -05:00
Felix S. Klock II
9712fa4059 Fix #69191 2020-03-05 21:53:26 -05:00
bors
4a1b69d53a Auto merge of #69586 - petrochenkov:unmerge, r=Centril
ast: Unmerge structures for associated items and foreign items

Follow-up to https://github.com/rust-lang/rust/pull/69194.
r? @Centril
2020-03-06 02:22:49 +00:00
Ralf Jung
2770f300b1 reduce test size for Miri 2020-03-05 23:41:17 +01:00
bors
b818ccc74c Auto merge of #69746 - Dylan-DPC:rollup-wr6dvdk, r=Dylan-DPC
Rollup of 8 pull requests

Successful merges:

 - #69697 (Add explanation for E0380)
 - #69698 (Use associated constants of integer types)
 - #69711 (Update macros.rs: fix documentation typo.)
 - #69713 (more clippy cleanups)
 - #69728 (Make link to `std::str` active)
 - #69732 (Clean E0382 and E0384 explanations)
 - #69736 (even more clippy cleanups)
 - #69742 (Fixed a typo)

Failed merges:

r? @ghost
2020-03-05 21:39:00 +00:00
Dylan DPC
80c843431d
Rollup merge of #69742 - TrolledWoods:patch-1, r=jonas-schievink
Fixed a typo

"vector" was used instead of "string". I think this is a typo?
2020-03-05 22:04:12 +01:00
Dylan DPC
67d735c4bf
Rollup merge of #69736 - matthiaskrgr:even_more_clippy, r=Dylan-DPC
even more clippy cleanups

* Don't pass &mut where immutable reference (&) is sufficient (clippy::unnecessary_mut_passed)
* Use more efficient &&str to String conversion (clippy::inefficient_to_string)
* Don't always eval arguments inside .expect(), use unwrap_or_else and closure. (clippy::expect_fun_call)
* Use righthand '&' instead of lefthand "ref". (clippy::toplevel_ref_arg)
* Use simple 'for i in x' loops instead of 'while let Some(i) = x.next()' loops on iterators. (clippy::while_let_on_iterator)
* Const items have by default a static lifetime, there's no need to annotate it. (clippy::redundant_static_lifetimes)
* Remove redundant patterns when matching ( x @ _  to  x) (clippy::redundant_pattern)
2020-03-05 22:04:10 +01:00
Dylan DPC
558115b86c
Rollup merge of #69732 - GuillaumeGomez:cleanup-e0382-e0384, r=Dylan-DPC
Clean E0382 and E0384 explanations

r? @Dylan-DPC
2020-03-05 22:04:09 +01:00