Commit graph

94245 commits

Author SHA1 Message Date
David Wood
3ebe9ab5e7
rustc: use lowering helpers
This commit changes the lowering to stop creating HIR statements,
expressions and patterns directly and instead uses the pre-existing
helper functions.
2019-06-03 14:02:21 +01:00
David Wood
5e3b41e0cb
rustc: remove HirId from ArgSource::AsyncFn
This commit removes the `HirId` from `ArgSource::AsyncFn`, relying on
the fact that only `simple_ident` is used in each of the locations that
previously took the original pattern from the `ArgSource::AsyncFn`.
2019-06-03 14:02:21 +01:00
David Wood
1e5f496143
rustc: async fn drop order lowering in HIR
This commit re-implements the async fn drop order lowering changes so
that it all takes place in HIR lowering, building atop the work done by
`@eddyb` to refactor `Res::Upvar`.

Previously, this types involved in the lowering were constructed in
libsyntax as they had to be used during name resolution and HIR
lowering. This was awful because none of that logic should have existed
in libsyntax.

This commit also changes `ArgSource` to keep a `HirId` to the original
argument pattern rather than a cloned copy of the pattern.
2019-06-03 10:20:35 +01:00
David Wood
32771071e8
syntax/rustc: move mark_span_with_reason back. 2019-06-03 10:20:35 +01:00
Eduard-Mihai Burtescu
d0c78dd7aa
syntax: revert ast::AsyncArgument and associated changes.
Here follows the main reverts applied in order to make this commit:

Revert "Rollup merge of #60676 - davidtwco:issue-60674, r=cramertj"

This reverts commit 45b09453db, reversing
changes made to f6df1f6c30.

Revert "Rollup merge of #60437 - davidtwco:issue-60236, r=nikomatsakis"

This reverts commit 16939a50ea, reversing
changes made to 12bf981552.

Revert "Rollup merge of #59823 - davidtwco:issue-54716, r=cramertj"

This reverts commit 62d1574876, reversing
changes made to 4eff8526a7.
2019-06-03 10:20:35 +01:00
bors
c57ed9d947 Auto merge of #61331 - estebank:fn-arg-parse-recovery, r=varkor
Recover gracefully from argument with missing type or param name
2019-06-03 05:40:53 +00:00
bors
d59dcb261e Auto merge of #61361 - estebank:infer-type, r=varkor
Add more detail to type inference error

When encountering code where type inference fails, add more actionable
information:

```
fn main() {
    let foo = Vec::new();
}
```

```
error[E0282]: type annotations needed in `std::vec::Vec<T>`
  --> $DIR/vector-no-ann.rs:2:16
   |
LL |     let foo = Vec::new();
   |         ---   ^^^^^^^^ cannot infer type for `T` in `std::vec::Vec<T>`
   |         |
   |         consider giving `foo` a type
```

Fix #25633.
2019-06-03 02:45:35 +00:00
bors
3a6bef0cbd Auto merge of #61008 - GuillaumeGomez:fix-rustdoc-code-highlighting, r=Manishearth
Fix lines highlighting in rustdoc source view

Fixes #60948.

This PR fixes how we handle the lines highlighting from the URL (so in "/doc/src/alloc/string.rs.html#285-283", the "285-283" part). We got a hard limit on 50000, for some unknown and lost reasons which was used in case only one line is selected.

r? @Manishearth
2019-06-03 00:02:34 +00:00
bors
607aadcb77 Auto merge of #61295 - RalfJung:miri, r=oli-obk
update miri

r? @oli-obk

Fixes https://github.com/rust-lang/rust/issues/60533
2019-06-02 21:15:35 +00:00
Ralf Jung
4dfed4a0ca update miri 2019-06-02 23:12:40 +02:00
bors
627486af15 Auto merge of #61278 - RalfJung:miri-tag-allocations, r=oli-obk
Miri: give machine the chance to tag all allocations

r? @oli-obk

