Commit Graph

82358 Commits

Author SHA1 Message Date
Esteban Küber
05d19fba27 Point at the trait argument when using unboxed closure 2018-08-20 16:16:17 -07:00
bors
1558ae7cfd Auto merge of #51880 - varkor:generics-hir-generalisation-followup, r=eddyb
The Great Generics Generalisation: HIR Followup

Addresses the final comments in #48149.

r? @eddyb, but there are a few things I have yet to clean up. Making the PR now to more easily see when things break.

cc @yodaldevoid
2018-08-20 15:47:39 +00:00
varkor
ee9bd0fd99 Add a test for skipping all arguments versus just one 2018-08-20 16:36:45 +01:00
varkor
aa3b5c58e4 Fix diagnostic regression 2018-08-20 16:16:39 +01:00
bors
bf1e461173 Auto merge of #47562 - Centril:feature/core_convert_id, r=oli-obk
Add the identity function as core::convert::identity

## New notes

This implements rust-lang/rfcs#2306 (see https://github.com/rust-lang/rust/issues/53500).

## Old notes (ignore this in new reviews)

Adds the identity function `fn id<T>(x: T) -> T { x }` to core::convert and the prelude.
Some motivations for why this is useful are explained in the doc tests.
Another is that using the identity function instead of `{ x }` or `|x| x` makes it clear that you intended to use an identity conversion on purpose.

The reasoning:
+ behind adding this to `convert` and not `mem` is that this is an identity *conversion*.
+ for adding this to the prelude is that it should be easy enough to use that the ease of writing your own identity function or using a closure `|x| x` doesn't overtake that.

I've separated this out into two feature gates so that the addition to the prelude can be considered and stabilized separately.

cc @bluss
2018-08-20 09:09:55 +00:00
Mazdak Farrokhzad
86641d97b2
core::convert::identity: fix issue number to #53500 2018-08-20 09:16:56 +02:00
bors
758239c9c9 Auto merge of #53519 - Manishearth:clippyup, r=eddyb
Update clippy

r? @oli-obk @eddyb
2018-08-20 06:34:09 +00:00
Manish Goregaokar
7e5a2b21de Update clippy 2018-08-19 19:17:24 -07:00
bors
d2048b6db3 Auto merge of #52101 - japaric:linker-flavor, r=alexcrichton
try to infer linker flavor from linker name and vice versa

This is a second take on PR #50359 that implements the logic proposed in https://github.com/rust-lang/rust/pull/50359#pullrequestreview-116663121

With this change it would become possible to link `thumb*` binaries using GNU's LD on stable as `-C linker=arm-none-eabi-ld` would be enough to change both the linker and the linker flavor from their default values of `arm-none-eabi-gcc` and `gcc`.

To link `thumb*` binaries using rustc's LLD on stable `-Z linker-flavor` would need to be stabilized as `-C linker=rust-lld -Z linker-flavor=ld.lld` are both required to change the linker and the linker flavor, but this PR doesn't propose that. We would probably need some sort of stability guarantee around `rust-lld`'s name and availability to make linking with rustc's LLD truly stable.

With this change it would also be possible to link `thumb*` binaries using a system installed LLD on stable using the `-C linker=ld.lld` flag (provided that `ld.lld` is a symlink to the system installed LLD).

r? @alexcrichton
2018-08-20 01:12:58 +00:00
varkor
ae81fc61d0 Fix ICE 2018-08-20 00:39:58 +01:00
bors
6bf6d50a6f Auto merge of #52953 - dsciarra:mv-codemap-sourcemap, r=petrochenkov
Rename CodeMap/FileMap to SourceMap/SourceFile

A first renaming for #51574
2018-08-19 23:08:26 +00:00
varkor
b5c2470ba3 Update new ui tests 2018-08-20 00:08:01 +01:00
Jorge Aparicio
a6f4ae864e fix: preserve msvc linker fallback logic 2018-08-19 23:59:20 +02:00
varkor
25b62679e9 Taking a peek 2018-08-19 22:31:41 +01:00
bors
f28f648a96 Auto merge of #53316 - tristanburgess:52895_existential_type_ICE, r=oli-obk
52985: cause cycle err on inf trait normalization

Issue: #52985
 - If an existential type is defined, but no user code infers the
concrete type behind the existential type, normalization would
infinitely recurse on this existential type which is only defined in
terms of itself.
  - Instead of raising an inf recurse error, we cause a cycle error to
