Commit Graph

121701 Commits

Author SHA1 Message Date
Dylan DPC
2e42476267
Rollup merge of #73033 - Amanieu:asm-tls, r=oli-obk
Fix #[thread_local] statics as asm! sym operands

The `asm!` RFC specifies that `#[thread_local]` statics may be used as `sym` operands for inline assembly.

This also fixes a regression in the handling of `#[thread_local]` during monomorphization which caused link-time errors with multiple codegen units, most likely introduced by #71192.

r? @oli-obk
2020-06-12 00:05:19 +02:00
Joshua Nelson
1d8da94439 Add comment about LocalDefId -> DefId
Now there are instructions on how to convert back and forth on both
structs, not just one.
2020-06-11 17:16:38 -04:00
bors
a37c32e2d5 Auto merge of #73246 - Dylan-DPC:rollup-xnm531f, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #72180 (remove extra space from crate-level doctest names)
 - #73012 (Show `SyntaxContext` in formatted `Span` debug output)
 - #73097 (Try_run must only be used if toolstate is populated)
 - #73169 (Handle assembler warnings properly)
 - #73182 (Track span of function in method calls, and use this in #[track_caller])
 - #73207 (Clean up E0648 explanation)
 - #73230 (Suggest including unused asm arguments in a comment to avoid error)

Failed merges:

r? @ghost
2020-06-11 18:11:07 +00:00
Ayush Kumar Mishra
68b4c03dbc Add long error explanation for E0724
Minor refactoring

Minor refactoring

Update src/librustc_error_codes/error_codes/E0724.md

Co-authored-by: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>

Update src/librustc_error_codes/error_codes/E0724.md

Co-authored-by: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>

Update src/librustc_error_codes/error_codes/E0724.md

Co-authored-by: David Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>

Minor refactoring
2020-06-11 23:16:42 +05:30
LeSeulArtichaut
3a8f6c0943
Add various Zulip notifications for prioritization 2020-06-11 19:21:09 +02:00
Dylan DPC
8650df5dea
Rollup merge of #73230 - Amanieu:asm-unused2, r=petrochenkov
Suggest including unused asm arguments in a comment to avoid error

We require all arguments to an `asm!` to be used in the template string, just like format strings. However in some cases (e.g. `black_box`) it may be desirable to have `asm!` arguments that are not used in the template string.