The Miri side of this is at https://github.com/rust-lang/rust/pull/61278.
2019-06-02 17:25:58 +00:00
bors
d461555e44 Auto merge of #61460 - Centril:rollup-8txhjx4, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #61380 (Fix some issues with `unwrap_usize` instead of `assert_usize`)
 - #61423 (codegen: change `$6d$` to `$u6d$`)
 - #61438 (Point at individual type args on arg count mismatch)
 - #61441 (Tweak wording when encountering `fn` call in pattern)
 - #61451 (Fix missing semicolon in doc)
 - #61458 (Fix typo in AsRef doc)

Failed merges:

r? @ghost
2019-06-02 14:42:11 +00:00
Mazdak Farrokhzad
aaf264b999
Rollup merge of #61458 - fabric-and-ink:doc-typo, r=jonas-schievink
Fix typo in AsRef doc
2019-06-02 15:23:53 +02:00
Mazdak Farrokhzad
d70f2881fc
Rollup merge of #61451 - 0x1793d1:master, r=Centril
Fix missing semicolon in doc

A semicolon is missing in the examples of compile_error.
Macros that expand to items must be delimited with braces or followed by a semicolon.
2019-06-02 15:23:52 +02:00
Mazdak Farrokhzad
247e0a688d
Rollup merge of #61441 - estebank:fn-call-in-match, r=varkor
Tweak wording when encountering `fn` call in pattern

Fix #60642
2019-06-02 15:23:50 +02:00
Mazdak Farrokhzad
83b74f2aad
Rollup merge of #61438 - estebank:generics-span, r=varkor
Point at individual type args on arg count mismatch

- Point at individual type arguments on arg count mismatch
- Make generics always have a valid span, even when there are no args
- Explain that `impl Trait` introduces an implicit type argument

Fix #55991.
2019-06-02 15:23:49 +02:00
Mazdak Farrokhzad
5599985caa
Rollup merge of #61423 - davidtwco:correct-symbol-mangling, r=eddyb
codegen: change `$6d$` to `$u6d$`

