103301 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
d845e6fc8d
Rollup merge of #64856 - jonhoo:format-temporaries, r=sfackler
Scope format! temporaries

This places the temporaries that `format!` generates to refer to its arguments (through `&dyn Trait`) in a short-lived scope surrounding just the invocation of `format!`. This enables `format!` to be used in generators without the temporaries preventing the generator from being `Send` (due to `dyn Trait` not being `Sync`).

See rust-lang/rust#64477 for details.
2019-11-24 03:16:57 +01:00
Esteban Küber
180388670e review comments 2019-11-23 17:34:04 -08:00
Esteban Küber
4f25c618ad Rework raw ident suggestions
Use heuristics to determine whethersuggesting raw identifiers is
appropriate.

Account for raw identifiers when printing a path in a `use` suggestion.
2019-11-23 17:06:34 -08:00
Mark Mansi
135c8b9297 drive-by cleanup in region naming 2019-11-23 19:06:23 -06:00
Esteban Küber
d92355c1db Highlight parts of fn in type errors
When a type error arises between two fn items, fn pointers or tuples,
highlight only the differing parts of each.
2019-11-23 16:50:28 -08:00
Janusz Marcinkiewicz
9300c3b6ad Add FIXME for using 'parse_delim_comma_seq' when parsing enum variants 2019-11-23 23:23:40 +01:00
bors
ad808d95c4 Auto merge of #66680 - Centril:rollup-1ke3svj, r=Centril
Rollup of 5 pull requests

Successful merges:

 - #61351 (Stabilize cfg(doc))
 - #66539 (Point at type in `let` assignment on type errors)
 - #66655 (rustdoc: Mark `--extern-private` as unstable)
 - #66657 (rustdoc: Don't panic when failing to write .lock file)
 - #66673 (Move def collector from `rustc` to `rustc_resolve`)

Failed merges:

r? @ghost
2019-11-23 22:23:20 +00:00
Mazdak Farrokhzad
c215de0062
Rollup merge of #66673 - petrochenkov:toresolve, r=Centril
Move def collector from `rustc` to `rustc_resolve`

It's used only from `rustc_resolve`, so we can move it there, thus reducing the size of `rustc` (https://github.com/rust-lang/rust/issues/65031).

It's quite possible that we can merge the def collector pass into the "build reduced graph" pass (they are always run together and do similar things), but it's some larger work.

r? @eddyb
2019-11-23 23:22:39 +01:00
Mazdak Farrokhzad
0bb06cbea9
Rollup merge of #66657 - ollie27:rustdoc_flock_panic, r=GuillaumeGomez
rustdoc: Don't panic when failing to write .lock file

It can be treated like any other unexpected IO error.

I couldn't think of a good way to add a test for this unfortunately.

r? @GuillaumeGomez
2019-11-23 23:22:38 +01:00
Mazdak Farrokhzad
8ad3b5ccca
Rollup merge of #66655 - ollie27:rustdoc_extern-private_unstable, r=GuillaumeGomez
rustdoc: Mark `--extern-private` as unstable

It's not even stable in rustc so it shouldn't be stable in rustdoc.

r? @kinnison
2019-11-23 23:22:36 +01:00
Mazdak Farrokhzad
62a7839b45
Rollup merge of #66539 - estebank:let-ty, r=Centril
Point at type in `let` assignment on type errors

Fix #61067.
2019-11-23 23:22:34 +01:00
Mazdak Farrokhzad
6618af2c5c
Rollup merge of #61351 - GuillaumeGomez:stabilize-cfg-rustdoc, r=QuietMisdreavus
Stabilize cfg(doc)

cc #43781.
2019-11-23 23:22:33 +01:00
Guillaume Gomez
347575a825 Remove useless line for error index generation 2019-11-23 22:07:52 +01:00
Wesley Wiser
2b6815a69e [const prop] Fix "alloc id without corresponding allocation" ICE
Fixes #66345
2019-11-23 15:11:59 -05:00
Wesley Wiser
c5e762fd88 Intern allocations during constant propagation 2019-11-23 15:11:56 -05:00
bors
0c987c5c02 Auto merge of #66674 - flip1995:clippyup, r=Manishearth
Update Clippy

