80601 Commits

Author SHA1 Message Date
Simon Sapin
620599e886 Remove extern on the pub fn rust_oom lang item in libstd, to match ABI of the declaration in liballoc
This turned out to be important on Windows.
Calling `handle_alloc_error(Layout:🆕:<[u8; 42]>())` caused:

```
Exception thrown at 0x00007FF7C70DC399 in a.exe: 0xC0000005:
Access violation reading location 0x000000000000002A.
```

0x2A equals 42, so it looks like the `Layout::size` field of type `usize`
was interpreted as a pointer to read from.
2018-07-09 23:13:24 +02:00
bors
9bd8458c92 Auto merge of #50250 - csmoe:wf_traitref, r=scalexm
Chalk lowering rule: WellFormed-TraitRef

Address chalk lowering "Implemented-From-Env" as part of #49177.
r? @nikomatsakis
2018-07-09 21:01:58 +00:00
Anirudh Balaji
c90a821d43
Add "or destination" to {copy, clone}_from_slice example 2018-07-09 13:41:46 -07:00
ashtneoi
dc8ae26c1e Fix issue #51515 and update test 2018-07-09 13:33:57 -07:00
ashtneoi
a49b75d2f3 Add test case from issue #51515 2018-07-09 13:16:02 -07:00
ljedrz
232e77e007 Change gcc warning file name, remove unnecessary reference 2018-07-09 21:25:16 +02:00
scalexm
37c5c0bf9c Change wording 2018-07-09 21:20:26 +02:00
bors
bdd185c897 Auto merge of #51956 - GuillaumeGomez:shutdown-doc-lints, r=oli-obk
Fix rustdoc run failures by shutting down definitely some lints

Fixes #51661.

cc @oli-obk @arielb1 @eddyb
2018-07-09 18:50:37 +00:00
Guillaume Gomez
66beb4e5b4 add comment about lints whitelisting 2018-07-09 18:10:08 +02:00
gnzlbg
3b36ce64a5 revert travis-ci changes 2018-07-09 17:25:00 +02:00
bors
c6807bb1b2 Auto merge of #52159 - SimonSapin:alloc-prelude, r=alexcrichton
Add the `alloc::prelude` module

It contains the re-exports that are in `std::prelude::v1` but not in `core::prelude::v1`.

Calling it prelude is somewhat of a misnomer since (unlike those modules in `std` or `core`) its contents are never implicitly imported in modules. Rather it is intended to be used with an explicit glob import like `use alloc::prelude::*;`. However there is precedent for the same misnomer with `std::io::prelude`, for example.

This new module is unstable with the same feature name as the `alloc` care. They are proposed for stabilization together in RFC https://github.com/rust-lang/rfcs/pull/2480.
2018-07-09 14:29:59 +00:00
ljedrz
6b6a7a4691 Warn windows-gnu users that the bundled gcc can't compile 2018-07-09 15:28:12 +02:00
Clément RENAULT
c8f0e6f210
Fix the documentation of Option::replace 2018-07-09 14:52:32 +02:00
Clément RENAULT
af87a3594a
Add a basic test to Option::replace 2018-07-09 14:50:54 +02:00
gnzlbg
fe75f617c3 run asmjs and emscripten builds on CI (temporary) 2018-07-09 11:35:53 +02:00
gnzlbg
23dfb42ab3 still support LLVM4 for emscripten 2018-07-09 11:35:53 +02:00
gnzlbg
52d7740277 bump llvm version of failing codegen test 2018-07-09 11:35:53 +02:00
gnzlbg
4ff90c7e0a bump minimum LLVM version to 5.0 2018-07-09 11:35:52 +02:00
bors
c30acc7187 Auto merge of #52160 - euclio:include-macros, r=oli-obk
add regression test for #48835

Fixes #48835.

