Commit Graph

93450 Commits

Author SHA1 Message Date
Alexander Regueiro
aea954b74d Fixed detection of multiple non-auto traits. 2019-05-20 16:12:49 +01:00
Alexander Regueiro
5f6c2127d7 Factored out part of conv_object_ty_poly_trait_ref method. 2019-05-20 16:12:49 +01:00
Alexander Regueiro
16692f7b1a Addressed review points. 2019-05-20 16:12:49 +01:00
Alexander Regueiro
72e5e8bfa7 Update tests. 2019-05-20 16:12:49 +01:00
Alexander Regueiro
9f800457dd Ban multi-trait objects via trait aliases. 2019-05-20 16:12:49 +01:00
Alexander Regueiro
16ef295770 Accumulation of various drive-by cosmetic changes. 2019-05-20 16:12:48 +01:00
bors
589beb979c Auto merge of #60921 - cuviper:remove-mpsc_select, r=SimonSapin
Remove the unstable and deprecated mpsc_select

This removes macro `select!` and `std::sync::mpsc::{Handle, Select}`,
which were all unstable and have been deprecated since 1.32.

Closes #27800
r? @SimonSapin
2019-05-20 08:30:17 +00:00
bors
caef1e833f Auto merge of #60815 - nnethercote:use-Symbol-more-2, r=petrochenkov
Use `Symbol` even more

These patches simplify the code a bit (fewer conversions) and also speed things up a bit (fewer `with_interner` calls).

r? @petrochenkov
2019-05-20 03:36:43 +00:00
bors
128b4c8035 Auto merge of #60969 - Centril:rollup-3j71mqj, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #60590 (Test interaction of unions with non-zero/niche-filling optimization)
 - #60745 (Perform constant propagation into terminators)
 - #60895 (Enable thumbv7a-pc-windows-msvc target build end to end in rust/master)
 - #60908 (Fix lints handling in rustdoc)
 - #60960 (Stop using gensyms in HIR lowering)
 - #60962 (Fix data types indication)

Failed merges:

r? @ghost
2019-05-20 00:37:48 +00:00
Nicholas Nethercote
c06cdbeac5 Introduce LocalInternedString::intern.
`LocalInternedString::intern(x)` is preferable to
`Symbol::intern(x).as_str()`, because the former involves one call to
`with_interner` while the latter involves two.
2019-05-20 09:17:02 +10:00
Nicholas Nethercote
257eaf523f Introduce InternedString::intern.
`InternedString::intern(x)` is preferable to
`Symbol::intern(x).as_interned_str()`, because the former involves one
call to `with_interner` while the latter involves two.

The case within InternedString::decode() is particularly hot, and this
change reduces the number of `with_interner` calls by up to 13%.
2019-05-20 09:17:00 +10:00
Nicholas Nethercote
b96be5b188 Avoid as_str() in ParamTy::is_self.
It's a hot function, and a direct `Symbol` comparison is faster.

The patch also converts some `&InternedString`s to `InternedString`.
2019-05-20 09:16:26 +10:00
Mazdak Farrokhzad
614ffe56c6
Rollup merge of #60962 - VeryTastyTomato:patch-1, r=jonas-schievink
Fix data types indication

Fix the data types indication in basic examples of the Trait std::fmt::LowerExp and std::fmt::UpperExp.
Since there aren’t any type annotation on the let statement using the number 42.0, they are of type f64 according to The Book:
https://doc.rust-lang.org/book/ch03-02-data-types.html#floating-point-types
2019-05-20 01:01:44 +02:00
Mazdak Farrokhzad
787d49e4cb
Rollup merge of #60960 - matthewjasper:remove-lowering-gensym, r=petrochenkov
Stop using gensyms in HIR lowering

These names aren't ever handled by resolve, so there's no reason to
make them gensyms.

Diagnostics wanting to behave differently for these variables should
inspect either the `MatchSource`/`LocalSource` or the `Span`. All
current diagnostics appear to do this.

r? @petrochenkov
2019-05-20 01:01:42 +02:00
Mazdak Farrokhzad
986aa36ed1
Rollup merge of #60908 - GuillaumeGomez:errors, r=oli-obk
Fix lints handling in rustdoc

Part of #60664: now lints are handled just like any other lints you would setup in rustc. Still remains to handle `missing code examples` and `missing_docs` as part of the same group.

