Commit Graph

94909 Commits

Author SHA1 Message Date
Shotaro Yamada
6a0abd6048 Remove unnecessary .clone() 2019-06-15 20:46:00 +09:00
Shotaro Yamada
165842ba1f Use slice::from_ref instead of cloning 2019-06-15 20:46:00 +09:00
bors
dbebcee8d0 Auto merge of #59752 - Zoxc:dylib-fix, r=alexcrichton
Limit dylib symbols

This makes `windows-gnu` match the behavior of `windows-msvc`. It probably doesn't make sense to export these symbols on other platforms either.
2019-06-15 10:18:09 +00:00
bors
9f8cd9da7b Auto merge of #61825 - Centril:tauv-infer-fix, r=petrochenkov
type_alias_enum_variants: fix #61801; allow a path pattern to infer

Fix #61801.

Given a type-relative path pattern referring to an enum variant through a type alias, allow inferring the generic argument applied in the expectation set by the scrutinee of a `match` expression.

Similar issues may exist for `let` statements but I don't know how to test for that since `PhantomData<T>` is necessary...)

The gist of the problem here was that `resolve_ty_and_res_ufcs` was called twice which is apparently no good... It is possible that this PR is papering over some deeper problem, but that is beyond my knowledge of the compiler.

r? @petrochenkov
cc @eddyb @alexreg
cc https://github.com/rust-lang/rust/pull/61682
cc https://github.com/rust-lang/rust/issues/49683
2019-06-15 03:47:55 +00:00
Mazdak Farrokhzad
5057552dc6 typeck/expr.rs: move check_field + struct helpers here. 2019-06-15 04:01:39 +02:00
Mazdak Farrokhzad
5ee36b7eca typeck/expr.rs: move check_method_call here. 2019-06-15 04:01:39 +02:00
Mazdak Farrokhzad
819c4f2f08 typeck/expr.rs: move some check_return_expr here. 2019-06-15 04:01:39 +02:00
Mazdak Farrokhzad
18edf3ed08 typeck/expr.rs: move some check_expr_*s here. 2019-06-15 04:01:39 +02:00
Mazdak Farrokhzad
a551fe08ef typeck/expr.rs: move check_expr_with_expectation_and_needs here. 2019-06-15 02:51:45 +02:00
Mazdak Farrokhzad
8fd2d12c25 typeck/expr.rs: extract out check_expr_yield. 2019-06-15 02:48:59 +02:00
Mazdak Farrokhzad
8da059beaa typeck/expr.rs: extract out check_expr_index. 2019-06-15 02:46:47 +02:00
Mazdak Farrokhzad
1aa068a01b typeck/expr.rs: move check_expr_struct here. 2019-06-15 02:43:02 +02:00
Mazdak Farrokhzad
bb934880f0 typeck/expr.rs: extract out check_expr_tuple. 2019-06-15 02:39:23 +02:00
Mazdak Farrokhzad
82cac1505c typeck/expr.rs: extract out check_expr_repeat. 2019-06-15 02:36:07 +02:00
Mazdak Farrokhzad
877d834c65 typeck/expr.rs: extract out check_expr_array. 2019-06-15 02:31:20 +02:00
Mazdak Farrokhzad
fe004da37a typeck/expr.rs: extract out check_expr_cast. 2019-06-15 02:25:37 +02:00
Mazdak Farrokhzad
046cd903c5 typeck/expr.rs: extract out check_expr_loop. 2019-06-15 02:22:52 +02:00
Mazdak Farrokhzad
867ff1b00a typeck/expr.rs: extract out check_expr_while. 2019-06-15 02:19:23 +02:00
Mazdak Farrokhzad
af800c7873 typeck/expr.rs: move check_expr_assign here. 2019-06-15 02:13:06 +02:00
Mazdak Farrokhzad
7a41cc1715 typeck/expr.rs: extract out check_expr_return. 2019-06-15 02:10:12 +02:00
Mazdak Farrokhzad
74dd65edfe typeck/expr.rs: extract out check_expr_break. 2019-06-15 02:06:02 +02:00
Mazdak Farrokhzad
9131f95c6f typeck/expr.rs: extract out check_expr_path. 2019-06-15 01:56:10 +02:00
Mazdak Farrokhzad
d5cc080b73 typeck/expr.rs: extract out check_expr_addr_of. 2019-06-15 01:50:33 +02:00
Mazdak Farrokhzad
840f3f64dc typeck/expr.rs: extract out check_expr_unary. 2019-06-15 01:45:39 +02:00
Mazdak Farrokhzad
7227a386a5 typeck/expr.rs: extract out check_expr_box. 2019-06-15 01:36:09 +02:00
Mazdak Farrokhzad
6cf4b3ac10 typeck: check_expr_kind -> expr.rs 2019-06-15 01:28:38 +02:00
Alexander Regueiro
926408cdbd Minor cosmetic improvements to accompany PR 61825 2019-06-14 23:44:55 +01:00
Ralf Jung
d54b27d33a update miri 2019-06-14 21:58:33 +02:00
Esteban Küber
34c4117f5f review comment: do not rely on path str to identify std::clone::Clone 2019-06-14 11:44:20 -07:00
Matthew Jasper
5c84cd37cb Use sym constansts for PrimitiveTypeTable keys 2019-06-14 18:54:58 +01:00
Matthew Jasper
4e212c6ddc Avoid some unnecessary symbol interner operations 2019-06-14 18:54:58 +01:00
Esteban Küber
ae8d6a82fe review comments: avoid string modification 2019-06-14 10:45:13 -07:00
Aaron Kutch
363940bbe1 Change ... to ..= where applicable 2019-06-14 12:24:38 -05:00
bors
9606f6fa64 Auto merge of #61817 - eddyb:begone-gcx-attempt-2, r=oli-obk
Unify all uses of 'gcx and 'tcx.