The underlying issue was fixed in #51978.
2018-07-09 08:41:43 +00:00
Oliver Schneider
7a8e085835 Also distribute cargo clippy 2018-07-09 10:15:30 +02:00
Oliver Schneider
68620b14a2 Inject clippy into the rls again
Also makes sure we actually point to the local rls
2018-07-09 10:10:42 +02:00
Ben Harris
aac0d914b2 Correct some codegen stats counters 2018-07-09 09:40:16 +02:00
bors
ec039c7cb1 Auto merge of #52066 - benjaminp:obligation-select, r=Mark-Simulacrum
Remove obsolete documentation from FufillmentContext::select comment.

The `only_new_obligations` parameter has not existed since 43756934d255603a0fb7a871f2a145380e488b71.
2018-07-09 06:38:47 +00:00
bors
a80a610a4c Auto merge of #52166 - orlp:master, r=joshtriplett
Performance improvement of Vec's swap_remove.

The old implementation *literally* swapped and then removed, which resulted in unnecessary move instructions. The new implementation does use unsafe code, but is easy to see that it is correct.

Fixes https://github.com/rust-lang/rust/issues/52150.
2018-07-09 04:42:27 +00:00
Orson Peters
e529dfd590 Removed a single trailing space. Oops. 2018-07-09 06:31:24 +02:00
Niko Matsakis
a6adb1ebff find and highlight the & or '_ in region_name 2018-07-09 00:20:36 -04:00
Orson Peters
6faa295cec Reimplemented Vec's swap_remove to not rely on pop. 2018-07-09 06:13:58 +02:00
Orson Peters
295768ae8f Performance improvement of Vec's swap_remove. 2018-07-09 05:01:39 +02:00
Andy Russell
1be1d90662
add regression test for #48835
Fixes #48835.

The underlying issue was fixed in #51978.
2018-07-08 16:45:01 -04:00
jD91mZM2
0b56e7f1a9
Delete leftover files 2018-07-08 20:48:11 +02:00
bors
960f6046c6 Auto merge of #52152 - fabric-and-ink:edit-file-open-example, r=frewsxcv
Edit code example for File::open

It looked kinda strange and is now aligned with the other examples for `File`.
2018-07-08 16:08:54 +00:00
Kevin Zajler
2c2add6e02 Update std::ascii::ASCIIExt deprecation notes 2018-07-08 18:07:17 +02:00
Vadim Petrochenkov
fc74e35981 Remove fallback to parent modules from lexical resolution 2018-07-08 18:16:09 +03:00
bors
0e6b713dd5 Auto merge of #52106 - PramodBisht:issue/52049, r=oli-obk
Don't suggest `let` bindings if they don't help with borrows

@oli-obk I have added a condition to address #52049, right now, this is on WIP because I think code change is also required on `error_reporting.rs`. Plus I need to check if any test cases fail.
I will ping you again if everything passes

r? @oli-obk
2018-07-08 14:08:36 +00:00
Fabian Drinck
f580b983b1 Edit code example for File::open 2018-07-08 16:07:09 +02:00
Vadim Petrochenkov
94ef9f57f5 hygiene: Decouple transparencies from expansion IDs 2018-07-08 16:17:37 +03:00
Vadim Petrochenkov
01b6d7cc6f libsyntax_pos: Tweak some visibilities 2018-07-08 16:17:36 +03:00
Guillaume Gomez
26615b8f20 Fix some links 2018-07-08 15:07:17 +02:00
Guillaume Gomez
c0ec5d5e44 Add setting to prevent doc auto-hide of trait implementations 2018-07-08 15:07:06 +02:00
willmo
e769deca99
Add #[repr(transparent)] to Atomic* types
This allows them to be used in #[repr(C)] structs without warnings. Since rust-lang/rfcs#1649 and rust-lang/rust#35603 they are already documented to have "the same in-memory representation as" their corresponding primitive types. This just makes that explicit.
2018-07-07 20:09:34 -07:00
bors
0c0315cfd9 Auto merge of #51955 - zackmdavis:item_semi, r=oli-obk
clarify why we're suggesting removing semicolon after braced items

