95150 Commits

Author SHA1 Message Date
Pyry Kontio
9d99ae520b swig@3 is keg-only and not linked by default so add linking so that the build scripts can find it 2019-06-16 01:51:32 +09:00
Pyry Kontio
d6e410b320 Fix rust-lldb wrapper scripts. 2019-06-16 01:51:32 +09:00
Mazdak Farrokhzad
ab2d2f90c4
Rollup merge of #61854 - alexreg:fix-type-alias-enum-patterns, r=Centril
Minor cosmetic improvements to accompany PR 61825

r? @Centril
2019-06-15 17:45:07 +02:00
Mazdak Farrokhzad
145abd88ca
Rollup merge of #61844 - AaronKutch:master, r=Centril
Change `...` to `..=` where applicable

This is mainly to fix #61816, but I decided to manually check a few thousand `...` throughout the code base to check for any other cases. I think I found a documentation bug in `src\libsyntax\ast.rs` where both `1..` and `1...` where mentioned. If there is internal support for both `1..` and `1..=` (that can exist before error handling gets to it), then I can add that back.
There were some other cases that look like `// struct Closure<'l0...'li, T0...Tj, CK, CS, U0...Uk> {`, `// <P0 as Trait<P1...Pn>>::Foo: 'a`, and `assert!(min <= max, "discriminant range is {}...{}", min, max);`, but I am not sure if I should change those.
There are a bunch of cases in the `/test/` directory that could be changed, but I presume I should just leave those be.
2019-06-15 17:45:06 +02:00
Mazdak Farrokhzad
eb188f1317
Rollup merge of #61824 - rust-lang:single_derive, r=eddyb
in which we decline to lint single-use lifetimes in `derive`d impls

Resolves #53738.

r? @eddyb
2019-06-15 17:45:04 +02:00
Mazdak Farrokhzad
be09427b11
Rollup merge of #61813 - matthewjasper:remove-unnecessary-symbol-ops, r=petrochenkov
Remove some unnecessary symbol interner ops

* Don't gensym symbols that don't need to worry about colliding with other symbols
* Use symbol constants instead of interning string literals in a few places.
* Don't generate a module in `__register_diagnostic`

r? @petrochenkov
2019-06-15 17:45:02 +02:00
Mazdak Farrokhzad
9e810a2775
Rollup merge of #61805 - davidtwco:ice-const-generic-repeat-expr-count-sequel, r=varkor
typeck: Fix ICE for blocks in repeat expr count.

Fixes #61336 (again). This PR fixes an ICE that occured when a block expression resolving to a const generic was used for the count of an array repeat expression.

r? @varkor
2019-06-15 17:45:01 +02:00
Mazdak Farrokhzad
1b95e029f9
Rollup merge of #61785 - RalfJung:as-ref, r=rkruppe
note some safety concerns of raw-ptr-to-ref casts
2019-06-15 17:44:59 +02:00
bors
9f06855064 Auto merge of #61143 - estebank:issue-61106, r=eddyb
When suggesting borrow, remove useless clones

Fix #61106.
2019-06-15 13:12:13 +00:00
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
Esteban Küber
f06b76122c review comments: move diagnostic code out of happy path 2019-06-14 13:40:10 -07:00
Esteban Küber
56e30e1f3f Tweak transparent enums and unions diagnostic spans 2019-06-14 13:39:13 -07:00
Ralf Jung
d54b27d33a update miri 2019-06-14 21:58:33 +02:00
John Kåre Alsaker
007aabae93 Remove unnecessary lift calls 2019-06-14 21:11:50 +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
Alex Crichton
ea1bec3a8a Turn down the myriad-closures test
This tests takes nearly 5 minutes to compile on CI where the CPUs we
have aren't exactly the fastest. This test does actually require all
closures to exist to exhibit the original bug, but it seems a little
excessive to test a single bug on CI on all platforms which simply pegs
a single CPU for 5 minutes with no parallelism opportunities, so this
turns down the test to still exercise it somewhat at least.
2019-06-14 09:53:59 -07: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