This is made possible by @Zoxc landing #57214 (see https://github.com/rust-lang/rust/pull/57214#issuecomment-465036053 for the decision).

A bit of context for the approach: just like #61722, this is *not* how I originally intended to go about this, but @Zoxc and my own experimentation independently resulted in the same conclusion:
The interim alias `type TyCx<'tcx> = TyCtxt<'tcx, 'tcx>;` attempt required more work (adding `use`s), even only for handling the `TyCtxt<'tcx, 'tcx>` case and not the general `TyCtxt<'gcx, 'tcx>` one.

What this PR is based on is the realization that `'gcx` is a special-enough name that it can be replaced, without caring for context, with `'tcx`, and then repetitions of the name `'tcx` be compacted away.
After that, only a small number of error categories remained, each category easily dealt with with either more mass replacements (e.g. `TyCtxt<'tcx, '_>` -> `TyCtxt<'tcx>`) or by hand.

For the `rustfmt` commit, I used https://github.com/rust-lang/rustfmt/issues/1324#issuecomment-482109952, and manually filtered out some noise, like in #61735 and #61722, and like the latter, there was also a weird bug to work around.
It should be reviewed separately, and dropped if unwanted (in this PR it's pretty significant).

cc @rust-lang/compiler r? @nikomatsakis
2019-06-14 16:20:35 +00:00
Eduard-Mihai Burtescu
afc39bbf24 Run rustfmt --file-lines ... for changes from previous commits. 2019-06-14 18:58:32 +03:00
Eduard-Mihai Burtescu
f3f9d6dfd9 Unify all uses of 'gcx and 'tcx. 2019-06-14 18:58:23 +03:00
bors
fc550d4295 Auto merge of #61421 - vorner:string-in-rc-into-raw-docs, r=RalfJung
docs: Use String in Rc::into_raw examples

It is unclear if accessing an integer after `drop_in_place` has been
called on it is undefined behaviour or not, as demonstrated by the
discussion in
https://github.com/rust-lang/rust/pull/60766#pullrequestreview-243414222.

Avoid these uncertainties by using String which frees memory in its
`drop_in_place` to make sure this is undefined behaviour. The message in
the docs should be to watch out and not access the data after that, not
discussing when one maybe could get away with it O:-).
2019-06-14 12:37:28 +00:00
Felix S Klock II
0baa9258dd
put back the workarounds for #60846
based on https://github.com/rust-lang/rust/pull/61754#issuecomment-501743750 I am adding `bootstrap` to the cfg-preconditions for the two manual `unsafe impls`'s of `Send` and `Sync` for `TokenTree`.
2019-06-14 12:19:26 +02:00
bors
e699ea096f Auto merge of #61679 - zackmdavis:maybe_dont_indicate_the_anonymous_lifetime, r=oli-obk
in which we decline to suggest the anonymous lifetime in declarations