r? @oli-obk
2019-05-20 01:01:41 +02:00
Mazdak Farrokhzad
815d3ba883
Rollup merge of #60895 - chandde:master, r=alexcrichton
Enable thumbv7a-pc-windows-msvc target build end to end in rust/master

With this PR, plus another commit cf98161da7, I'm able to build the target thumbv7a-pc-windows-msvc successfully, and I'm able to use the stage2 artifacts to build arm32 projects. The commit in compiler_builtins is in release 0.1.14, the current cargo.lock in rust master still uses 0.1.12, so I bumped the compiler_builtins version in cargo.lock to 0.1.15

The command I used to build rust
```
c:\python27\python.exe x.py build --host x86_64-pc-windows-msvc --build x86_64-pc-windows-msvc --target thumbv7a-pc-windows-msvc --verbose
```

**Changes**
1. update cargolock to use compiler_builtins 0.1.15
2. handle libunwind in libtest for thumv7a the same as what we have for aarch64
3. in llvm codegen add a field in CodegenContext to carry the arch, so later in create_msvc_imps function, the arch can be used to check against "x86", instead of 32 pointer width. Apparently Thumv7a is handled differently than x86.

**Background**
I'm from Microsoft working on enabling Azure IoTEdge on ARM32 Windows IoTCore, Azure IoTEdge has a component called IoTEdged written in rust as a NT service running on Windows, so we need to enable rust on thumbv7a in order to have full IoTEdge. My colleague had made some heavy lifting and we've been using our private toolchain to build IoTEdged in our devops pipeline, because at that time we cannot build thumbv7a target end to end successfully. This change is a followup to enable the end to end build for thumbv7a-pc-windows-msvc target.

**Next step**
I'll submit more changes to have this target built nightly in rust/master, to achieve the same availability for aarch64-pc-windows-msvc, indexed here https://rust-lang.github.io/rustup-components-history/aarch64-pc-windows-msvc.html and can be manually installed. **Please do share what takes to make this happen, is there a formal process I need to follow\?**
2019-05-20 01:01:39 +02:00
Mazdak Farrokhzad
5c84d779b2
Rollup merge of #60745 - wesleywiser:const_prop_into_terminators, r=oli-obk
Perform constant propagation into terminators

Perform constant propagation into MIR `Assert` and `SwitchInt` `Terminator`s which in some cases allows them to be removed by the branch simplification pass.

r? @oli-obk
2019-05-20 01:01:38 +02:00
Mazdak Farrokhzad
f9d65c000d
Rollup merge of #60590 - petertodd:2018-test-union-nonzero, r=nikomatsakis,Centril
Test interaction of unions with non-zero/niche-filling optimization

Notably this nails down part of the behavior that MaybeUninit assumes, e.g. that a Option<MaybeUninit<&u8>> does not take advantage of non-zero optimization, and thus is a safe construct.

It also verifies the status quo: that even unions that could theoretically take advantage of niches don't. (relevant: https://github.com/rust-lang/rust/issues/36394)
2019-05-20 01:01:37 +02:00
bors
a5000c5098 Auto merge of #60272 - Jakst:patch-1, r=Manishearth
Explicitly set height on rust logo <img> element in docs

The layout of the left side menu in docs reflows when navigating between pages because of missing height on the <img> element of rust logo.

Setting height='100' tells the browser to reserve that vertical space, leading to a less janky experience.
2019-05-19 21:36:15 +00:00
Wesley Wiser
ec853ba026 [const-prop] Don't const-prop into terminators unless mir-opt-level >= 2 2019-05-19 16:47:03 -04:00
Wesley Wiser
2baab0eaaa [const-prop] Remove catch all match and add FIXME 2019-05-19 16:47:03 -04:00
Wesley Wiser
3f5c743b53 [const-prop] Support propagating into SwitchInt's discr Operand 2019-05-19 16:46:51 -04:00
Wesley Wiser
8e99c76089 [const-prop] Support propagating into Assert's cond Operand 2019-05-19 16:13:08 -04:00
bors
6afcb56285 Auto merge of #60065 - QuietMisdreavus:async-move-doctests, r=ollie27
rustdoc: set the default edition when pre-parsing a doctest

Fixes https://github.com/rust-lang/rust/issues/59313 (possibly more? i think we've had issues with parsing edition-specific syntax in doctests at some point)

