Commit Graph

110106 Commits

Author SHA1 Message Date
Ulrik Sverdrup
7612ad7797 Vec drop and truncate: drop using raw slice *mut [T]
By creating a *mut [T] directly (without going through &mut [T]), avoid
questions of validity of the contents of the slice.

Consider the following risky code:

```rust
unsafe {
    let mut v = Vec::<bool>::with_capacity(16);
    v.set_len(16);
}
```

The intention is that with this change, the above snippet will be
sound because Vec::drop does no longer produces a mutable slice of
the vector's contents.
2020-04-14 21:51:48 +02:00
bors
6805906fba Auto merge of #71125 - Dylan-DPC:rollup-3b8prjh, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71112 (Remove the last remnant of unsigned Neg)
 - #71120 (Clean up E0517 explanation)
 - #71121 (Fix broken link in documentation for String::from_utf8)
 - #71122 (update `FnCtxt::lookup_method` docs)
 - #71124 (Add missing comma)

Failed merges:

r? @ghost
2020-04-14 14:14:47 +00:00
Dylan DPC
816443e6cf
Rollup merge of #71124 - JOE1994:patch-3, r=Dylan-DPC
Add missing comma

Added missing comma in doc comment
2020-04-14 15:35:35 +02:00
Dylan DPC
d249f67a27
Rollup merge of #71122 - lcnr:update-docs, r=Mark-Simulacrum
update `FnCtxt::lookup_method` docs

Looks like the doc comment was forgotten during a refactor.
2020-04-14 15:35:33 +02:00
Dylan DPC
340b7314e3
Rollup merge of #71121 - AnthonyMikh:fix_string_doc_link, r=Dylan-DPC
Fix broken link in documentation for String::from_utf8
2020-04-14 15:35:32 +02:00
Dylan DPC
03167297aa
Rollup merge of #71120 - GuillaumeGomez:cleanup-e0517, r=Dylan-DPC
Clean up E0517 explanation

r? @Dylan-DPC
2020-04-14 15:35:30 +02:00
Dylan DPC
216e070db4
Rollup merge of #71112 - cuviper:unsigned-Neg, r=Mark-Simulacrum
Remove the last remnant of unsigned Neg

It's been gone since #23945, before Rust 1.0. The former wrapping
semantics have also been available as inherent methods for a long time
now. There's no reason to keep this unused macro around.
2020-04-14 15:35:28 +02:00
Youngsuk Kim
de143312f8
Add missing comma 2020-04-14 09:29:39 -04:00
Bastian Kauschke
723def25c8 update docs 2020-04-14 14:45:34 +02:00
AnthonyMikh
15ba31d010
Fix broken link in documentation for String::from_utf8 2020-04-14 15:07:57 +03:00
Guillaume Gomez
eed4b219e2 Clean up E0517 explanation 2020-04-14 13:26:17 +02:00
bors
ba72b15666 Auto merge of #70893 - tmiasko:llvm-sanitizers, r=cuviper
Update LLVM submodule fixing sanitizers build with glibc 2.31

Fixes #69556.
2020-04-14 10:04:47 +00:00
bors
a3ef360368 Auto merge of #70679 - tmandry:issue-68112, r=nikomatsakis
Improve async-await/generator obligation errors in some cases

Fixes #68112.

This change is best read one commit at a time (I add a test at the beginning and update it in each change after).

The `test2` function is a case I found while writing the test that we don't handle with this code yet. I don't attempt to fix it in this PR, but it's a good candidate for future work.

r? @davidtwco, @nikomatsakis
2020-04-14 06:47:38 +00:00
bors
513a6473d6 Auto merge of #70643 - Rustin-Liu:rustin-patch-rename, r=eddyb
Rename AssocKind::Method to AssocKind::Fn

Part of https://github.com/rust-lang/rust/issues/60163.

https://github.com/rust-lang/rust/issues/60163#issuecomment-607284413
2020-04-14 03:11:12 +00:00
Tyler Mandry
4326d959f4 Update test after rebase 2020-04-13 19:14:26 -07:00
Tyler Mandry
df64c5d260 Incorporate feedback into diagnostics 2020-04-13 18:58:17 -07:00
Tyler Mandry
00795a9940 Fix style nits 2020-04-13 18:58:17 -07:00
Tyler Mandry
df0a16b29f Include type info when available for awaited expr 2020-04-13 18:58:17 -07:00
Tyler Mandry
8ce334d53c rustfmt 2020-04-13 18:58:17 -07:00
Tyler Mandry
e340375ef8 Don't double-annotate the same Span 2020-04-13 18:58:17 -07:00
Tyler Mandry
aed7c30e4f Use clearer message when obligation is caused by await expr 2020-04-13 18:58:11 -07:00
Tyler Mandry
6edfd66c5d Use "generator" instead of "future" when appropriate 2020-04-13 18:48:55 -07:00
Tyler Mandry
7127ff3d94 Don't annotate type when type is opaque 2020-04-13 18:48:55 -07:00
Tyler Mandry
db0a5a1056 Improve span label 2020-04-13 18:48:55 -07:00
Tyler Mandry
a40ec13262 Add test for #68112 (existing output) 2020-04-13 18:48:55 -07:00
Tyler Mandry
b129b32afa Use inner/outer generator naming instead of first/last
I personally find this clearer.
2020-04-13 18:48:55 -07:00
Josh Stone
9ede5b04d0 Remove the last remnant of unsigned Neg
It's been gone since #23945, before Rust 1.0. The former wrapping
semantics have also been available as inherent methods for a long time
now. There's no reason to keep this unused macro around.
2020-04-13 18:37:06 -07:00
bors
47f49695df Auto merge of #71111 - Dylan-DPC:rollup-esp17qn, r=Dylan-DPC
Rollup of 4 pull requests