Currently this is a hard error rather than a lint since `#[allow]` does not work on macros (#63221), so this PR suggests using the unused arguments in an asm comment as a workaround.

r? @petrochenkov
2020-06-11 19:04:20 +02:00
Dylan DPC
6b418b307c
Rollup merge of #73207 - GuillaumeGomez:cleanup-e0648, r=Dylan-DPC
Clean up E0648 explanation

r? @Dylan-DPC
2020-06-11 19:04:18 +02:00
Dylan DPC
84b9145076
Rollup merge of #73182 - Aaron1011:feature/call-fn-span, r=matthewjasper
Track span of function in method calls, and use this in #[track_caller]

Fixes #69977

When we parse a chain of method calls like `foo.a().b().c()`, each
`MethodCallExpr` gets assigned a span that starts at the beginning of
the call chain (`foo`). While this is useful for diagnostics, it means
that `Location::caller` will return the same location for every call
in a call chain.

This PR makes us separately record the span of the function name and
arguments for a method call (e.g. `b()` in `foo.a().b().c()`). This
`Span` is passed through HIR lowering and MIR building to
`TerminatorKind::Call`, where it is used in preference to
`Terminator.source_info.span` when determining `Location::caller`.

This new span is also useful for diagnostics where we want to emphasize
a particular method call - for an example, see
https://github.com/rust-lang/rust/pull/72389#discussion_r436035990
2020-06-11 19:04:16 +02:00
Dylan DPC
b34111591c
Rollup merge of #73169 - Amanieu:asm-warnings, r=petrochenkov
Handle assembler warnings properly

Previously all inline asm diagnostics were treated as errors, but LLVM sometimes emits warnings and notes as well.

Fixes #73160

r? @petrochenkov
2020-06-11 19:04:14 +02:00
Dylan DPC
8d620999de
Rollup merge of #73097 - Mark-Simulacrum:clippy-fail, r=oli-obk
Try_run must only be used if toolstate is populated

Clippy's tests were failing the build, but that failure was ignored in favor of checking toolstate. This is the correct behavior for toolstate-checked tools, but Clippy no longer updates its toolstate status as it should always build.

The previous PR of this kind didn't catch this as I expected x.py failures to always lead to a non-successful build in CI, but that's not the case specifically for tool testing.
2020-06-11 19:04:12 +02:00
Dylan DPC
80fce3693d
Rollup merge of #73012 - Aaron1011:feature/span-debug-ctxt, r=matthewjasper
Show `SyntaxContext` in formatted `Span` debug output

This is only really useful in debug messages, so I've switched to
calling `span_to_string` in any place that causes a `Span` to end up in
user-visible output.
2020-06-11 19:04:09 +02:00
Dylan DPC
f23f6acb56
Rollup merge of #72180 - euclio:rustdoc-test-extra-space, r=Dylan-DPC
remove extra space from crate-level doctest names

Before:

```
running 2 tests
test src/test/rustdoc-ui/doctest-output.rs - foo::bar (line 11) ... ok
test src/test/rustdoc-ui/doctest-output.rs -  (line 5) ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
```

After:

```
running 2 tests
test src/test/rustdoc-ui/doctest-output.rs - foo::bar (line 11) ... ok
test src/test/rustdoc-ui/doctest-output.rs - (line 5) ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
```
2020-06-11 19:04:08 +02:00
Matthew Jasper
8b10d42ebe Fix NLL test 2020-06-11 17:08:23 +01:00
Matthew Jasper
f975eceb62 Document some opaque types code 2020-06-11 17:08:23 +01:00
Matthew Jasper
1e0832faaa Allow all impl trait types to capture bound lifetimes 2020-06-11 17:08:23 +01:00
Matthew Jasper
ee0d3c7f90 Rename TyKind::Def to OpaqueDef 2020-06-11 17:08:23 +01:00
Ayaz Hafiz
0c02f8aea9
fixup! Provide suggestion to convert numeric op LHS rather than unwrapping RHS 2020-06-11 09:04:27 -07:00
Ayaz Hafiz
e243f62317
Provide suggestion to convert numeric op LHS rather than unwrapping RHS
Given a code

```rust
fn foo(x: u8, y: u32) -> bool {
    x > y
}
fn main() {}
```

it could be more helpful to provide a suggestion to do "u32::from(x)"
rather than "y.try_into().unwrap()", since the latter may panic.

We do this by passing the LHS of a binary expression up the stack into
the coercion checker.

Closes #73145
2020-06-11 09:04:24 -07:00
Matthew Jasper
6c04d8672d Remove ImplItemKind::OpaqueTy from clippy 2020-06-11 16:24:01 +01:00
Matthew Jasper
09546692ff Add more tests for type alias impl Trait 2020-06-11 16:24:01 +01:00
Matthew Jasper
f97070db90 Forbid lifetime elision in let position impl Trait
This is consistent with types.
2020-06-11 16:24:01 +01:00
Matthew Jasper
4201fd273e Remove associated opaque types
They're unused now.
2020-06-11 16:24:01 +01:00
Matthew Jasper
4e49e67c44 Stop special casing top level TAIT 2020-06-11 16:24:01 +01:00
Matthew Jasper
d77e86142f Make pretty printing TyKind::Def do something 2020-06-11 16:24:01 +01:00
Matthew Jasper
b87e8eae29 Check associated opaque types in check_opaque_types 2020-06-11 16:24:01 +01:00
Mateusz Mikuła
91b6f1585d Use preinstalled MSYS2 2020-06-11 16:57:26 +02:00
Guillaume Gomez
9da3a7aece Clean up E0666 explanation 2020-06-11 13:34:04 +02:00
bors
50c0192c64 Auto merge of #73235 - Dylan-DPC:rollup-zp8oxhg, r=Dylan-DPC
Rollup of 11 pull requests

Successful merges:

 - #72380 (Fix `is_const_context`, update `check_for_cast`)
 - #72941 (Ensure stack when building MIR for matches)
 - #72976 (Clean up E0642 explanation)
 - #73080 (doc/rustdoc: Fix incorrect external_doc feature flag)
 - #73155 (save_analysis: better handle paths and functions signature)
 - #73164 (Add new E0762 error code)
 - #73172 (Fix more clippy warnings)
 - #73181 (Automatically prioritize unsoundness issues)
 - #73183 (Support proc macros in intra doc link resolution)
 - #73208 (Fix doctest template)
 - #73219 (x.py: with --json-output, forward cargo's JSON)

Failed merges:

r? @ghost
2020-06-11 11:17:37 +00:00
Dylan DPC
ba0a8d2ee7
Rollup merge of #73219 - RalfJung:cargo-json, r=Mark-Simulacrum
x.py: with --json-output, forward cargo's JSON

Fixes https://github.com/rust-lang/rust/issues/73209

r? @Mark-Simulacrum
2020-06-11 13:16:12 +02:00
Dylan DPC
822bb9a1cb
Rollup merge of #73208 - qm3ster:patch-1, r=Amanieu
Fix doctest template

`saturating_add` example was not parameterized, but passed because the `u8` would saturate successfully
2020-06-11 13:16:10 +02:00
Dylan DPC
d9cf7a1784
Rollup merge of #73183 - Manishearth:intra-doc-macro, r=GuillaumeGomez
Support proc macros in intra doc link resolution

The feature was written pre-proc macro resolution, so it only supported the wacky MBE resolution rules. This adds support for proc macros as well.

cc @GuillaumeGomez

Fixes #73173
2020-06-11 13:16:08 +02:00
Dylan DPC
6cc757e698
Rollup merge of #73181 - LeSeulArtichaut:patch-1, r=spastorino
Automatically prioritize unsoundness issues

r? @spastorino cc @Mark-Simulacrum @rust-lang/wg-prioritization
2020-06-11 13:16:06 +02:00
Dylan DPC
2ac1598d83
Rollup merge of #73172 - matthiaskrgr:cl9ppy, r=Dylan-DPC
Fix more clippy warnings

Fixes more of:

clippy::unused_unit
clippy::op_ref
clippy::useless_format
clippy::needless_return
clippy::useless_conversion
clippy::bind_instead_of_map
clippy::into_iter_on_ref
clippy::redundant_clone
clippy::nonminimal_bool
clippy::redundant_closure
clippy::option_as_ref_deref
clippy::len_zero
clippy::iter_cloned_collect
clippy::filter_next

r? @Dylan-DPC
2020-06-11 13:16:04 +02:00
Dylan DPC
70c14c2d43
Rollup merge of #73164 - GuillaumeGomez:add-e0761, r=petrochenkov
Add new E0762 error code
2020-06-11 13:16:02 +02:00
Dylan DPC
b4af87406b
Rollup merge of #73155 - marmeladema:save-analysis-various-fixes, r=Xanewok
save_analysis: better handle paths and functions signature

This should improve slightly some possible regressions due to hir rework.

r? @Xanewok
2020-06-11 13:16:00 +02:00
Dylan DPC
12e5a69fee
Rollup merge of #73080 - ertos-rs:sean.wilson/devel/external_doc-ref-fix, r=ollie27
doc/rustdoc: Fix incorrect external_doc feature flag
2020-06-11 13:15:58 +02:00
Dylan DPC
f4661e2707
Rollup merge of #72976 - GuillaumeGomez:cleanup-e0642, r=Dylan-DPC
Clean up E0642 explanation

r? @Dylan-DPC
2020-06-11 13:15:57 +02:00
Dylan DPC
adc92becf0
Rollup merge of #72941 - nagisa:ensure-stack-for-match, r=oli-obk
Ensure stack when building MIR for matches

In particular matching on complex types such as strings will cause
deep recursion to happen.

Fixes #72933

r? @matthewjasper @oli-obk
2020-06-11 13:15:54 +02:00
Dylan DPC
298467ee9a
Rollup merge of #72380 - lcnr:const_context, r=estebank
Fix `is_const_context`, update `check_for_cast`

A better version of #71477

Adds `fn enclosing_body_owner` and uses it in `is_const_context`.
`is_const_context` now uses the same mechanism as `mir_const_qualif` as it was previously incorrect.
Renames `is_const_context` to `is_inside_const_context`.

I also updated `check_for_cast` in the second commit, so r? @estebank

(I removed one lvl of indentation, so it might be easier to review by hiding whitespace changes)
2020-06-11 13:15:53 +02:00
bors
3ddf48053e Auto merge of #71896 - spastorino:existential-assoc-types-variance, r=nikomatsakis
Relate existential associated types with variance Invariant

Fixes #71550 #72315

r? @nikomatsakis

The test case reported in that issue now errors with the following message ...

```
error[E0495]: cannot infer an appropriate lifetime for lifetime parameter 'a in function call due to conflicting requirements
  --> /tmp/test.rs:25:5
   |
25 |     bad(&Bar(PhantomData), x)
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: first, the lifetime cannot outlive the lifetime `'a` as defined on the function body at 24:11...
  --> /tmp/test.rs:24:11
   |
24 | fn extend<'a, T>(x: &'a T) -> &'static T {
   |           ^^
