786 Commits

Author SHA1 Message Date
Niko Matsakis
d6136837b7 convert predicates to operate on 1 predicate at a time 2018-06-26 10:59:40 -04:00
Niko Matsakis
2655522580 move type_op into rustc 2018-06-26 10:59:40 -04:00
Niko Matsakis
3b446b4b91 introduce QueryTypeOp trait and use it for eq 2018-06-26 10:59:40 -04:00
Niko Matsakis
e72dc79488 make convert so it can apply to a single constraint 2018-06-26 10:49:24 -04:00
Niko Matsakis
3f1961d62e extract type-ops into their own submodules 2018-06-26 10:49:24 -04:00
Niko Matsakis
7cb86ed1e3 change to crate privacy instead of pub(super) 2018-06-26 10:49:24 -04:00
Niko Matsakis
7358931a1c improve trivial_case handling 2018-06-26 10:49:24 -04:00
Niko Matsakis
c8cf710ce0 replace LexicalRegionConstraintData with QueryRegionConstraint 2018-06-26 10:49:24 -04:00
Niko Matsakis
71234278fa align the type-op outputs with what canonicalized queries give 2018-06-26 10:31:49 -04:00
Niko Matsakis
6ac89174b8 mk fully_perform_op_and_get_region_constraint_data a TypeOp method 2018-06-26 10:31:49 -04:00
Niko Matsakis
efc84c83f9 remove the TypeOp vs InfcxTypeOp distinction 2018-06-26 10:31:49 -04:00
Niko Matsakis
dee18864ad promote type_op into a mod.rs file 2018-06-26 10:31:49 -04:00
Niko Matsakis
252a6dfa35 introduce DropckOutlives type-op 2018-06-26 10:31:49 -04:00
Niko Matsakis
7a641cb145 make TypeOp implement debug instead of carrying a closure
This allows us to avoid some silly clones etc.
2018-06-26 10:31:49 -04:00
Niko Matsakis
e7a9e7aef2 extract a enabled helper to remove some ad-hoc conditionals 2018-06-26 10:31:49 -04:00
Niko Matsakis
13e77934e5 create InfcxTypeOp that only depend on an infcx
We want any add'l context required to be passed through the struct
itself.
2018-06-26 10:31:49 -04:00
Niko Matsakis
846cc263cf make normalize into an op 2018-06-26 10:31:49 -04:00
Niko Matsakis
f998628e5c let trivial_noop take ownership of self 2018-06-26 10:31:49 -04:00
Niko Matsakis
8147d17d8e make normalize take ownership of the thing to be normalized 2018-06-26 10:31:49 -04:00
Niko Matsakis
214d7650c9 introduce prove_predicates type op 2018-06-26 10:31:49 -04:00
Niko Matsakis
7c62461c39 introduce trivial_noop to accommodate micro-optimizations 2018-06-26 10:31:49 -04:00
Niko Matsakis
9b4fe44280 introduce Eq type-op 2018-06-26 10:31:49 -04:00
Niko Matsakis
2b52793f74 introduce Subtype type_op 2018-06-26 10:31:49 -04:00
Niko Matsakis
909b10c33b introduce type_op 2018-06-26 10:31:49 -04:00
Santiago Pastorino
d3defcaf3b
Run rustfmt 2018-06-19 21:24:39 -03:00
Santiago Pastorino
f4fc43cb20
Suggest that values are dropped in the opposite order they are defined 2018-06-19 21:21:50 -03:00
Niko Matsakis
2e25bed9b1 remove some #[inline(never)] 2018-06-09 17:20:15 -04:00
Niko Matsakis
908c1f2f0c use DUMMY_NODE_ID as the body_id during NLL type-checking
The choice is arbitrary since there is only one involved.
2018-06-09 11:06:41 -04:00
Niko Matsakis
6a5a4874a0 convert type-check constraints into NLL constraints on the fly
We used to accumulate a vector of type-check constraints, but now we
generate them as we go, and just store the NLL-style
`OutlivesConstraint` and `TypeTest` information.
2018-06-09 11:02:14 -04:00
Niko Matsakis
ba6a7f7500 rename Constraint to OutlivesConstraint 2018-06-09 11:02:14 -04:00
Niko Matsakis
9980415fbd key drop-data computation by ty, not var 2018-06-09 11:02:14 -04:00
Niko Matsakis
d476147629 cache the dropck_outlives computation per variable 2018-06-09 11:02:14 -04:00
Niko Matsakis
780f6c52cc extract out fully_perform_op_and_get_region_constraints 2018-06-09 11:02:13 -04:00
Niko Matsakis
7ff89805fe put the RegionConstraintData into an Rc 2018-06-09 11:02:13 -04:00
Niko Matsakis
8825f42a07 librustc_mir/borrow_check/nll/type_check/mod.rs: rustfmt 2018-06-09 11:02:13 -04:00
Niko Matsakis
55c6357daf micro-optimize empty predicate and normalize lists 2018-06-09 11:02:13 -04:00
Niko Matsakis
73a09f35b1 skip eq_types and sub_types when the two types are equal 2018-06-09 11:02:13 -04:00
Niko Matsakis
956e2f8348 add some instrumentation 2018-06-09 11:02:13 -04:00
Gergely Nagy
f1c9247663 NLL performance boost 2018-06-06 17:31:24 +02:00
Vytautas Astrauskas
265b04df9a Change the log level of the message reporting the selected Polonius algorithm to debug. 2018-06-02 14:20:04 +02:00
Vytautas Astrauskas
1404c00eb0 Allow choosing Polonius algorithm via environment variable POLONIUS_ALGORITHM. 2018-06-02 14:17:12 +02:00
bors
20af72b943 Auto merge of #51106 - davidtwco:issue-50934, r=nikomatsakis
Optimize the way that loans are killed in borrowck dataflow

Fixes #50934.
r? @nikomatsakis
2018-05-30 09:24:20 +00:00
Felix S. Klock II
24abe6f363 rust-lang/rust#27282: Add StatementKind::ReadForMatch to MIR.
(This is just the data structure changes and some boilerplate match
code that followed from it; the actual emission of these statements
comes in a follow-up commit.)
2018-05-29 23:01:36 +02:00
Niko Matsakis
948f77c71f tweak debug output some more 2018-05-29 15:09:37 -04:00
Santiago Pastorino
a8b36c9e9a
Run rustfmt 2018-05-29 10:19:47 -03:00
Douglas Campos
b45aebfdf6
it compiles, but we do not use the output yet 2018-05-29 10:19:46 -03:00
kennytm
e667e7be60
Rollup merge of #51047 - spastorino:use_polonius_engine_facts, r=nikomatsakis
Use AllFacts from polonius-engine
2018-05-26 19:32:22 +08:00
bors
910e29a45b Auto merge of #50998 - bobtwinkles:nll_facts_invalidate_followup, r=nikomatsakis
NLL facts invalidate followup

Refactors to share code with the rest of borrow-check.

r? @nikomatsakis
2018-05-25 06:26:26 +00:00
Santiago Pastorino
8429d11a0b
Use AllFacts from polonius-engine 2018-05-24 19:56:02 -03:00
bobtwinkles
ed72977475 Remove unnecessary type annotations 2018-05-23 07:57:21 -07:00