Commit graph

122801 commits

Author SHA1 Message Date
Tyler Mandry
887fbd9d34 Split out async fn and generator test
This keeps FileCheck from tripping over unimportant differences in
codegen.
2020-06-24 15:08:59 -07:00
Tyler Mandry
fe3df646fe Give up on checking filename 2020-06-24 15:08:59 -07:00
Tyler Mandry
2d652d9d73 Add generator-debug test for MSVC
..which doesn't use variant types.
2020-06-24 15:08:59 -07:00
Tyler Mandry
477ecc51ca Generalize generator-debug test a bit
Don't be so reliant on particular line ordering (though FileCheck makes
this hard in general, IMO). Also disable for MSVC.
2020-06-24 14:53:30 -07:00
Tyler Mandry
547d86307c Improve GeneratorLayout debug output 2020-06-24 14:53:30 -07:00
Tyler Mandry
242a5cd4c6 Allow calling GeneratorSubsts::variant_name() without substs 2020-06-24 14:53:29 -07:00
Tyler Mandry
367858aedc Add test for generator debuginfo 2020-06-24 14:53:29 -07:00
Tyler Mandry
eb726c0fce Add Artificial flag to generator variants 2020-06-24 14:53:29 -07:00
Tyler Mandry
a5a831f511 Emit line info for generator variants 2020-06-24 14:53:29 -07:00
LeSeulArtichaut
2735f43cef
Fix links in SliceIndex documentation 2020-06-24 23:34:19 +02:00
Esteban Küber
09af1845d7 review comments: clean up code
* deduplicate logic
* fix typos
* remove unnecessary state
2020-06-24 14:23:45 -07:00
bors
67100f61e6 Auto merge of #73660 - flip1995:clippyup, r=nikomatsakis
Update Clippy
2020-06-24 19:33:02 +00:00
Eduardo Sánchez Muñoz
771a1d8e0a Make std::panicking::panic_count::is_zero inline and move the slow path into a separate cold function. 2020-06-24 18:17:27 +02:00
bors
d8ed1b03c2 Auto merge of #73692 - Dylan-DPC:rollup-ehzsbfw, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #73638 (Remove unused crate imports in 2018 edition crates)
 - #73639 (Change heuristic for determining range literal)
 - #73646 (Add some regression tests)
 - #73652 (Add re-exports to use suggestions)
 - #73667 (Update BTreeMap::new() doc)
 - #73675 (Update books)

Failed merges:

r? @ghost
2020-06-24 15:47:22 +00:00
Anirban
d6cf8fc63e
Update README.md 2020-06-24 21:09:08 +05:30
Santiago Pastorino
ff068762a0
Alert @WG-prioritization/alerts instead of @WG-prioritization 2020-06-24 12:36:17 -03:00
Santiago Pastorino
5881b52d9a
Change wg-prioritization stream 2020-06-24 12:32:44 -03:00
Nathan Corbyn
493199626b Fix tests 2020-06-24 15:36:04 +01:00
Nathan Corbyn
c2dfc25c0e Fix tests 2020-06-24 15:10:10 +01:00
Nathan Corbyn
d36d351afc Implement intrinsic 2020-06-24 14:38:42 +01:00
LeSeulArtichaut
78baf421aa
Add procedure for prioritization notifications on Zulip 2020-06-24 15:33:08 +02:00
Alexis Bourget
f44b8b96aa Document the Self keyword 2020-06-24 15:00:05 +02:00
Dylan DPC
be8f381c8a
Rollup merge of #73675 - ehuss:update-books, r=ehuss
Update books

## reference