r? @Manishearth @oli-obk
2019-11-23 18:51:10 +00:00
Camille GILLOT
782cc9f65c Derive HashStable for TokenKind. 2019-11-23 18:52:23 +01:00
Guillaume Gomez
433f2b030b Add test for anchors 2019-11-23 18:46:07 +01:00
Guillaume Gomez
454d13badf Handle anchor errors 2019-11-23 18:46:07 +01:00
Camille GILLOT
4d1674f620 Use proc-macro for TokenTree. 2019-11-23 18:22:24 +01:00
Camille GILLOT
7e411e7f55 Implement HashStable for Span in libsyntax_pos. 2019-11-23 18:09:36 +01:00
Camille GILLOT
ea0c354758 Move CachingSourceMapView to libsyntax_pos. 2019-11-23 17:57:17 +01:00
Camille GILLOT
ce301075c0 Rename StableHashingContextLike to HashStableContext. 2019-11-23 17:57:00 +01:00
flip1995
450880fd89
Update Cargo.lock 2019-11-23 17:27:36 +01:00
flip1995
798d579f25
Update Clippy 2019-11-23 17:26:34 +01:00
Paul Dicker
3b1c742e23 Add as_mut_ptr method to atomic types. 2019-11-23 17:24:14 +01:00
bors
529829a037 Auto merge of #66653 - ivan:lint-name-fix, r=Centril
docs: fix lint name for `unused_variables`
2019-11-23 15:38:49 +00:00
Aaron Hill
2ba982d0e5
Remove unnecessary clone 2019-11-23 10:23:12 -05:00
Guillaume Gomez
09293bec92 Handle anchors in intra doc links 2019-11-23 16:21:29 +01:00
Vadim Petrochenkov
bbbdbb0e44 Move def collector from rustc to rustc_resolve 2019-11-23 18:19:57 +03:00
Ralf Jung
9233a54176 only print LEAK REPORT if there is a leak 2019-11-23 09:24:47 +01:00
Ralf Jung
a8430a4ee5 Miri: print leak report even without tracing 2019-11-23 09:12:24 +01:00
Ralf Jung
a2299799e6 enable more panic-catching tests in Miri 2019-11-23 08:53:53 +01:00
msizanoen1
75dac389fb Add riscv64gc-unknown-linux-gnu target 2019-11-23 14:47:53 +07:00
bors
9420ff4c0e Auto merge of #66597 - MaulingMonkey:pr-natvis-std-collections-hash, r=michaelwoerister
debuginfo:  Support for std::collections::Hash* in windows debuggers.

Okay, I finally needed to debug code involving a HashMap!  Added support for HashSet s as well.

r? @michaelwoerister

### Local Testing

Verified these are passing locally:
```cmd
:: cmd.exe
python x.py test --stage 1 --build x86_64-pc-windows-msvc src/test/debuginfo
python x.py test --stage 1 --build i686-pc-windows-msvc src/test/debuginfo
python x.py test --stage 1 src/tools/tidy

:: MinGW MSYS2
./x.py test --stage 1 --build x86_64-pc-windows-gnu src/test/debuginfo
```

### Related Issues

* https://github.com/rust-lang/rust/issues/36503
* https://github.com/rust-lang/rust/issues/40460
* https://github.com/rust-gamedev/wg/issues/20
2019-11-23 07:27:17 +00:00
Mazdak Farrokhzad
59257e6e88 make ./x.py bench again 2019-11-23 07:06:27 +01:00
bors
d9025395c8 Auto merge of #66656 - Centril:rollup-fivygwz, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #65961 (add fn type_name_of_val)
 - #66574 (Update tidy check for error codes testing)
 - #66576 (made gdb pretty-printing more robust when printing uninitialized vec)
 - #66583 (Clarify Step Documentation)

Failed merges:

r? @ghost
2019-11-23 04:24:35 +00:00
Janusz Marcinkiewicz
bbd0d9bea0 Cleanup code after review fixes 2019-11-23 04:01:14 +01:00
Janusz Marcinkiewicz
0e660d8a79 Add error reporting on nested keywords inside 'enum' definition 2019-11-23 03:41:12 +01:00
Oliver Middleton
05ef20f922 rustdoc: Don't panic when failing to write .lock file
It can be treated like any other unexpected IO error.
2019-11-23 02:08:10 +00:00
Wesley Wiser
8c406dc29c Allow miri allocation interning to work im generic Machines
This is necessary so that the `ComstPropMachine` can intern allocations.
2019-11-22 20:42:25 -05:00
Mazdak Farrokhzad
8024e0df4b
Rollup merge of #66583 - Phlosioneer:patch-2, r=Dylan-DPC
Clarify Step Documentation