note: ...so that reference does not outlive borrowed content
  --> /tmp/test.rs:25:28
   |
25 |     bad(&Bar(PhantomData), x)
   |                            ^
   = note: but, the lifetime must be valid for the static lifetime...
note: ...so that the types are compatible
  --> /tmp/test.rs:25:9
   |
25 |     bad(&Bar(PhantomData), x)
   |         ^^^^^^^^^^^^^^^^^
   = note: expected  `&'static T`
              found  `&T`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0495`.
```

I could also add that test case if we want to have a weaponized one too.
2020-06-11 04:58:48 +00:00
Amanieu d'Antras
ddacc67190 Add a suggestion to use unused asm arguments in comments 2020-06-11 05:34:43 +01:00
Amanieu d'Antras
7dc19b0bd5
Update src/libcore/num/mod.rs
Co-authored-by: lzutao <taolzu@gmail.com>
2020-06-11 05:21:15 +01:00
bors
e93cb961ba Auto merge of #73198 - ehuss:update-cargo, r=ehuss
Update cargo

15 commits in 40ebd52206e25c7a576ee42c137cc06a745a167a..1ec223effbbbf9fddd3453cdcae3a96a967608eb
2020-06-01 22:35:00 +0000 to 2020-06-09 20:03:14 +0000
- Default values for `readme` if not specified (rust-lang/cargo#8277)
- Fix tree completions. (rust-lang/cargo#8342)
- Support `{prefix}` and `{lowerprefix}` markers in `config.json` `dl` key (rust-lang/cargo#8267)
- Add environment variables to identify the binary and crate name (rust-lang/cargo#8270)
- Bump to 0.47.0, update changelog (rust-lang/cargo#8336)
- Nits: Remove unneeded mut and loop (rust-lang/cargo#8334)
- 1.45 beta backports (rust-lang/cargo#8331)
- Better error message when passing in relative path to Workspace::new (rust-lang/cargo#8321)
- Don't hash executable filenames on apple platforms. (rust-lang/cargo#8329)
- fix clippy warnings (rust-lang/cargo#8324)
- Require latest libgit2 to pull in bugfixes (rust-lang/cargo#8320)
- Fix an accidental raw access of field (rust-lang/cargo#8319)
- Use mem::take to replace with Default values (rust-lang/cargo#8314)
- Allow Windows dylibs without dll suffix. (rust-lang/cargo#8310)
- Show alias in help message (rust-lang/cargo#8307)
2020-06-11 01:27:03 +00:00
Tyler Mandry
d794313c41 Allow inference regions when relating consts
Fixes #73050
2020-06-10 18:09:34 -07:00
Amanieu d'Antras
34bb6d0448 Cleanup docs 2020-06-11 01:27:39 +01:00
Aaron Hill
9d36fa3d47
Fix test 2020-06-10 18:39:05 -04:00
bors
ec42485ee9 Auto merge of #73206 - Dylan-DPC:rollup-rha9g8q, r=Dylan-DPC
Rollup of 9 pull requests

Successful merges:

 - #72706 (Add windows group to triagebot)
 - #72789 (resolve: Do not suggest imports from the same module in which we are resolving)
 - #72890 (improper ctypes: normalize return types and transparent structs)
 - #72897 (normalize adt fields during structural match checking)
 - #73005 (Don't create impl candidates when obligation contains errors)
 - #73023 (Remove noisy suggestion of hash_map )
 - #73070 (Add regression test for const generic ICE in #72819)
 - #73157 (Don't lose empty `where` clause when pretty-printing)
 - #73184 (Reoder order in which MinGW libs are linked to fix recent breakage)

Failed merges:

r? @ghost
2020-06-10 22:01:37 +00:00
Aaron Hill
e5f3b94d56
Clippy fixes 2020-06-10 17:30:12 -04:00
Aaron Hill
bbf497b0eb
Add doc comments 2020-06-10 17:30:12 -04:00
Aaron Hill
f69a2a6cbd
Fix pprust-expr-roundtrip 2020-06-10 17:30:11 -04:00