bors
f03e06762e
Auto merge of #46582 - nikomatsakis:nll-master-to-rust-master-4, r=arielb1
...
make MIR type checker handle a number of other cases
The existing type checker was primarily used to verify types, but was skipping over a number of details. For example, it was not checking that the predicates on functions were satisfied and so forth. This meant that the NLL region checker was not getting a lot of the constraints it needed. This PR closes those gaps. It also includes a bit of refactoring for the way that we store region values, encapsulating the bit matrix over into its own module and improving the data structures in use.
This is mostly work by @spastorino being ported over from nll-master.
r? @arielb1 or @pnkfelix
2017-12-14 04:32:14 +00:00
..
2017-12-12 23:18:53 -06:00
2017-11-24 11:32:35 +01:00
2017-11-28 03:16:44 +08:00
2017-12-10 21:14:57 +00:00
2017-11-24 11:32:35 +01:00
2017-12-11 21:14:13 +00:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-26 18:28:38 +00:00
2017-11-29 13:28:47 -08:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-12-09 15:19:39 -08:00
2017-11-26 18:28:38 +00:00
2017-11-24 11:32:35 +01:00
2017-12-10 21:14:57 +00:00
2017-11-27 06:00:20 -08:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-27 08:07:49 +00:00
2017-11-26 18:28:38 +00:00
2017-12-11 21:14:13 +00:00
2017-11-24 11:32:35 +01:00
2017-11-29 13:28:47 -08:00
2017-12-10 21:14:57 +00:00
2017-12-09 15:19:39 -08:00
2017-11-24 11:32:35 +01:00
2017-12-13 12:20:27 -05:00
2017-11-24 11:32:35 +01:00
2017-12-11 10:11:13 -05:00
2017-12-10 21:14:57 +00:00
2017-12-01 06:06:06 +00:00
2017-12-10 21:14:57 +00:00
2017-11-27 06:01:16 -08:00
2017-12-11 10:11:13 -05:00
2017-12-10 21:14:57 +00:00
2017-11-24 08:26:45 -08:00
2017-12-10 21:14:57 +00:00
2017-12-09 15:19:39 -08:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-30 16:33:27 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-04 03:09:47 +03:00
2017-11-04 03:09:47 +03:00
2017-11-24 11:32:35 +01:00
2017-12-01 10:44:29 -08:00
2017-11-26 19:01:19 +02:00
2017-11-26 19:01:19 +02:00
2017-12-10 21:14:57 +00:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-13 00:02:23 +03:00
2017-12-13 00:02:23 +03:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-12-07 10:14:39 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-20 09:36:49 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-12-12 23:18:53 -06:00
2017-12-12 23:18:53 -06:00
2017-11-26 07:40:29 -07:00
2017-11-25 19:30:15 -07:00
2017-12-01 11:38:30 +03:00
2017-12-01 00:39:47 +03:00
2017-12-11 20:41:27 +00:00
2017-12-11 20:41:27 +00:00
2017-12-11 19:46:01 +00:00
2017-12-11 19:46:01 +00:00
2017-12-11 20:26:06 +00:00
2017-12-11 20:26:06 +00:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-30 13:10:26 +01:00
2017-11-30 13:10:26 +01:00
2017-10-29 22:14:23 +03:00
2017-10-08 23:52:15 +09:00
2017-11-15 18:13:33 +01:00
2017-10-20 16:04:32 +02:00
2017-11-30 13:10:26 +01:00
2017-11-30 13:10:26 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-12-07 10:14:41 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-12-01 10:44:29 -08:00
2017-11-24 11:32:35 +01:00
2017-10-11 03:13:25 +02:00
2017-12-10 01:20:40 +01:00
2017-12-10 01:20:40 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-11-24 11:32:35 +01:00
2017-12-02 01:03:59 +00:00
2017-12-02 01:03:59 +00:00