Commit Graph

79643 Commits

Author SHA1 Message Date
Esteban Küber
cc0ab82091 review comment 2018-06-21 15:52:48 -07:00
bors
662c70a59f Auto merge of #48149 - varkor:generics-generalisation, r=petrochenkov
The Great Generics Generalisation: HIR Edition

This is essentially a followup to https://github.com/rust-lang/rust/pull/45930, consolidating the use of separate lifetime and type vectors into single kinds vectors wherever possible. This is intended to provide more of the groundwork for const generics (https://github.com/rust-lang/rust/issues/44580).

r? @eddyb
cc @yodaldevoid
2018-06-21 20:58:51 +00:00
Niko Matsakis
e3fa2d5803 tolerate existential types whose concrete expansion is not known 2018-06-21 16:38:35 -04:00
Niko Matsakis
a2a019a28a do not introduce *false* results from lifetime resolution 2018-06-21 16:38:35 -04:00
Esteban Küber
096fbbbe44 Account for bindings with types and in crate macros 2018-06-21 12:10:53 -07:00
Niko Matsakis
8289bf2994 use pat_ty_adjusted from expr_use_visitor to type of arguments 2018-06-21 14:32:52 -04:00
Niko Matsakis
81fedd58b4 rename pat_ty to pat_ty_adjusted for clarity 2018-06-21 14:32:34 -04:00
John Kåre Alsaker
c5ecc6fefb Combine all builtin late lints 2018-06-21 18:00:23 +02:00
varkor
09310947be Support future deprecation for rustc_deprecated 2018-06-21 16:00:32 +01:00
bors
f790780451 Auto merge of #51680 - Mark-Simulacrum:acc-revert, r=Mark-Simulacrum
Revert #51662

This reverts that PR because it was never intended to merge into the master branch.
2018-06-21 13:36:37 +00:00
Mark Simulacrum
43557fc8f9 Revert "Auto merge of #51662 - Mark-Simulacrum:beta-next, r=Mark-Simulacrum"
This reverts commit fff1abadd7, reversing
changes made to 01172a7d13.
2018-06-21 06:53:26 -06:00
Rémy Rakic
63a4e721b3 Share code between gather_used_muts and find_assignments 2018-06-21 14:12:26 +02:00
bors
e11c95dda1 Auto merge of #50336 - japaric:llvm-tools, r=Mark-Simulacrum
ship LLVM tools with the toolchain

this PR adds llvm-{nm,objcopy,objdump,size} to the rustc sysroot (right next to LLD)

this slightly increases the size of the rustc component. I measured these numbers on x86_64 Linux:

- rustc-1.27.0-dev-x86_64-unknown-linux-gnu.tar.gz 180M -> 193M (+7%)
- rustc-1.27.0-dev-x86_64-unknown-linux-gnu.tar.xz 129M -> 137M (+6%)

r? @alexcrichton
cc #49584
2018-06-21 11:28:14 +00:00
bors
95979dcfb2 Auto merge of #51601 - Emerentius:step_by_range_diet, r=sfackler
Specialize StepBy<Range(Inclusive)>

Part of #51557, related to #43064, #31155

As discussed in the above issues, `step_by` optimizes very badly on ranges which is related to
1. the special casing of the first `StepBy::next()` call
2. the need to do 2 additions of `n - 1` and `1` inside the range's `next()`

This PR eliminates both by overriding `next()` to always produce the current element and also step ahead by `n` elements in one go. The generated code is much better, even identical in the case of a `Range` with constant `start` and `end` where `start+step` can't overflow. Without constant bounds it's a bit longer than the manual loop. `RangeInclusive` doesn't optimize as nicely but is still much better than the original asm.
Unsigned integers optimize better than signed ones for some reason.

See the following two links for a comparison.