This changes a mistake introduced in #61195 where the mangling
workaround used was incorrect, resolving [this comment](https://github.com/rust-lang/rust/pull/61195#discussion_r289597707) from @eddyb.

r? @eddyb
2019-06-02 15:23:47 +02:00
Mazdak Farrokhzad
c748c7b3fe
Rollup merge of #61380 - varkor:expected-usize-got-param, r=eddyb
Fix some issues with `unwrap_usize` instead of `assert_usize`

Fixes https://github.com/rust-lang/rust/issues/61337.
Fixes https://github.com/rust-lang/rust/issues/61341.
Fixes https://github.com/rust-lang/rust/issues/61422.

r? @eddyb
2019-06-02 15:23:46 +02:00
Fabian Drinck
9583398923 Fix typo in AsRef doc 2019-06-02 14:12:06 +02:00
bors
4c7bb8b0d9 Auto merge of #61276 - eddyb:kill-res-upvar, r=petrochenkov
rustc: remove Res::Upvar.

By keeping track of the current "`body_owner`" (the `DefId` of the current fn/closure/const/etc.) in several passes, `Res::Upvar` and `hir::Upvar` don't need to contain contextual information about the closure.

By leveraging [`indexmap`](https://docs.rs/indexmap), the list of upvars for a given closure can now also be queried, to check whether a local variable is a closure capture, and so `Res::Upvar` can be merged with `Res::Local`.

And finally, the `tcx.upvars(...)` query now collects upvars from HIR, without relying on `rustc_resolve`.

r? @petrochenkov cc @varkor @davidtwco
2019-06-02 11:46:13 +00:00
Ralf Jung
823ffaa834 update comments 2019-06-02 10:36:18 +02:00
Ralf Jung
2ba7e776b6 FIXME 2019-06-02 10:36:18 +02:00
Ralf Jung
222ed9f571 fix indentation 2019-06-02 10:36:18 +02:00
Ralf Jung
0f96dd51c5 turn comments into doc-comments 2019-06-02 10:36:18 +02:00
Ralf Jung
6dd9389008 fix comments 2019-06-02 10:36:18 +02:00
Ralf Jung
77be06b7ed no longer assume that there is a default tag: give the machine the chance to tag all allocations 2019-06-02 10:36:18 +02:00
0x1793d1
b3fdde431b
Fix missing semicolon in doc
A semicolon is missing in the examples of compile_error.
Macros that expand to items must be delimited with braces or followed by a semicolon.
2019-06-02 10:23:33 +02:00
Ralf Jung
2726a91cca cache tag for vtable; fn_alloc's don't have a stack nor tag 2019-06-02 10:21:00 +02:00
bors
538e17a3fd Auto merge of #61384 - varkor:fmin-fmax-llvm-opt, r=alexcrichton
Update LLVM to include fmin/fmax optimisations

This will enable us to test if the optimisation issues mentioned in https://github.com/rust-lang/rust/issues/18384 really are fixed. Unfortunately, using the intrinsics immediately is problematic due to the libcore/libstd split (see https://github.com/rust-lang/rust/issues/50145).
2019-06-02 04:10:25 +00:00
Esteban Küber
31918d6eef review comments: use param kind type to identify impl Trait 2019-06-01 19:30:13 -07:00
bors
aa5bd03892 Auto merge of #61299 - eddyb:nicer-llvm-builder, r=rkruppe
rustc_codegen_llvm: a couple builder niceties.

r? @nagisa cc @sunfishcode @rkruppe
2019-06-02 01:12:36 +00:00
varkor
e82cd9528c Add regression test for #61422 2019-06-02 01:55:46 +01:00
varkor
5a2410a07c Add error for pattern-matching on arrays without a fixed size 2019-06-02 01:55:46 +01:00
varkor
21551359a5 Use assert_usize instead of unwrap_usize in several places 2019-06-02 01:55:44 +01:00
varkor
c2b663c666 Fix unwrapping usize issue with transparent MaybeUnit array wrapper 2019-06-02 01:50:06 +01:00
Esteban Küber
3d0eae18c6 Tweak wording when encountering fn call in pattern 2019-06-01 16:27:35 -07:00
Esteban Küber
e420f4410b Account for cases where we can find the type arg name, but the local name is _ 2019-06-01 15:33:31 -07:00
Esteban Küber
9616b333b2 review comment: tweak wording 2019-06-01 14:47:15 -07:00
Esteban Küber
e275f2caf6 Extend docstring 2019-06-01 14:13:57 -07:00
bors
03ee55bb1c Auto merge of #61436 - Manishearth:clippyup, r=Manishearth
Update clippy

r? @ghost
2019-06-01 18:58:54 +00:00
Esteban Küber
0754c84611 Explain that impl Trait introduces an implicit type argument 2019-06-01 11:35:54 -07:00
Eduard-Mihai Burtescu
25d6834493 rustc_codegen_llvm: replace fn noname() with const UNNAMED. 2019-06-01 21:13:08 +03:00
Eduard-Mihai Burtescu
268e64641f rustc_codegen_llvm: pretty up a few builder methods with a macro. 2019-06-01 21:12:42 +03:00
Manish Goregaokar
16bc2c2c5e Update clippy 2019-06-01 10:50:55 -07:00
Eduard-Mihai Burtescu
f7a4c9d7b5 rustc: collect upvars from HIR, instead of during name resolution. 2019-06-01 20:44:05 +03:00
Esteban Küber
28859472f7 Point at individual type arguments on arg count mismatch 2019-06-01 10:35:31 -07:00
Eduard-Mihai Burtescu
648b4d884d rustc_resolve: never push ClosureRibKind to label_ribs. 2019-06-01 20:28:59 +03:00
Eduard-Mihai Burtescu
ed1bbbb545 rustc: remove Res::Upvar. 2019-06-01 20:28:48 +03:00
Eduard-Mihai Burtescu
340b91e2ff rustc: remove has_parent from hir::Upvar. 2019-06-01 19:17:23 +03:00
Eduard-Mihai Burtescu
a0ca2a2deb rustc: track the body owner in liveness. 2019-06-01 19:17:23 +03:00