Successful merges:

 - #70654 (Explain how to work with subtree)
 - #71092 (Remove some usage of `DUMMY_HIR_ID`)
 - #71103 (Add test case for type aliasing `impl Sized`)
 - #71109 (allow const generics in const fn)

Failed merges:

r? @ghost
2020-04-13 23:54:52 +00:00
Dylan DPC
dd27462ea9
Rollup merge of #71109 - lcnr:generics_in_const_fn, r=eddyb
allow const generics in const fn

This was explicitly forbidden before. As we were unable to think of a reason
why this should still be the case, this check has been removed.

r? @eddyb
cc @varkor @Centril
2020-04-14 01:24:18 +02:00
Dylan DPC
e261ef0622
Rollup merge of #71103 - samrat:tait-sized, r=estebank
Add test case for type aliasing `impl Sized`

Fixes #71085
2020-04-14 01:24:16 +02:00
Dylan DPC
9de2a792fb
Rollup merge of #71092 - marmeladema:dummy-hir-id-removal, r=eddyb
Remove some usage of `DUMMY_HIR_ID`
2020-04-14 01:24:15 +02:00
Dylan DPC
048c8426e8
Rollup merge of #70654 - oli-obk:subrepo_docs, r=Mark-Simulacrum
Explain how to work with subtree

cc #70651

r? @centril @RalfJung

This PR just contains the usage documentation, we'll do actual moves in later PRs
2020-04-14 01:24:13 +02:00
Rustin-Liu
b07e7fe047 Rename AssocKind::Method to AssocKind::Fn
Rename fn_has_self_argument to fn_has_self_parameter

Rename AssocItemKind::Method to AssocItemKind::Fn

Refine has_no_input_arg

Refine has_no_input_arg

Revert has_no_input_arg

Refine suggestion_descr

Move as_def_kind into AssocKind

Signed-off-by: Rustin-Liu <rustin.liu@gmail.com>

Fix tidy check issue

Signed-off-by: Rustin-Liu <rustin.liu@gmail.com>
2020-04-14 07:12:07 +08:00
Bastian Kauschke
50eb39757e allow const generics in const fn 2020-04-13 22:37:20 +02:00
bors
8e18e26f12 Auto merge of #71105 - Dylan-DPC:rollup-nezezxr, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #70656 (Improve scrollbar display in rustdoc)
 - #71051 (Suggest .into() over try_into() when it would work)
 - #71087 (Remove `FnCtxt::impl_self_ty`)
 - #71097 (Pattern docs)
 - #71101 (Miri: let machine hook dynamically decide about alignment checks)

Failed merges:

r? @ghost
2020-04-13 19:47:23 +00:00
Dylan DPC
73e56dec93
Rollup merge of #71101 - RalfJung:miri-alignment-check, r=ecstatic-morse
Miri: let machine hook dynamically decide about alignment checks

This is needed for https://github.com/rust-lang/miri/pull/1332.
2020-04-13 20:23:33 +02:00
Dylan DPC
eb49f7fd74
Rollup merge of #71097 - pickfire:pattern-docs, r=Dylan-DPC
Pattern docs

https://doc.rust-lang.org/std/str/pattern/trait.Pattern.html#implementors
2020-04-13 20:23:32 +02:00
Dylan DPC
fd1b057004
Rollup merge of #71087 - JohnTitor:impl-self-ty, r=eddyb
Remove `FnCtxt::impl_self_ty`

Fixes #69489
r? @eddyb cc @Centril
2020-04-13 20:23:30 +02:00
Dylan DPC
f551d8a410
Rollup merge of #71051 - ryr3:fix_try_into, r=estebank
Suggest .into() over try_into() when it would work