[godbolt: specialization for ..](https://godbolt.org/g/haHLJr)
[godbolt: specialization for ..=](https://godbolt.org/g/ewyMu6)

`RangeFrom`, the only other range with an `Iterator` implementation can't be specialized like this without changing behaviour due to overflow. There is no way to save "finished-ness".

The approach can not be used in general, because it would produce side effects of the underlying iterator too early.

May obsolete #51435, haven't checked.
2018-06-21 08:55:13 +00:00
bors
fff1abadd7 Auto merge of #51662 - Mark-Simulacrum:beta-next, r=Mark-Simulacrum
[beta] Prepare 1.28.0 beta release

This feels likely to fail due to https://github.com/rust-lang/rust/issues/51650 but I want to see what CI says.
2018-06-21 04:02:57 +00:00
Mark Simulacrum
09a0bc7975 Fix error-chain warnings 2018-06-20 19:52:07 -06:00
Esteban Küber
70c88e500c Don't suggest incorrect syntax 2018-06-20 16:55:52 -07:00
Jorge Aparicio
9a96876d2d no -Bsymbolic for mac; no static-libstdc++ for windows 2018-06-20 17:48:04 -05:00
bors
01172a7d13 Auto merge of #50698 - Eijebong:tempfile, r=oli-obk
Replace tempdir by tempfile
2018-06-20 22:40:18 +00:00
Marco Castelluccio
e9aacfd5c1 Disable probestack when GCOV profiling is being used 2018-06-20 22:07:55 +01:00
jeb
2dcafef621 make parse_seq_to_before_end, mk_mac_expr, and parse_optional_str public in libsyntax 2018-06-20 08:19:05 -10:00
Bastien Orivel
c863049225 Fix tidy 2018-06-20 19:28:27 +02:00
Bastien Orivel
9d5b13e74b Replace tempdir by tempfile in librustc
This removes the last dependency on tempdir.
2018-06-20 19:28:27 +02:00
Bastien Orivel
677eeaaa61 Replace tempdir by tempfile in librustc_trans 2018-06-20 19:28:27 +02:00
Bastien Orivel
ae9a27185e Replace tempdir by tempfile in librustdoc 2018-06-20 19:28:27 +02:00
Rémy Rakic
71543836ab NLL: Walk the MIR only once for the "unused mut" lint 2018-06-20 18:02:44 +02:00
Mark Simulacrum
842a9061ea [beta] Prepare 1.28.0 beta release 2018-06-20 07:48:06 -06:00
bors
637fd2e048 Auto merge of #51651 - spastorino:fix_var_name_in_e0502, r=nikomatsakis
Fix variable name in E0502 double borrow error

Closes #51268

r? @nikomatsakis
2018-06-20 12:46:15 +00:00
Santiago Pastorino
3d31e5ffa6
Fix variable name in E0502 double borrow error 2018-06-20 09:04:52 -03:00
varkor
daf7e359a1 Fix rebase issues with existential types 2018-06-20 12:34:39 +01:00
varkor
21136b8ab4 Rename ParenthesizedArgData to ParenthesisedArgs 2018-06-20 12:23:46 +01:00
varkor
95ce05c586 Simplify some counting 2018-06-20 12:23:46 +01:00
varkor
7a829273bf Rename ty_param_bound to generic_bound 2018-06-20 12:23:46 +01:00
varkor
4343c20819 Use ty::Generics instead of hir::Generics for various checks 2018-06-20 12:23:46 +01:00
varkor
dde942bb64 Fix additional comments 2018-06-20 12:23:46 +01:00
varkor
a65a9d77f3 Fix accidental quadratic loops 2018-06-20 12:23:46 +01:00
varkor
37204027b6 Rename ty_param_bound to trait_bound 2018-06-20 12:23:46 +01:00
varkor
95f1866a4d Make GenericBound explicit 2018-06-20 12:23:46 +01:00
varkor
c5f16e0e18 Rename ParamBound(s) to GenericBound(s) 2018-06-20 12:23:46 +01:00
varkor
991efa4284 Address various comments 2018-06-20 12:23:33 +01:00
varkor
91712bc665 Lift attrs into hir::GenericParam 2018-06-20 12:23:23 +01:00
varkor
7de6ed06a5 Rename TraitTyParamBound to ParamBound::Trait 2018-06-20 12:23:23 +01:00
varkor
8bc3a35576 Fix HasAttrs support for GenericParam 2018-06-20 12:23:23 +01:00
varkor
390aa5d421 Introduce ParamName and use it in place of LifetimeName 2018-06-20 12:23:23 +01:00
varkor
59feafd9d8 Fix NodeLifetime/NodeGenericParam confusion 2018-06-20 12:23:08 +01:00
varkor
831b5c02df Take advantage of the lifetime refactoring 2018-06-20 12:23:08 +01:00
varkor
6015edf9af Remove name from GenericParamKind::Lifetime 2018-06-20 12:23:08 +01:00
varkor
c4e8e71880 Lift name into GenericParam 2018-06-20 12:23:08 +01:00
varkor
32b2dacdf8 Handle lifetimes in NodeGenericParam also 2018-06-20 12:23:07 +01:00
varkor
80dbe58efc Use ParamBounds in WhereRegionPredicate 2018-06-20 12:23:07 +01:00