Commit graph

90325 commits

Author SHA1 Message Date
Alexander Regueiro 379cd29d1c Nit 2019-03-03 02:58:09 +00:00
Dan Robertson 04d0a8cb83
Fix C-variadic function printing
There is no longer a need to append the string `", ..."` to a functions
args as `...` is parsed as an argument and will appear in the functions
arguments.
2019-03-02 15:03:09 +00:00
bors c1d2d83ca3 Auto merge of #58754 - ljedrz:I_hate_NodeIds, r=Zoxc
Remove NodeId from more HIR nodes

The next iteration of HirIdification (#57578).

Removes `NodeId` from:

- [x] `Stmt`
- [x] `Local`
- [x] `Field`
- [x] `AnonConst`
- [x] `TraitItem`
- [x] `ImplItem`
- [x] `TypeBinding`
- [x] `Arg`
- [x] `TraitRef`
- [x] `VisibilityKind`

It will most probably break clippy again; I'd appreciate a **delegate** again if/when it is good to go so I can attach a clippy fix later.

r? @Zoxc
2019-03-01 15:36:13 +00:00
ljedrz 9cd1845908 hir: remove NodeId from VisibilityKind 2019-03-01 11:18:50 +01:00
ljedrz 01cf66bb30 hir: remove NodeId from TraitRef 2019-03-01 11:18:50 +01:00
ljedrz aa6a9c3f41 hir: remove NodeId from Arg 2019-03-01 11:18:49 +01:00
ljedrz 2827f8d4fe hir: remove NodeId from TypeBinding 2019-03-01 11:18:49 +01:00
ljedrz a29ceb9f51 hir: remove NodeId from ImplItem 2019-03-01 11:18:49 +01:00
ljedrz c2e517e0c4 ty: HirIdify some lints 2019-03-01 11:18:49 +01:00
ljedrz e72584c3a1 hir: remove NodeId from TraitItem 2019-03-01 11:18:49 +01:00
ljedrz 43294c6c8c middle: HirIdify dead 2019-03-01 11:18:48 +01:00
ljedrz 4543fc243e hir: remove NodeId from AnonConst 2019-03-01 11:18:48 +01:00
ljedrz d959f443fb hir: remove NodeId from Field 2019-03-01 11:18:48 +01:00
ljedrz 70d3b290e2 hir: remove NodeId from Local 2019-03-01 11:18:48 +01:00
ljedrz 341b023986 hir: remove NodeId from Stmt 2019-03-01 11:18:47 +01:00
bors 17add2498f Auto merge of #58631 - spastorino:place2_1, r=oli-obk
Put Local, Static and Promoted as one Base variant of Place

Related to #52708

The `Place` 2.0 representation use a `Base` variant for `Local`, `Static` and `Promoted` so we start making this change in the current `Place` to make the following steps simpler.

r? @oli-obk
2019-03-01 10:00:17 +00:00
bors 7b4f8f969c Auto merge of #58689 - memoryruins:exclude_should_panic, r=oli-obk
Add unstable option to ignore should_panic tests

Add an unstable option `--exclude-should-panic` to libtest to workaround https://github.com/rust-lang/miri/issues/636

?r @oli-obk
cc @RalfJung
2019-03-01 05:17:14 +00:00
Santiago Pastorino 0f993d5a7a Put Local, Static and Promoted as one Base variant of Place 2019-03-01 05:02:00 +01:00
bors 20cfc9deb5 Auto merge of #58408 - alexcrichton:update-llvm, r=michaelwoerister
rustc: Update LLVM, remove dead wasm code

This commit updates the LLVM branch to the rebased version of the
upstream release/8.x branch. This includes a wasm patch which means that
the `rewrite_imports` pass in rustc is no longer needed (yay!) and we
can instead rely on `wasm-import-module`, an attribute we're already
emitting, to take care of all the work.
2019-03-01 01:22:15 +00:00
bors 350674b718 Auto merge of #58250 - Zoxc:rustc-interface-1, r=oli-obk
Introduce rustc_interface and move some methods there

Split out from https://github.com/rust-lang/rust/pull/56732

r? @oli-obk
2019-02-28 21:02:12 +00:00
John Kåre Alsaker 23a51f91c9 Introduce rustc_interface and move some methods there 2019-02-28 19:30:31 +01:00
bors 1999a22881 Auto merge of #57760 - dlrobertson:varargs1, r=alexreg
Support defining C compatible variadic functions

## Summary

Add support for defining C compatible variadic functions in unsafe rust with
`extern "C"` according to [RFC 2137].

## Details

### Parsing
When parsing a user defined function that is `unsafe` and `extern "C"` allow
variadic signatures and inject a "spoofed" `VaList` in the new functions
signature. This allows the user to interact with the variadic arguments via a
`VaList` instead of manually using `va_start` and `va_end` (See [RFC 2137] for
details).

### Codegen

When running codegen for a variadic function, remove the "spoofed" `VaList`
from the function signature and inject `va_start` when the arg local
references are created for the function and `va_end` on return.

## TODO

 - [x] Get feedback on injecting `va_start/va_end` in MIR vs codegen
 - [x] Properly inject `va_end` - It seems like it should be possible to inject
       `va_end` on the `TerminatorKind::Return`. I just need to figure out how
       to get the `LocalRef` here.
 - [x] Properly call Rust defined C variadic functions in Rust - The spoofed
       `VaList` causes problems here.

Related to: #44930

r? @ghost

[RFC 2137]: https://github.com/rust-lang/rfcs/blob/master/text/2137-variadic.md
2019-02-28 15:00:25 +00:00
bors 190feb6529 Auto merge of #58208 - taiki-e:libstd-2018, r=Centril
libstd => 2018

Transitions `libstd` to Rust 2018; cc #58099

r? @Centril
2019-02-28 11:38:40 +00:00
Taiki Endo aad9e29f52 Fix rebase fail 2019-02-28 04:06:17 +09:00
Taiki Endo 90dbf59b92 Fix some imports and paths 2019-02-28 04:06:17 +09:00
Taiki Endo 9d691bd9ce Fix error in tag-that-dare-not-speak-its-name 2019-02-28 04:06:16 +09:00
Taiki Endo 2af18a2b38 Fix errors in test/ui 2019-02-28 04:06:16 +09:00
Taiki Endo 2c783c3543 Revert removed #![feature(nll)] 2019-02-28 04:06:16 +09:00
Taiki Endo 0749a04fb6 Fix #[macro_use] extern crate in sys/cloudabi 2019-02-28 04:06:15 +09:00
Taiki Endo 93b6d9e086 libstd => 2018 2019-02-28 04:06:15 +09:00
Alex Crichton 320640060f Whitelist containers that allow older toolchains
We'll use this as a temporary measure to get an LLVM update landed, but
we'll have to go through and update images later to make sure they've
got the right toolchains.
2019-02-27 08:10:21 -08:00
bors 7e001e5c6c Auto merge of #58777 - Centril:rollup, r=Centril
Rollup of 14 pull requests

Successful merges:

 - #58075 (Fix for issue  #58050)
 - #58627 (rustdoc: move collapse and unindent docs passes earlier)
 - #58630 (Make `visit_clobber` panic-safe.)
 - #58678 (Deny `async fn` in 2015 edition)
 - #58680 (Fix an indexing error when using `x.py help`)
 - #58703 (Fix copy-pasted typo for read_string return value)
 - #58744 (Update dlmalloc to 0.1.3)
 - #58746 (std: docs: Disable running several Stdio doctests)
 - #58748 (update scoped_tls to 1.0)
 - #58749 (Reduce Repetitions of (n << amt) >> amt)
 - #58752 (Update string_cache_codegen to 0.4.2)
 - #58755 (Clarify `rotate_{left,right}` docs)
 - #58757 (Normalize the type Self resolves to in an impl)
 - #58761 (Add tracking issue for the unwind attribute)

Failed merges:

r? @ghost
2019-02-27 15:54:48 +00:00
Dan Robertson f7dd4389f8
Fix doc comments in librustc/hir/lowering.rs 2019-02-27 10:21:59 -05:00
Dan Robertson 08bd4ff998
Rename variadic to c_variadic
Function signatures with the `variadic` member set are actually
C-variadic functions. Make this a little more explicit by renaming the
`variadic` boolean value, `c_variadic`.
2019-02-27 10:21:54 -05:00
Dan Robertson a618ad6335
Refactor FunctionCx::codgen_terminator
- Move closures defined in codegen_terminator into a separate helper
   structure and implementation.
 - Create helper functions for each of the complex match arms on the
   terminators kind in codegen_terminator.
2019-02-27 10:21:50 -05:00
Dan Robertson 1a6e9e2408
Add c_variadic to the unstable-book
- Add the c_variadic language feature
 - Add the c_variadic library feature
2019-02-27 10:21:45 -05:00
Dan Robertson 210c6071b0
Add c_variadic language feature item 2019-02-27 10:21:40 -05:00
Dan Robertson 58147d486b
Support defining C compatible variadic functions
Add support for defining C compatible variadic functions in unsafe rust
with extern "C".
2019-02-27 10:21:35 -05:00
Dan Robertson cd56472cc4
Fix tidy check for language and library features 2019-02-27 10:21:28 -05:00
Mazdak Farrokhzad 1394b6f3a1
Rollup merge of #58761 - Mark-Simulacrum:add-feature-gate-unwind, r=Centril
Add tracking issue for the unwind attribute

cc https://github.com/rust-lang/rust/issues/58760
2019-02-27 13:32:37 +01:00
Mazdak Farrokhzad 5910271b91
Rollup merge of #58757 - aoikonomopoulos:issue-58212, r=oli-obk
Normalize the type Self resolves to in an impl

This is required at the very least in order to evaluate associated
constants for arrays.

Fixes #57796
Fixes #58212.

r? @oli-obk
cc @hellow554
2019-02-27 13:32:36 +01:00
Mazdak Farrokhzad 90cbf8ebf7
Rollup merge of #58755 - tbu-:pr_doc_clarifyrotate, r=Centril
Clarify `rotate_{left,right}` docs

I wondered what the `<<!` operator is although the exclamation mark was
only the end of the sentence.
2019-02-27 13:32:34 +01:00
Mazdak Farrokhzad 0c871fa2bd
Rollup merge of #58752 - taiki-e:update-string_cache_codegen, r=alexcrichton
Update string_cache_codegen to 0.4.2

This removes two dependencies of the old version (string_cache is already the latest version).
2019-02-27 13:32:33 +01:00
Mazdak Farrokhzad 851689c138
Rollup merge of #58749 - kenta7777:reduce-repetition, r=oli-obk
Reduce Repetitions of (n << amt) >> amt

Fixes part of [#49937](https://github.com/rust-lang/rust/issues/49937).
2019-02-27 13:32:31 +01:00
Mazdak Farrokhzad a20c2fdd47
Rollup merge of #58748 - hellow554:scoped_tls, r=estebank
update scoped_tls to 1.0

scoped_tls has been updated to version 1.0
This PR will hopefully merge flawlessly :)

This fixes, among others, https://github.com/alexcrichton/scoped-tls/issues/9

Note, that the nightly feature has been removed in 64bd7b84a1
2019-02-27 13:32:29 +01:00
Mazdak Farrokhzad c0c7d59c2b
Rollup merge of #58746 - ipetkov:std-process-docs, r=cramertj
std: docs: Disable running several Stdio doctests

* A number of `Stdio` related doc examples include running the "rev"
command to illustrate piping commands. The majority of these tests are
marked as `no_run` except for two tests which were not
* Not running these tests is unlikely to cause any negative impact, and
doing so also allows the test suite to pass in environments where the
"rev" command is unavailable
2019-02-27 13:32:27 +01:00
Mazdak Farrokhzad 5eadeed702
Rollup merge of #58744 - jethrogb:jb/dlmalloc-0.1.3, r=alexcrichton
Update dlmalloc to 0.1.3

r? @alexcrichton
2019-02-27 13:32:26 +01:00
Mazdak Farrokhzad 115c8a1f09
Rollup merge of #58703 - shepmaster:read_line_return, r=centril
Fix copy-pasted typo for read_string return value
2019-02-27 13:32:24 +01:00
Mazdak Farrokhzad fed5610025
Rollup merge of #58680 - varkor:xpy-help-index-error, r=alexcrichton
Fix an indexing error when using `x.py help`

Fixes https://github.com/rust-lang/rust/issues/58640.
2019-02-27 13:32:23 +01:00
Mazdak Farrokhzad f84a8cf28a
Rollup merge of #58678 - doctorn:refuse-async-fn-2015-edition, r=varkor
Deny `async fn` in 2015 edition

This commit prevents code using `async fn` from being compiled in Rust 2015 edition.

Compiling code of the form:

```rust
async fn foo() {}
```

Will now result in the error:

```
error[E0670]: `async fn` is not permitted in the 2015 edition
 --> async.rs:1:1
  |
1 | async fn foo() {}
  | ^^^^^

error: aborting due to error

For more information about an error, try `rustc --explain E0670`.
```

This resolves #58652 and also resolves #53714.

r? @varkor
2019-02-27 13:32:21 +01:00