Previously (issue #46186, pull-request #46258), a suggestion was added
to remove the semicolon after we fail to parse an item, but issue #51603
complains that it's still insufficiently obvious why. Let's add a note.

Resolves #51603.
2018-07-08 02:51:54 +00:00
bors
9342f293e9 Auto merge of #51590 - bjorn3:codegen_llvm_extract, r=alexcrichton
Mostly fix metadata_only backend and extract some code out of rustc_codegen_llvm

Removes dependency on the `ar` crate and removes the `llvm.enabled` config option in favour of setting `rust.codegen-backends` to `[]`.
2018-07-08 00:52:36 +00:00
Simon Sapin
5b795cf57e Reformat std prelude source to show it is the sum of core and alloc preludes 2018-07-07 23:16:27 +02:00
Simon Sapin
b842177cfa Add the alloc::prelude module
It contains the re-exports that are in `std::prelude::v1`
but not in `core::prelude::v1`.

Calling it prelude is somewhat of a misnomer since (unlike those modules
in `std` or `core`) its contents are never implicitly imported in modules.
Rather it is intended to be used with an explicit glob import like
`use alloc::prelude::*;`.
However there is precedent for the same misnomer with `std::io::prelude`,
for example.

This new module is unstable with the same feature name as the `alloc` care.
They are proposed for stabilization together in RFC
https://github.com/rust-lang/rfcs/pull/2480
2018-07-07 23:08:43 +02:00
bors
9fd3d7899a Auto merge of #52132 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 3 pull requests

Successful merges:

 - #52087 (Update musl to 1.1.19 and add patch to fix tls issue)
 - #52107 (removed redundant header file import in rustllvm.h)
 - #52131 (Ship clippy in manifests)

Failed merges:

r? @ghost
2018-07-07 16:21:28 +00:00
Mark Rousskov
cea56a109d
Rollup merge of #52131 - Mark-Simulacrum:ship-clippy, r=kennytm
Ship clippy in manifests

cc @Manishearth
r? @kennytm
2018-07-07 08:27:02 -06:00
Mark Rousskov
f532daa2e5
Rollup merge of #52107 - PramodBisht:feature/52105, r=rkruppe
removed redundant header file import in rustllvm.h

fix #52105
removed redundant header file import in rustllvm.h
cc @wqweto
2018-07-07 08:27:01 -06:00
Mark Rousskov
6cc38a599a
Rollup merge of #52087 - malbarbo:musl-1.1.19, r=alexcrichton
Update musl to 1.1.19 and add patch to fix tls issue

This fixes https://github.com/rust-lang/rust/issues/48967
2018-07-07 08:27:00 -06:00
Mark Rousskov
c98f25b373 Ship clippy in manifests 2018-07-07 08:17:24 -06:00
bors
e44906e80c Auto merge of #52109 - michaelwoerister:ir-objs, r=alexcrichton
When doing linker-plugin based LTO, write LLVM bitcode obj-files instead of embedding the bitcode into the regular object file.

This PR makes the compiler emit LLVM bitcode object files instead of regular object files with the IR embed when compiling for linker-plugin-based LTO. The reasoning for switching the strategy is this:
- Embedding bitcode in a section of the object file actually makes us save bitcode twice in rlibs and Rust dylibs, once for linker-based LTO and once for rustc-based LTO. That's a waste of space.
- When compiling for plugin-based LTO, one usually has no use for the machine code also present in the object file. Generating it is a waste of time.
- When compiling for plugin-based LTO, `rustc` will skip running ThinLTO because the linker will do that anyway. This has the side effect of then generating poorly optimized machine code, which makes it even less useful (and may lead to users not knowing why their code is slow instead of getting an error).
- Not having machine code available makes it impossible for the linker to silently fall back to not inlining stuff across language boundaries.
- This is what Clang does and according to [the documentation](https://llvm.org/docs/BitCodeFormat.html#native-object-file-wrapper-format) is the better supported option.
- The current behavior (minus the runtime performance problems) is still available via `-Z embed-bitcode` (we might want to do this for `libstd` at some point).

r? @alexcrichton
2018-07-07 14:09:49 +00:00