5 commits in 5d40ba5c2515caffa7790cda621239dc21ef5a72..04d5d5d7ba624b6f5016298451f3a63d557f3260
2020-06-06 20:25:36 -0700 to 2020-06-16 15:08:05 -0700
- Mention `feature="foo"` is a Cargo convention. (rust-lang-nursery/reference#833)
- fix out of date info on type aliases (rust-lang-nursery/reference#831)
- Fix an invalid variable name in the loop example (rust-lang-nursery/reference#832)
- Fix note about using proc_macro with Cargo. (rust-lang-nursery/reference#815)
- Add a link to the definition of Pattern_White_Space. (rust-lang-nursery/reference#824)

## book

7 commits in 30cd9dfe71c446de63826bb4472627af45acc9db..4e7c00bece1544d409312ec93467beb62b5bd0cb
2020-06-07 23:07:19 -0500 to 2020-06-19 09:39:12 -0400
- Link to the reference file that exists
- Link to the reference
- Clean up discussion around advanced lifetime stuff (rust-lang/book#2351)
- Reword Chapter 6 page 2, match (rust-lang/book#2374)
- Clarify some package/crate distinctions in chapter 14 (rust-lang/book#2373)
- Not mandatory with cargo 1.41.0-nightly (rust-lang/book#2368)
- Use same naming for Rhs as libcore/ops (rust-lang/book#2371)

## rust-by-example

4 commits in 7aa82129aa23e7e181efbeb8da03a2a897ef6afc..6f94ccb48da6fa4ed0031290f21411cf789f7d5e
2020-05-25 14:54:26 -0300 to 2020-06-20 17:51:30 -0300
- Update to mdbook 0.3.7 (rust-lang/rust-by-example#1352)
- Update fn.md (rust-lang/rust-by-example#1351)
- Fixed typo in formatted print (rust-lang/rust-by-example#1350)
- This explanation incorrectly inverts the meaning of SuperTrait (rust-lang/rust-by-example#1349)

## embedded-book

5 commits in 5555a97f04ad7974ac6fb8fb47c267c4274adf4a..616962ad0dd80f34d8b802da038d0aed9dd691bb
2020-05-25 18:00:51 +0000 to 2020-06-23 16:03:45 +0000
- Update RTFM name to RTIC, fixed links, updated singletons.md example.  (rust-embedded/book#254)
- Note on how to rebuild if memory.x is changed  (rust-embedded/book#253)
- Ease the readers into the Discovery book  (rust-embedded/book#250)
- Provide a note on 'extern crate' usage in edition 2018 syntax of Rust  (rust-embedded/book#248)
- Fix Typos and Improve Readability  (rust-embedded/book#245)
2020-06-24 14:28:47 +02:00
Dylan DPC
c4e15b5c5a
Rollup merge of #73667 - nrabulinski:master, r=Dylan-DPC
Update BTreeMap::new() doc

Updates the documentation according to [this comment](0c5c644c91 (r433232581)) on #72876
2020-06-24 14:28:45 +02:00
Dylan DPC
2a6e660ae1
Rollup merge of #73652 - da-x:add-reexported-to-use-suggestions, r=petrochenkov
Add re-exports to use suggestions

In the following example, an inaccessible path is suggested via `use foo::bar::X;` whereas an accessible public exported path can be suggested instead.

```rust
mod foo {
    mod bar {
        pub struct X;
    }
    pub use self::bar::X;
}

fn main() { X; }
```

This fixes the issue.
2020-06-24 14:28:43 +02:00
Dylan DPC
45de677b1e
Rollup merge of #73646 - JohnTitor:add-tests, r=Dylan-DPC
Add some regression tests

Closes #44861
Closes #51506
Closes #59435
Closes #69840
2020-06-24 14:28:41 +02:00
Dylan DPC
1d1c400324
Rollup merge of #73639 - ayazhafiz:i/73553, r=davidtwco
Change heuristic for determining range literal

Currently, rustc uses a heuristic to determine if a range expression is
not a literal based on whether the expression looks like a function call
or struct initialization. This fails for range literals whose
lower/upper bounds are the results of function calls. A possibly-better
heuristic is to check if the expression contains `..`, required in range
literals.

Of course, this is also not perfect; for example, if the range
expression is a struct which includes some text with `..` this will
fail, but in general I believe it is a better heuristic.

A better alternative altogether is to add the `QPath::LangItem` enum
variant suggested in #60607. I would be happy to do this as a precursor
to this patch if someone is able to provide general suggestions on how
usages of `QPath` need to be changed later in the compiler with the
`LangItem` variant.

Closes #73553
2020-06-24 14:28:39 +02:00
Dylan DPC
38c85b7393
Rollup merge of #73638 - yuqio:remove-unused-crate-imports, r=nikomatsakis
Remove unused crate imports in 2018 edition crates

Closes #73570
2020-06-24 14:28:33 +02:00
bors
0b66a89735 Auto merge of #73679 - ehuss:update-cargo, r=ehuss
Update cargo

9 commits in 089cbb80b73ba242efdcf5430e89f63fa3b5328d..c26576f9adddd254b3dd63aecba176434290a9f6
2020-06-15 14:38:34 +0000 to 2020-06-23 16:21:21 +0000
- Adding environment variable CARGO_PKG_LICENSE_FILE (rust-lang/cargo#8387)
- Enable "--target-dir" in "cargo install" (rust-lang/cargo#8391)
- Add support for `workspace.metadata` table (rust-lang/cargo#8323)
- Fix overzealous `clean -p` for reserved names. (rust-lang/cargo#8398)
- Fix order-dependent feature resolution. (rust-lang/cargo#8395)
- Correct mispelling of `cargo`. (rust-lang/cargo#8389)
- Add missing license field. (rust-lang/cargo#8386)
- Adding environment variable CARGO_PKG_LICENSE (rust-lang/cargo#8325)
- Cut down on data fetch from git dependencies (rust-lang/cargo#8363)
2020-06-24 12:08:53 +00:00
Alexis Bourget
03661630c9 Document the self keyword 2020-06-24 13:52:57 +02:00
Guillaume Gomez
65becefd4a Clean up E0701 explanation 2020-06-24 13:19:06 +02:00
David Wood
4504648090
improper_ctypes: only allow params in defns mode
This commit adjusts the behaviour introduced in a previous commit so
that generic parameters and projections are only allowed in the
definitions mode - and are otherwise a bug. Generic parameters in
declarations are prohibited earlier in the compiler, so if that branch
were reached, it would be a bug.

Signed-off-by: David Wood <david@davidtw.co>
2020-06-24 12:09:39 +01:00
David Wood
5c8634805c
improper_ctypes: allow pointers to sized types
This commit changes the improper ctypes lint (when operating on
definitions) to consider raw pointers or references to sized types as
FFI-safe.

Signed-off-by: David Wood <david@davidtw.co>
2020-06-24 12:09:37 +01:00
David Wood
14ea7a777f
lints: add improper_ctypes_definitions
This commit adds a new lint - `improper_ctypes_definitions` - which
functions identically to `improper_ctypes`, but on `extern "C" fn`
definitions (as opposed to `improper_ctypes`'s `extern "C" {}`
declarations).

Signed-off-by: David Wood <david@davidtw.co>
2020-06-24 12:09:35 +01:00
Adrian Cruceru
f3b1582bb9 Update libunwind build process for x86_64-fortanix-unknown-sgx target 2020-06-24 11:28:41 +02:00
Alexis Bourget
d8ea10c95f Document the return keyword
Apply suggestions from code review

Co-authored-by: Josh Triplett <josh@joshtriplett.org>
2020-06-24 09:23:55 +02:00
Ralf Jung
35911eeb93 reduce sanity check in debug mode 2020-06-24 09:03:01 +02:00
Anirban
3b5d7f8cf6
Minor correction to sentence structure 2020-06-24 10:29:35 +05:30
Jack Huey
ecb8b9f9f7 Update Chalk 2020-06-24 00:48:33 -04:00
Eric Huss
7b9b580614 Update cargo 2020-06-23 19:59:10 -07:00
Tshepang Lekhonkhobe
b23baa78dc fix
See b65ea1bef1 (r444376289)
2020-06-24 04:47:20 +02:00
Keno Fischer
0c88dd663a
Update Box::from_raw example to generalize better
I know very little about rust, so I saw this example and tried to generalize it by writing,
```
    let layout = Layout:🆕:<T>();
    let new_obj = unsafe {
        let ptr = alloc(layout) as *mut T;
        *ptr = obj;
        Box::from_raw(ptr)
    };
```
for some more complicated `T`, which ended up crashing with SIGSEGV,
because it tried to `drop_in_place` the previous object in `ptr` which is
of course garbage. I also added a comment that explains why `.write`
is used, but I think adding that comment is optional and may be too verbose
here. I do however think that changing this example is a good idea to
suggest the correct generalization. `.write` is also used in most of the rest
of the documentation here, even if the example is `i32`, so it would additionally
be more consistent.
2020-06-23 22:42:35 -04:00
bors
3c90ae8404 Auto merge of #73293 - Aaron1011:feature/macro-rules-arg-capture, r=petrochenkov
Always capture tokens for `macro_rules!` arguments

When we invoke a proc-macro, the `TokenStream` we pass to it may contain 'interpolated' AST fragments, represented by `rustc_ast::token::Nonterminal`. In order to correctly, pass a `Nonterminal` to a proc-macro, we need to have 'captured' its `TokenStream` at the time the AST was parsed.

Currently, we perform this capturing when attributes are present on items and expressions, since we will end up using a `Nonterminal` to pass the item/expr to any proc-macro attributes it is annotated with. However, `Nonterminal`s are also introduced by the expansion of metavariables in `macro_rules!` macros. Since these metavariables may be passed to proc-macros, we need to have tokens available to avoid the need to pretty-print and reparse (see https://github.com/rust-lang/rust/issues/43081).

This PR unconditionally performs token capturing for AST items and expressions that are passed to a `macro_rules!` invocation. We cannot know in advance if captured item/expr will be passed to proc-macro, so this is needed to ensure that tokens will always be available when they are needed.

This ensures that proc-macros will receive tokens with proper `Spans` (both location and hygiene) in more cases. Like all work on https://github.com/rust-lang/rust/issues/43081, this will cause regressions in proc-macros that were relying on receiving tokens with dummy spans.

In this case, Crater revealed only one regression: the [Pear](https://github.com/SergioBenitez/Pear) crate (a helper for [rocket](https://github.com/SergioBenitez/Rocket)), which was previously [fixed](https://github.com/SergioBenitez/Pear/pull/25) as part of https://github.com/rust-lang/rust/pull/73084.

This regression manifests itself as the following error:

```
[INFO] [stdout] error: proc macro panicked
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/rocket_http-0.4.5/src/parse/uri/parser.rs:119:34
[INFO] [stdout]     |
[INFO] [stdout] 119 |             let path_and_query = pear_try!(path_and_query(is_pchar));
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: message: called `Option::unwrap()` on a `None` value
[INFO] [stdout]     = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
```

It can be fixed by running `cargo update -p pear`, which updates your `Cargo.lock` to use the latest version of Pear (which includes a bugfix for the regression).

Split out from https://github.com/rust-lang/rust/pull/73084/
2020-06-24 01:24:38 +00:00
Eric Huss
e02dafcaaa Update books 2020-06-23 17:56:33 -07:00
Esteban Küber
5aab1a9a88 Tweak binop errors
* Suggest potentially missing binop trait bound (fix #73416)
* Use structured suggestion for dereference in binop
2020-06-23 17:32:06 -07:00
Eric Huss
9bb414faff Fix ptr doc warnings. 2020-06-23 16:25:01 -07:00
bors
0c04344d86 Auto merge of #73669 - Manishearth:rollup-0n4u7vq, r=Manishearth
Rollup of 11 pull requests

Successful merges:

 - #72780 (Enforce doc alias check)
 - #72876 (Mention that BTreeMap::new() doesn't allocate)
 - #73244 (Check for assignments between non-conflicting generator saved locals)
 - #73488 (code coverage foundation for hash and num_counters)
 - #73523 (Fix -Z unpretty=everybody_loops)
 - #73587 (Move remaining `NodeId` APIs from `Definitions` to `Resolver`)
 - #73601 (Point at the call span when overflow occurs during monomorphization)
 - #73613 (The const propagator cannot trace references.)
 - #73614 (fix `intrinsics::needs_drop` docs)
 - #73630 (Provide context on E0308 involving fn items)
 - #73665 (rustc: Modernize wasm checks for atomics)

Failed merges:

r? @ghost
2020-06-23 21:33:22 +00:00
Manish Goregaokar
6ed6a844e1
Rollup merge of #73665 - alexcrichton:update-wasm-atomics-feature, r=davidtwco
rustc: Modernize wasm checks for atomics

This commit modernizes how rustc checks for whether the `atomics`
feature is enabled for the wasm target. The `sess.target_features` set
is consulted instead of fiddling around with dealing with various
aspects of LLVM and that syntax.
2020-06-23 13:10:19 -07:00
Manish Goregaokar
4f2e540520
Rollup merge of #73630 - estebank:fn-item-e0308, r=davidtwco
Provide context on E0308 involving fn items

Fix #73487.
2020-06-23 13:10:17 -07:00
Manish Goregaokar
f7d5687eba
Rollup merge of #73614 - lcnr:patch-4, r=Dylan-DPC
fix `intrinsics::needs_drop` docs
2020-06-23 13:10:15 -07:00