Niko Matsakis
d4005a2bc9
thread borrow-set around more
2018-04-15 07:06:30 -04:00
Niko Matsakis
a849da626d
remove ReserveOrActivateIndex
2018-04-15 07:06:29 -04:00
Niko Matsakis
d32e5aac3d
use the activations_at_location
map to check activations
...
Not gen bits
2018-04-15 07:06:29 -04:00
Niko Matsakis
e1f82aa590
determine whether a borrow is active based solely on the location
2018-04-15 07:06:29 -04:00
Niko Matsakis
f93d5d30bd
add useful debug
2018-04-15 07:06:29 -04:00
Niko Matsakis
8e783da222
encapsulate ReserveOrActivateIndex into the borrows dataflow
2018-04-15 07:06:29 -04:00
Niko Matsakis
5f7b74f832
construct the BorrowSet
outside of borrows
2018-04-15 07:06:29 -04:00
Niko Matsakis
e1123674b1
extract code to build borrow-set into borrow_check::borrow_set
...
Also:
- Extract common helper functions into a helper trait.
- Kill a bit of dead code.
2018-04-15 07:06:29 -04:00
Niko Matsakis
70592664b6
relocate BorrowData
etc into borrow_check::borrow_set
2018-04-15 07:06:27 -04:00
bors
9c2bfcbea2
Auto merge of #49808 - spastorino:dump_cause_ice, r=nikomatsakis
...
[NLL] Fix ICE when a borrow wrapped in a temporary is used after dropped
Fixes #47646
r? @nikomatsakis
2018-04-13 16:06:14 +00:00
Scott McMurray
c4b6521327
Add ok-wrapping to catch blocks, per RFC
2018-04-10 20:03:40 -07:00
bors
0b72d48f8e
Auto merge of #48914 - gaurikholkar:e0389, r=nikomatsakis
...
Modify compile-fail/E0389 error message WIP
This fixes #47388
cc @nikomatsakis @estebank
r? @nikomatsakis
Certain ui tests were failing locally. I'll check if the same happens here too.
2018-04-10 19:00:19 +00:00
Santiago Pastorino
2c79f6458e
rustfmt explain_borrow/mod
2018-04-09 17:35:32 -03:00
Santiago Pastorino
2e87dbbde1
Fix ICE when a borrow is used after drop
...
ht @nickfrostatx for the first initial patch
2018-04-09 17:35:28 -03:00
gaurikholkar
c792d1e0c1
tidy fixes
2018-04-09 23:12:13 +05:30
gaurikholkar
2ad20e8127
tidy fixes
2018-04-08 22:57:48 +05:30
gaurikholkar
cbde62c2cc
fix tidy errors
2018-04-07 14:36:29 +05:30
gaurikholkar
e5a96a4b95
modify the error message- CR Comments
2018-04-07 13:17:16 +05:30
bors
0e35dddbd3
Auto merge of #49392 - retep007:nll-issue-48962, r=nikomatsakis
...
fixes move analysis
Fixed compiler error by correct checking when dereferencing
Fix #48962
r? @nikomatsakis
2018-04-06 21:50:12 +00:00
gaurikholkar
6686d104c8
tidy fix
2018-04-06 20:28:00 +05:30
gaurikholkar
1fb25fbbe3
reduce nested loops in the code
2018-04-06 20:00:21 +05:30
gaurikholkar
12d141561d
tidy fixes
2018-04-05 22:49:09 +05:30
gaurikholkar
1b06fe1ef5
Merge branch 'master' of https://github.com/rust-lang/rust into e0389
2018-04-05 21:52:40 +05:30
gaurikholkar
6c649fbed4
address code review comments
2018-04-05 21:48:06 +05:30
Peter Hrvola
9056c7a849
Fixed error message from PR review #49392
2018-04-02 09:01:58 +02:00
Peter Hrvola
dc41851882
Fixed nits from PR review #49392
2018-04-01 10:01:51 +02:00
bors
3c5f850958
Auto merge of #49472 - nikomatsakis:nll-optimize-constraint-prop-1, r=pnkfelix
...
optimize NLL constraint propagation a little
Removes a bone-headed hot spot in NLL constant propagation; we were re-allocating the stack vector and hashmap as we repeated the DFS. This change shares those resources across each call.
It also modifies the constraint list to be a linked list; arguably I should revert that, though, as this didn't turn out to be a perf hit and perhaps the old code was clearer? (Still, the new style appeals to me.)
r? @pnkfelix
2018-03-31 04:09:43 +00:00
Niko Matsakis
ca8176d778
apply pnkfelix nits
2018-03-29 13:32:12 -04:00
Niko Matsakis
bd90302af6
document reason for #[inline(never)] annotation
2018-03-29 13:32:12 -04:00
Niko Matsakis
499d784fbd
amortize dfs storage creation
2018-03-29 13:32:12 -04:00
Niko Matsakis
96f3e560d9
remove dependency map and instead use a linked list of constraints
2018-03-29 13:32:12 -04:00
Niko Matsakis
1ef1b92379
add #[inline(never)]
annotations
2018-03-29 03:44:00 -04:00
bors
9c9424de51
Auto merge of #49202 - csmoe:trait_engine, r=nikomatsakis
...
Introduce trait engine
address #48895 step 1: introduce trait engine
2018-03-27 14:31:43 +00:00
Peter Hrvola
4954e3e828
fixes internal compiler error:
...
librustc_mir/transform/elaborate_drops.rs — drop of untracked, uninitialized value
Fix #48962
r? @nikomatsakis
2018-03-26 22:07:40 +02:00
csmoe
0c4062a94d
import trait engine to typeck
2018-03-23 09:22:07 +08:00
Niko Matsakis
04aeef8d45
Debug logs for replace_bound_regions_with_nll_infer_vars
2018-03-22 22:40:51 +00:00
David Wood
692a931887
UserAssertTy can handle inference variables.
...
This commit modifies the UserAssertTy statement to take a canonicalized
type rather than a regular type so that we can handle the case where the
user provided type contains a inference variable.
2018-03-22 21:11:02 +00:00
David Wood
5d2a60c57e
No longer visiting user_assert_ty statements in constraint generation.
2018-03-22 21:11:02 +00:00
David Wood
d4b9a7874b
Added comment in renumberer about UserAssertTy.
2018-03-22 21:11:02 +00:00
David Wood
ee4c7ac154
Added override in renumberer for UserAssertTy.
2018-03-22 21:11:01 +00:00
David Wood
239b3ec473
Changed location to at_self from at_successor.
2018-03-22 21:11:01 +00:00
David Wood
5f21aa8734
Added initial processing of UserAssertTy statements.
2018-03-22 21:11:00 +00:00
David Wood
17b285d203
Added UserAssertTy statement.
2018-03-22 21:10:59 +00:00
bors
5ebf74851d
Auto merge of #47630 - canndrew:exhaustive-patterns, r=nikomatsakis
...
Stabilise feature(never_type). Introduce feature(exhaustive_patterns)
This stabilizes `!`, removing the feature gate as well as the old defaulting-to-`()` behavior. The pattern exhaustiveness checks which were covered by `feature(never_type)` have been moved behind a new `feature(exhaustive_patterns)` gate.
2018-03-14 23:43:04 +00:00
kennytm
b5f102c7ae
Rollup merge of #48840 - varkor:idxset-cleanup, r=pnkfelix
...
Remove some unnecessary IdxSet methods
This replaces `IdxSet:: reset_to_empty` with `IdxSet:: clear`, and `IdxSet::elems`/`IdxSet::each_bit` with `IdxSet::iter`. Based on some [comments on #rustc](https://botbot.me/mozilla/rustc/2018-01-23/?msg=96063396 ).
r? @pnkfelix
2018-03-15 00:15:46 +08:00
Andrew Cann
9b15ddb29e
remove defaulting to unit
...
Types will no longer default to `()`, instead always defaulting to `!`.
This disables the associated warning and removes the flag from TyTuple
2018-03-14 12:44:51 +08:00
Niko Matsakis
e4728e494e
transition various normalization functions to the new methods
...
In particular:
- `fully_normalize_monormophic_ty` => `normalize_erasing_regions`
- `normalize_associated_type_in_env` => `normalize_erasing_regions`
- `fully_normalize_associated_types_in` => `normalize_erasing_regions`
- `erase_late_bound_regions_and_normalize` => `normalize_erasing_late_bound_regions`
2018-03-13 11:22:07 -04:00
Niko Matsakis
ca87d24467
introduce infcx.at(..).dropck_outlives(..)
operaton [VIC]
...
Backed by a canonicalized query. This computes all the types/regions that need
to be live when the destructor runs (i.e., that the dtor may access).
2018-03-13 11:22:07 -04:00
Niko Matsakis
3a50b41da4
introduce infcx.at(..).normalize(..)
operation [VIC]
...
It is backed by the new `normalize_projection_ty` query, which uses
canonicalization.
2018-03-13 11:22:05 -04:00
Niko Matsakis
993c1488cc
add canonicalize
method to InferCtxt
[VIC]
2018-03-13 11:21:31 -04:00