When handling a doctest, rustdoc needs to parse it beforehand, so that it can see whether it declares a `fn main` or `extern crate my_crate` explicitly. However, while doing this, rustdoc doesn't set the "default edition" used by the parser like the regular compilation runs do. This caused a problem when parsing a doctest with an `async move` block in it, since it was expecting the `move` keyword to start a closure, not a block.

This PR changes the `rustdoc::test::make_test` function to set the parser's default edition while looking for a main function and `extern crate` statement. However, to do this, `make_test` needs to know what edition to set. Since this is also used during the HTML rendering process (to make playground URLs), now the HTML renderer needs to know about the default edition. Upshot: rendering standalone markdown files can now accept a "default edition" for their doctests with the `--edition` flag! (I'm pretty sure i waffled around how to set that a long time ago when we first added the `--edition` flag... `>_>`)

I'm posting this before i stop for the night so that i can write this description while it's still in my head, but before this merges i want to make sure that (1) the `rustdoc-ui/failed-doctest-output` test still works (i expect it doesn't), and (2) i add a test with the sample from the linked issue.
2019-05-19 16:48:12 +00:00
VeryTastyTomato
a759565763
Fix data types indication
Fix the data types indication in basic examples of the Trait std::fmt::LowerExp and std::fmt::UpperExp.
Since there aren’t any type annotation on the let statement using the number 42.0, they are of type f64 according to The Book:
https://doc.rust-lang.org/book/ch03-02-data-types.html#floating-point-types
2019-05-19 13:51:46 +00:00
Matthew Jasper
6bb3980e7a Stop using gensyms in HIR lowering
These names aren't ever handled by resolve, so there's no reason to
make them gensyms.
2019-05-19 13:00:28 +01:00
bors
e7591c1ae5 Auto merge of #60946 - Xanewok:update-rls, r=oli-obk
Update RLS

Includes a fix (https://github.com/rust-lang/rls/pull/1462) for breakage due to Cargo update PR (https://github.com/rust-lang/rust/pull/60874)

r? @Manishearth @oli-obk @ehuss
2019-05-19 11:51:34 +00:00
bors
ce41e48362 Auto merge of #60937 - RalfJung:miri, r=oli-obk
update Miri

r? @oli-obk
2019-05-19 08:56:24 +00:00
bors
e0d2f7462b Auto merge of #60760 - GuillaumeGomez:generic-display, r=varkor,badboy
Fix display of const generics in rustdoc

<img width="745" alt="Screenshot 2019-05-18 at 15 45 22" src="https://user-images.githubusercontent.com/3050060/57970638-04854e80-7984-11e9-9f04-da6b51ec8bc7.png">

Part of #60737.

cc @varkor

r? @badboy
2019-05-19 06:06:12 +00:00
Peter Todd
a91ad60158
Make clear that status quo ≠ guarantee 2019-05-18 22:27:33 -04:00
bors
26ab32499c Auto merge of #60949 - Centril:rollup-f918e1v, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #60370 (Mark core::alloc::Layout::from_size_align_unchecked const)
 - #60678 (Stabilize vecdeque_rotate)
 - #60924 (Explain that ? converts the error type using From)
 - #60931 (Use iter() for iterating arrays by slice)
 - #60934 (Declare DefIndex with the newtype_index macro)
 - #60943 (fix copy-paste typo in docs for ptr::read_volatile)
 - #60945 (Simplify BufRead::fill_buf doc example using NLL)
 - #60947 (Fix typos in docs of GlobalAlloc)

Failed merges:

r? @ghost
2019-05-19 01:56:14 +00:00
Mazdak Farrokhzad
9389c69415
Rollup merge of #60947 - blkerby:global_alloc_typo, r=jonas-schievink
Fix typos in docs of GlobalAlloc
2019-05-19 02:31:46 +02:00
Mazdak Farrokhzad
f9d58c7188
Rollup merge of #60945 - blkerby:fill_buf_nll_doc_example, r=shepmaster
Simplify BufRead::fill_buf doc example using NLL

With non-lexical lifetimes, in this example it is no longer necessary to use a block to end the borrow early.
2019-05-19 02:31:44 +02:00
Mazdak Farrokhzad
94da30728f
Rollup merge of #60943 - blkerby:master, r=Mark-Simulacrum
fix copy-paste typo in docs for ptr::read_volatile
2019-05-19 02:31:43 +02:00
Mazdak Farrokhzad
7cbca5931e
Rollup merge of #60934 - fabric-and-ink:defindex_with_newtype_macro, r=petrochenkov
Declare DefIndex with the newtype_index macro

See #60666
2019-05-19 02:31:42 +02:00
Mazdak Farrokhzad
de39eb81ed
Rollup merge of #60931 - cuviper:array-iter, r=KodrAus
Use iter() for iterating arrays by slice

These `into_iter()` calls will change from iterating references to
values if we ever get `IntoIterator` for arrays, which may break the
code using that iterator. Calling `iter()` is future proof.
2019-05-19 02:31:40 +02:00
Mazdak Farrokhzad
80d372f7cd
Rollup merge of #60924 - estebank:try-msg, r=petrochenkov
Explain that ? converts the error type using From

Fix #60917.
2019-05-19 02:31:39 +02:00
Mazdak Farrokhzad
dc7cbb697b
Rollup merge of #60678 - DutchGhost:master, r=scottmcm
Stabilize vecdeque_rotate

This PR stabilizes the vecdeque_rotate feature.
r? @scottmcm

Closes https://github.com/rust-lang/rust/issues/56686
2019-05-19 02:31:35 +02:00
Mazdak Farrokhzad
7885dfc623
Rollup merge of #60370 - Richard-W:const-layout-construction, r=sfackler
Mark core::alloc::Layout::from_size_align_unchecked const

Makes it possible (pending stabilization of #57563 (`const_fn`)) to rewrite code like

```rust
const BUFFER_SIZE: usize = 0x2000;
const BUFFER_ALIGN: usize = 0x1000;

fn foo() {
  let layout = std::alloc::Layout::from_size_align(BUFFER_SIZE, BUFFER_ALIGN)
    .unwrap();
  let buffer = std::alloc::alloc(layout);
}
```
to
```rust
const BUFFER_LAYOUT: std::alloc::Layout = unsafe {
  std::alloc::Layout::from_size_align_unchecked(0x2000, 0x1000)
};

fn foo() {
  let buffer = std::alloc::alloc(BUFFER_LAYOUT);
}
```

which (although `unsafe` is used) looks somewhat cleaner and is easier to read.
2019-05-19 02:31:32 +02:00
Brent Kerby
86cda2d48e Fix typos in docs of GlobalAlloc 2019-05-18 16:22:59 -06:00
Igor Matuszewski
8d419588f1 Reverse RLS toolstate check override
As per https://github.com/rust-lang/rust/pull/60946#issuecomment-493707005
2019-05-19 00:00:12 +02:00
Igor Matuszewski
1c939a3e55 Update RLS 2019-05-18 22:54:33 +02:00
bors
963184bbb6 Auto merge of #60093 - GuillaumeGomez:fix-attrs-pos, r=Manishearth
Fix attrs pos

Fixes #60042.

Screenshot:

<img width="438" alt="Screenshot 2019-05-12 at 15 02 25" src="https://user-images.githubusercontent.com/3050060/57582606-1455ec00-74c7-11e9-9d4e-5ec4da4de7dd.png">

r? @rust-lang/rustdoc
2019-05-18 20:49:22 +00:00
Brent Kerby
01cf36ebde Simplify BufRead doc example using NLL 2019-05-18 13:30:44 -06:00
bors
0f40ad9990 Auto merge of #60940 - Manishearth:clippyup, r=Manishearth
Update clippy

Contains https://github.com/rust-lang/rust-clippy/pull/4110

Should fix RLS

r? @ghost
2019-05-18 17:57:55 +00:00
Brent Kerby
13a00963a6
fix copy-paste typo in docs for ptr::read_volatile 2019-05-18 10:03:12 -06:00
Manish Goregaokar
0789091a68 Update clippy 2019-05-18 08:32:50 -07:00
bors
9a9df55f07 Auto merge of #60252 - davidtwco:issue-57672, r=Mark-Simulacrum
Don't suggest changing extern crate w/ alias to use.

Fixes #57672.
2019-05-18 15:07:38 +00:00
Guillaume Gomez
2caeaf54a1 Fix display of const generics in rustdoc 2019-05-18 15:44:19 +02:00
Ralf Jung
5f5e30fd54 update miri 2019-05-18 14:40:53 +02:00