Commit Graph

82512 Commits

Author SHA1 Message Date
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
varkor
335770267a Replace generics_require_inlining with generics.requires_monomorphization 2018-08-19 20:02:32 +01:00
varkor
88d5b2f4b4 Refactor mod/check (part vi) 2018-08-19 20:02:32 +01:00
varkor
c9941a8a85 Refactor mod/check (part v) 2018-08-19 20:02:32 +01:00
varkor
e812b55d8f Refactor mod/check (part iv) 2018-08-19 20:02:32 +01:00
varkor
96379e1659 Refactor mod/check (part iii) 2018-08-19 20:02:32 +01:00
varkor
5fe9aeb402 Refactor mod/check (part ii) 2018-08-19 20:02:32 +01:00
varkor
d1a82af235 Refactor mod/check (part i) 2018-08-19 20:02:32 +01:00
varkor
2317abdd01 Fix quadratic loop in confirm.rs 2018-08-19 20:02:32 +01:00
varkor
651215e283 Replace for_each with for 2018-08-19 20:02:32 +01:00
varkor
11adc1300c Address minor comments 2018-08-19 20:02:32 +01:00
bors
3ac79c7184 Auto merge of #53258 - nikomatsakis:issue-53189-optimize-reassignment-immutable-state, r=pnkfelix
optimize reassignment immutable state

This is the "simple fix" when it comes to checking for reassignment. We just shoot for compatibility with the AST-based checker. Makes no attempt to solve #21232.

I opted for this simpler fix because I didn't want to think about complications [like the ones described here](https://github.com/rust-lang/rust/issues/21232#issuecomment-412219247).

Let's do some profiling measurements.

Fixes #53189

r? @pnkfelix
2018-08-19 17:44:43 +00:00
Mazdak Farrokhzad
f84ec02bf7 remove feature(convert_id) from lib{core,std}/lib.rs 2018-08-19 19:25:35 +02:00
Mazdak Farrokhzad
71187b7e18
Make core::convert::identity a const fn. 2018-08-19 18:49:31 +02:00
Mazdak Farrokhzad
c2217b7fb7
Get rid of unnecessary #![feature(core_float)]. 2018-08-19 18:37:00 +02:00