Nadrieril
00ccadf43f
Add some tests
2019-12-02 16:00:24 +00:00
Nadrieril
e6aa96246f
Simplify lifetimes by allocating patterns on the arena
...
We want the lifetimes of the patterns contained in the matrix and the
candidate `PatStack` to be the same so that they can be mixed together.
A lot of this would not be necessary if `SmallVec` was covariant in its
type argument (see https://github.com/servo/rust-smallvec/issues/146 ).
2019-12-02 16:00:24 +00:00
Nadrieril
21af89d773
UsefulWithWitness
always carries some witnesses
2019-12-02 16:00:24 +00:00
Nadrieril
fe67196679
Don't build the same matrix twice
...
The exact same logic was used in check_arms and check_match to build the
matrix of relevant patterns. It would actually probably have been a bug
if it was not the case, since exhaustiveness checking should be the same
as checking reachability of an additional `_ => ...` match branch.
2019-12-02 16:00:12 +00:00
bors
fdc0011561
Auto merge of #64736 - Nashenas88:mir_predecessors_cache_cleanup, r=oli-obk
...
Remove interior mutability in mir predecessors cache
2019-12-02 14:51:02 +00:00
Christian Poveda
e01ad6a01a
Remove E0017 from error codes index
2019-12-02 09:46:27 -05:00
Christian Poveda
416b439ffb
Correct other tests related to const_mut_refs
2019-12-02 09:46:26 -05:00
Christian Poveda
dc0117a42c
Add dual tests for const_mut_refs
2019-12-02 09:43:40 -05:00
Christian Poveda
19ddfb545b
Update miri unleashed tests
2019-12-02 09:43:40 -05:00
Christian Poveda
5e61e4cadc
Suggest feature for const_mut_refs errors
2019-12-02 09:43:39 -05:00
Paul Daniel Faria
3eaad564d2
Fix issues caused during rebasing
2019-12-02 09:40:03 -05:00
Christian Poveda
681690db4e
Update miri_unleashed tests
2019-12-02 09:10:11 -05:00
Christian Poveda
683f5c9c23
Disallow cell borrowing
2019-12-02 09:10:09 -05:00
Christian Poveda
e31a1368fd
Extend test for const_mut_refs feature
2019-12-02 09:03:41 -05:00
Christian Poveda
d92e9b7374
Allow mutable derefs with feature gate
2019-12-02 09:03:41 -05:00
Christian Poveda
de60f721c4
Move and rewrite tests to use &mut in constants
2019-12-02 09:03:41 -05:00
Christian Poveda
1f420b9891
Allow mutable borrows in constant bodies
2019-12-02 09:03:41 -05:00
Christian Poveda
d24ae2577f
Rename feature gate
2019-12-02 09:03:41 -05:00
Christian Poveda
8b0f5acfcb
Add tests for mutable borrows in const fns
2019-12-02 09:03:41 -05:00
Christian Poveda
bb2a423894
Allow &mut in const fns when feature gate is enabled
2019-12-02 09:03:40 -05:00
Christian Poveda
12ac49afc9
Add feature gate for &mut in const fns
2019-12-02 09:03:39 -05:00
Paul Daniel Faria
6123478f2a
Fix issues caused during rebasing
2019-12-02 08:43:01 -05:00
Paul Daniel Faria
38bd3a2342
Use new HashStable proc macro
2019-12-02 08:43:01 -05:00
Paul Daniel Faria
acb90eb014
Fix tidy issues
2019-12-02 08:43:01 -05:00
Paul Daniel Faria
9978574c9e
Fix rebasing errors, convert some BodyCache::body() calls to reborrows
2019-12-02 08:43:01 -05:00
Paul Daniel Faria
64654ce1f1
Fix type errors created during rebasing
2019-12-02 08:42:24 -05:00
Paul Daniel Faria
598797c6e7
Remove unchecked inline attribute, remove unused functions, make chache mod private again
2019-12-02 08:41:30 -05:00
Paul Daniel Faria
c6354e9839
Remove inline attributes that hadn't been profiled, unexport Cache since it no longer needs to be public
2019-12-02 08:41:30 -05:00
Paul Daniel Faria
245abc49be
Fix type errors cause during rebasing
2019-12-02 08:41:30 -05:00
Paul Daniel Faria
05dc5e9f47
Compute predecessors in mir_build query and use existing cache for generating ReadOnlyBodyCache, remove unneeded fns
2019-12-02 08:41:30 -05:00
Paul Daniel Faria
ed90818ac8
Remove files created during conflict resolution
2019-12-02 08:40:56 -05:00
Paul Daniel Faria
51b06656da
Fix typos caused during rebase
2019-12-02 08:40:56 -05:00
Paul Daniel Faria
b2fe254c98
Remove HasLocalDecls impl from BodyCache's, properly reborrow to Body, rename all body_cache back to body
2019-12-02 08:40:56 -05:00
Paul Daniel Faria
595d161d36
Remove BodyCache.body and rely on Deref as much as possible for ReadOnlyBodyCache
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
c42bdb8c74
Undo minor changes that weren't needed, fix one lifetime typo
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
e54c610f85
Fix compilation errors created during rebase
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
ab657e3b6b
Fix typo
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
67b7a78231
Fix tidy errors
2019-12-02 08:38:16 -05:00
Paul Daniel Faria
35590b5cc8
Fix typos caused during rebase
2019-12-02 08:37:23 -05:00
Paul Daniel Faria
4de31b26d1
Fix remaining compilation issues
2019-12-02 08:37:04 -05:00
Paul Daniel Faria
fc6b58d0a8
Simplify BodyCache impl and fix all remaining type errors in librustc_mir (lifetime errors still exist)
2019-12-02 08:35:08 -05:00
Paul Daniel Faria
38c0887c76
Fix remaining Body -> (ReadOnly)BodyCache type errors in librustc_mir outside of librustc_mir/transform
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
3642a71da2
Fix typo caused by rebasing
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
0a19371243
Add predecessors fn to ReadOnlyBodyCache, fix more Body -> (ReadOnly)BodyCache type errors
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
26f1c01ff7
Add read_only fn to BodyCache<&mut...> impl, fix more Body -> (ReadOnly)BodyCache type errors
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
ab98c595ea
Fix a large number of Body -> (ReadOnly)BodyCache type errors, add predecessor_locations fn to ReadOnlyBodyCache
2019-12-02 08:31:35 -05:00
Paul Daniel Faria
2eed90a621
Account for new maybe_sideeffect helper that requires predecessors
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
c8c266a0fb
Convert &mut to & since the reference didn't need to be mutable
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
66279d12f9
Revert back to using FunctionCx's Body
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
16952cce01
Add Body back as field of FunctionCx, but under a different lifetime
2019-12-02 08:30:30 -05:00