While the redesign is in progress (#62886), clarify the purpose of replace_zero and replace_one.

First, "returning itself" is technically impossible due to the function signature of &mut self -> Self. A clone or copy operation must be used. So this is now explicitly stated in the documentation.

Second, the added docs give some guidance about the actual contract around implementation of replace_zero and replace one. Specifically, the only usage is to create a range with no more steps, by setting start to replace_one and end to replace_zero. So the only property that is actually used is `replace_one > replace_zero`. See https://github.com/rust-lang/rust/issues/42168#issuecomment-489554232

The new documentation does not say that is the *only* contract, and so it should not be considered an api change. It just highlights the most important detail for implementors.

The redesign doesn't seem to be landing any time soon, so this is a stopgap measure to reduce confusion in the meantime.
2019-11-23 02:22:49 +01:00
Mazdak Farrokhzad
e94f066b02
Rollup merge of #66576 - pnkfelix:more-robust-gdb-vec-printer, r=alexcrichton
made gdb pretty-printing more robust when printing uninitialized vec

made gdb pretty-printing more robust when printing uninitialized vec

I based this solution on my reading of:

https://rethinkdb.com/blog/make-debugging-easier-with-custom-pretty-printers#what-is-still-to-be-done

That post claims that there is no clean way to check for garbage pointers, and
so this PR adopts the same solution of tentatively attempting to convert a
dererence to a string, which throws a clean exception on garbage that we can
catch and recover from.

I only made the change to vec and not the other pretty printers because I wanted
to focus my effort on the simplest thing that would resolve issue #64343. In
particular, I *considered* generalizing this fix to work on the other datatypes
in the pretty-printing support library, but I don't want to invest effort in
that until after we resolve our overall debugging support strategy; see also
issues #60826 and #65564.

Fix #64343
2019-11-23 02:22:47 +01:00
Mazdak Farrokhzad
8256e735cf
Rollup merge of #66574 - GuillaumeGomez:update-tidy-err-code-check, r=Mark-Simulacrum
Update tidy check for error codes testing

Now that all the error codes have been grouped into one file, we moved the long error explanations into markdown files, which means that we need to read those markdown file to also count their code blocks as well.

So 2 "big" things happened here:
* No more need to keep the current error code when reading the `error_codes.rs` file since it's been put into the equivalent markdown file.
* Need to instead read the markdown file (but it's simpler since I can just look for code blocks directly).
2019-11-23 02:22:45 +01:00
Mazdak Farrokhzad
0ae4a19cf3
Rollup merge of #65961 - lcnr:typename_of, r=Dylan-DPC
add fn type_name_of_val

This function is often useful during testing and mirrors `align_of_val` and `size_of_val`.

# Example

Showing the default type of integers.

```rust
let x = 7;
println!("per default, integers have the type: {}", std::any::type_name_of_val(&x));
```

To my knowledge this can currently not be done without defining a function similar to `type_name_of_val`.
2019-11-23 02:22:44 +01:00
bors
6d523ee501 Auto merge of #66507 - ecstatic-morse:const-if-match, r=oli-obk
Enable `if` and `match` in constants behind a feature flag

This PR is an initial implementation of #49146. It introduces a `const_if_match` feature flag and does the following if it is enabled:
- Allows `Downcast` projections, `SwitchInt` terminators and `FakeRead`s for matched places through the MIR const-checker.
- Allows `if` and `match` expressions through the HIR const-checker.
- Stops converting `&&` to `&` and `||` to `|` in `const` and `static` items.

As a result, the following operations are now allowed in a const context behind the feature flag:
- `if` and `match`
- short circuiting logic operators (`&&` and `||`)
- the `assert` and `debug_assert` macros (if the `const_panic` feature flag is also enabled)

However, the following operations remain forbidden:
- `while`, `loop` and `for` (see #52000)
- the `?` operator (calls `From::from` on its error variant)
- the `assert_eq` and `assert_ne` macros, along with their `debug` variants (calls `fmt::Debug`)

This PR is possible now that we use dataflow for const qualification (see #64470 and #66385).

r? @oli-obk
cc @rust-lang/wg-const-eval @eddyb
2019-11-23 01:13:41 +00:00
Ivan Kozik
aa40c48c36 docs: fix lint name for unused_variables 2019-11-23 00:15:55 +00:00
Oliver Middleton
4fcb3384ad rustdoc: Mark --extern-private as unstable
It's not even stable in rustc so it shouldn't be stable in rustdoc.
2019-11-23 00:15:39 +00:00
Ralf Jung
8af2f22985 enable panic-catching tests in Miri 2019-11-22 23:35:56 +01:00
Ralf Jung
3277209af5 use catch_panic instead of thread::spawn to catch panics 2019-11-22 23:21:20 +01:00