help highlight that the issue is that the type is only defined in terms
of itself.
  - Three known potential improvements:
    - If type folding itself was exposed as a query, used by
normalization and other mechanisms, cases that would cause infinite recursion would
automatically cause a cycle error.
    - The span for the cycle error should be improved to point to user
code that fails to allow inference of the concrete type of the existential type,
assuming that this error occurs because no user code can allow inference the
concrete type.
    - A mechanism to extend the cycle error with a helpful note would be nice. Currently,
the error is built and maintained by src/librustc/ty/query/plumbing,
with no known way to extend the information that the error gets built
with.

r? @oli-obk
2018-08-19 21:03:12 +00:00
Donato Sciarra
6138c82803 fix tidy errors 2018-08-19 23:01:01 +02:00
Donato Sciarra
a2ff845f3a mv CachingCodemapView CachingSourceMapView 2018-08-19 23:01:01 +02:00
Donato Sciarra
062bfbf39b mv codemap source_map 2018-08-19 23:01:01 +02:00
Donato Sciarra
d3fe97f3d3 mv codemap() source_map() 2018-08-19 23:01:01 +02:00
Donato Sciarra
82607d2cf3 mv (mod) codemap source_map 2018-08-19 23:01:00 +02:00
Donato Sciarra
cbd0595710 mv filemap source_file 2018-08-19 23:00:59 +02:00
Donato Sciarra
d6dcbcd4e1 mv FileMap SourceFile 2018-08-19 23:00:59 +02:00
Donato Sciarra
c655473378 mv CodeMap SourceMap 2018-08-19 23:00:59 +02:00
Mazdak Farrokhzad
b7772e6c9e convert-id: tests for const gating. 2018-08-19 21:06:43 +02:00
varkor
4722744e4d Fix some remaining tests 2018-08-19 20:03:02 +01:00
varkor
03c4628a5b Avoid clone and update documentation 2018-08-19 20:03:02 +01:00
varkor
04d33bbdb3 Refactor generic argument count check in check/mod.rs 2018-08-19 20:03:02 +01:00
varkor
68b0e7dd99 Refactor generic argument count check in method/confirm.rs 2018-08-19 20:02:34 +01:00
varkor
49c45734c0 Refactor generic argument count check in astconv 2018-08-19 20:02:34 +01:00
varkor
a14bc713e7 Add Default for GenericParamCount 2018-08-19 20:02:34 +01:00
varkor
7c9f7c2fa3 Args first, then params 2018-08-19 20:02:34 +01:00
varkor
9d3d4b1a19 Refactor lock-step 2018-08-19 20:02:34 +01:00
varkor
6a96cf12c1 Clean match statement 2018-08-19 20:02:34 +01:00
varkor
e79bc410bf Consolidate into create_substs_for_generic_args 2018-08-19 20:02:34 +01:00
varkor
ccef306b96 Revert broken test 2018-08-19 20:02:34 +01:00
varkor
b524991f03 Refactor astconv.rs (part ii) 2018-08-19 20:02:33 +01:00
varkor
5d07db436d Refactor confirm.rs (part ii) 2018-08-19 20:02:33 +01:00
varkor
08d49a65e7 Refactor mod/check (part viii) 2018-08-19 20:02:33 +01:00
varkor
5f2588f020 Fix behaviour in error condition 2018-08-19 20:02:33 +01:00
varkor
db94efab39 Refactor mod/check (part vii) 2018-08-19 20:02:33 +01:00
varkor
9bb40b09b7 Make prohibit_generics take IntoIterators 2018-08-19 20:02:33 +01:00
varkor
9cfe92c8ae "Fix" annoying test 2018-08-19 20:02:33 +01:00
varkor
e02642dbb3 Fix confirm.rs 2018-08-19 20:02:32 +01:00
varkor
340a7fc4f5 Refactor astconv.rs 2018-08-19 20:02:32 +01:00
varkor
35ddd46a2d Refactor confirm.rs 2018-08-19 20:02:32 +01:00
varkor
84edc0a089 Move lifetime calculation outside loop 2018-08-19 20:02:32 +01:00
varkor
b6eef180cd Supress consecutive errors 2018-08-19 20:02:32 +01:00
varkor
d8ba103334 Fix param_idx calculation 2018-08-19 20:02:32 +01:00
varkor
d5e24dc121 Fix integer overflow 2018-08-19 20:02:32 +01:00
varkor
734ce4ae1a Fix tidy check 2018-08-19 20:02:32 +01:00