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