Commit Graph

94257 Commits

Author SHA1 Message Date
Matthew Jasper
9336b3d3d0 Use UseSpans in cannot move errors 2019-06-03 14:55:29 +01:00
Matthew Jasper
f7e86a5a49 Improve cannot move errors
* Show the place and type being moved
* Give a special error for variables in match guard
* Simplify search for overloaded deref
* Search for overloaded index
2019-06-03 14:55:29 +01:00
Matthew Jasper
f309f917c2 Add method to note types don't implement Copy 2019-06-03 12:59:08 +01:00
Matthew Jasper
5cfa70f760 Add is_ref_for_guard method 2019-06-03 12:59:08 +01:00
bors
da9ebc828c Auto merge of #61062 - mark-i-m:mono-mv, r=eddyb,oli-obk
Remove _all_ codegen dependencies on `rustc_mir` 🎉

~This code is pretty self-contained. It has no references to the rest of `rustc_mir`. Moving it to its own crate means that almost all of the references from `rustc_codegen_*` to `rustc_mir` are instead moved to `rustc_monomorphize`, which should help improve compile times for the compiler a bit...~

With the help of eddyb and oli-obk, all of the dependencies of `librustc_codegen_*` on `librustc_mir` have been removed:
- dependencies on `rustc_mir::monomorphize` were moved to `rustc::mir::mono`
- `rustc_mir::const_eval::const_field` is made into a query.
- `rustc_mir::interpret::type_name` is made into a query.

This should help reduce compile time when working on `rustc_mir` 🕐

cc #47849

r? @eddyb
2019-06-03 08:28:27 +00: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
Mark Mansi
0f822d775f query-fy type_name 2019-06-02 23:20:36 -05:00
Mark Mansi
b7f5eab11c remove last dependency of codegen on rustc_mir 2019-06-02 23:04:17 -05:00
Mark Mansi
74919df3a9 query-ify const_field 2019-06-02 23:03:58 -05:00
Mark Mansi
c747f31ffc remove unneeded deps 2019-06-02 22:56:37 -05:00
Mark Mansi
b20d96f97f remove as_mono_item 2019-06-02 22:55:29 -05:00
Mark Mansi
e21d002bd2 move codegenunitext to rustc::mir::mono 2019-06-02 22:55:29 -05:00
Mark Mansi
621bf0da80 move monoitemext to inherent methods 2019-06-02 22:55:29 -05:00
Mark Mansi
f2b9b2d13b move DefPathBasedNames to ty::print::obsolete 2019-06-02 22:50:03 -05:00
Mark Mansi
3287ddf937 remove reexports of mir::mono::{MonoItem,CodegenUnit} 2019-06-02 22:50:03 -05:00
Mark Mansi
5940689553 move single-use function 2019-06-02 22:44:51 -05:00
Mark Mansi
58bd0ea732 deduplicate ty::Instance constructors 2019-06-02 22:44:51 -05:00
Mark Mansi
8af151b30a remove reexport of rustc::ty::Instance 2019-06-02 22:32:42 -05: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