It would be better to suggest x.into() instead, which is shorter, cannot fail, and doesn't require importing a trait.
Tests have been added and made up to date.
Fixes #70851
2020-04-13 20:23:29 +02:00
Dylan DPC
3f61c730d4
Rollup merge of #70656 - GuillaumeGomez:scrollbar-display, r=kinnison
Improve scrollbar display in rustdoc

The scrollbar of the left sidebar in rustdoc looks very bad on firefox (on dark theme). This PR improves it:

<div style="display:inline-block;">
<div style="width:50%;display:inline-block;float:left;">
<image src="https://user-images.githubusercontent.com/3050060/78148412-202b0380-7435-11ea-8ff3-79f02ea8f9ed.png">
</div>
<div style="width:50%;display:inline-block;float:left;">
<image src="https://user-images.githubusercontent.com/3050060/78148437-28833e80-7435-11ea-946b-a6fc9320b705.png">
</div>
</div>

With light theme:

![old-firefox-light](https://user-images.githubusercontent.com/3050060/78148718-7bf58c80-7435-11ea-93d3-2a2cafd5c6ae.png)
![firefox-light](https://user-images.githubusercontent.com/3050060/78148736-7f891380-7435-11ea-8b10-a8898f73b4c9.png)

And on chrome:

![chrome-light](https://user-images.githubusercontent.com/3050060/78148903-ac3d2b00-7435-11ea-9a10-6c0376a675c3.png)
![chrome-dark](https://user-images.githubusercontent.com/3050060/78148907-ae9f8500-7435-11ea-9b89-0397b977753c.png)

Small extra question: should I extend it to all scrollbars? I think it'd be better but just in case...

r? @kinnison
2020-04-13 20:23:27 +02:00
marmeladema
d0409ead2f Remove usage of DUMMY_HIR_ID in FnCtxt::get_conversion_methods 2020-04-13 19:14:19 +01:00
Samrat Man Singh
38bfba659e Add test case for type aliasing impl Sized 2020-04-13 22:14:08 +05:30
bors
c58c532744 Auto merge of #70989 - eddyb:mir-opt-32-pr-ci, r=Mark-Simulacrum
ci: run mir-opt tests on PR CI also as 32-bit (for `EMIT_MIR_FOR_EACH_BIT_WIDTH`).

Background: #69916 and [`src/test/mir-opt/README.md`](https://github.com/rust-lang/rust/blob/master/src/test/mir-opt/README.md):
> By default 32 bit and 64 bit targets use the same dump files, which can be problematic in the
presence of pointers in constants or other bit width dependent things. In that case you can add
>
> ```
> // EMIT_MIR_FOR_EACH_BIT_WIDTH
> ```
>
> to your test, causing separate files to be generated for 32bit and 64bit systems.

However, if you change the output of such a test (intentionally or not), or if you add a test and it varies between 32-bit and 64-bit platforms, you have to run this command (for a x64 linux host):
`./x.py test --stage 1 --target x86_64-unknown-linux-gnu --target i686-unknown-linux-gnu --bless  src/test/mir-opt`

Otherwise, bors trying to merge the PR will fail, since we test 32-bit targets there.
But we don't on PR CI, which means there's no way the PR author would know (unless they were burnt by this already and know what to look for).

This PR resolves that by running `mir-opt` tests for ~~`i686-unknown-linux-gnu`~~, on PR CI.
**EDIT**: switched to `armv5te-unknown-linux-gnueabi` to work around LLVM 7 crashes (see https://github.com/rust-lang/compiler-builtins/pull/311#issuecomment-612270089), found during testing.

cc @rust-lang/wg-mir-opt @rust-lang/infra
2020-04-13 16:28:57 +00:00
Ralf Jung
28e6b1a602 Miri: let machine hook dynamically decide about alignment checks 2020-04-13 17:59:12 +02:00
marmeladema
e08ad7ae58 Use CRATE_HIR_ID instead of DUMMY_HIR_ID when appropriate.
Those usage ends up forwarded to a `ObligationClause` which uses
`CRATE_HIR_ID` for dummy value as seen in `ObligationClause::dummy`.
2020-04-13 15:42:01 +01:00
Ivan Tham
7a22cf6415 Add examples to Pattern docs 2020-04-13 22:25:15 +08:00
Ivan Tham
cbe96b04ad Add period to Pattern docs 2020-04-13 22:24:58 +08:00
bors
5179ebe206 Auto merge of #70961 - ecstatic-morse:into-def-id, r=eddyb
Take `impl Into<DefId>` for query methods on `TyCtxt`

Alternative implementation of #70956. cc #70853.
2020-04-13 12:50:43 +00:00
marmeladema
95fb7bf108 Just unwrap() instead of unwrap_or(DUMMY_HIR_ID).
A valid hir id should always be returned in this case.
2020-04-13 13:43:44 +01:00
marmeladema
830e4fde0f Remove usage of DUMMY_HIR_ID in some visitors 2020-04-13 13:43:44 +01:00