The elided-lifetimes-in-path lint (part of our suite of Rust 2018 idiom lints which we are hoping to promote to Warn status) was firing with an illegal suggestion to write an anonymous lifetime in a
struct/item declaration (where we don't allow it). The linting code was already deciding whether to act on the basis of a `ParamMode` enum, indicating whether the present path-segment was part of an
expression, or anywhere else. The present case seemed to be part of the "anywhere else", and yet meriting different rules as far as the lint was concerned, so it seemed expedient to introduce a new enum member. We yank out `TyKind::Path` arm into its own method so that we can call it with our new `ParamMode` specifically when lowering struct fields—one would have hoped to think of something more elegant than this, but it definitely beats changing the signature of `lower_ty` to take a `ParamMode`!

Resolves #61124.

cc @memoryruins
r? @oli-obk
2019-06-14 09:39:17 +00:00
Marc-Antoine Perennou
4d5f97e833 rustbuild: include llvm-libunwind in dist tarball
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2019-06-14 11:24:59 +02:00
Ralf Jung
e5f840ecb5 make sure we use cfg-if as a std dependency 2019-06-14 11:01:28 +02:00
Ralf Jung
00bae8774c note some safety concerns of raw-ptr-to-ref casts 2019-06-14 10:47:32 +02:00
Mazdak Farrokhzad
065151f8b2 type_alias_enum_variants: add regression test for #61801. 2019-06-14 09:17:29 +02:00
Zack M. Davis
17653dd3da in which we decline to lint single-use lifetimes in derived impls
Resolves #53738.
2019-06-14 00:07:27 -07:00
Zack M. Davis
7a3184a04c in which we decline to suggest the anonymous lifetime in declarations
The elided-lifetimes-in-path lint (part of our suite of Rust 2018
idiom lints which we are hoping to promote to Warn status) was firing
with an illegal suggestion to write an anonymous lifetime in a
struct/item declaration (where we don't allow it). The linting code
was already deciding whether to act on the basis of a `ParamMode`
enum, indicating whether the present path-segment was part of an
expression, or anywhere else. The present case seemed to be part of
the "anywhere else", and yet meriting different rules as far as the
lint was concerned, so it seemed expedient to introduce a new enum
member. We yank out a `TyKind::Path` arm into its own method so that
we can call it with our new `ParamMode` specifically when lowering
struct fields. (The alternative strategy of changing the signature of
`lower_ty` to take a `ParamMode` would be inelegant given that most of
the `TyKind` match arm bodies therein don't concern themselves with
`ParamMode`.)

Resolves #61124.
2019-06-14 00:01:59 -07:00
Mazdak Farrokhzad
d3024138f8 PatKind::Path: avoid calling resolve_ty_and_res_ufcs twice. 2019-06-14 09:00:21 +02:00
bors
42503d5790 Auto merge of #61803 - Centril:write_resolution, r=petrochenkov
typeck: small refactoring, add 'fn write_resolution'
2019-06-14 06:46:01 +00:00
bors
bcc568f27b Auto merge of #61792 - lzutao:issue-51301, r=Centril
Add ui test for issue 51301

Closes #51301
2019-06-14 03:57:28 +00:00
Esteban Küber
8ce063a216 Verify that the clone method call actually corresponds to std::clone::Clone::clone 2019-06-13 18:00:24 -07:00
Esteban Küber
bdb05a84f3 When suggesting to borrow, remove useless clones 2019-06-13 16:46:07 -07:00