Commit Graph

79672 Commits

Author SHA1 Message Date
Niko Matsakis
7c72e778ab instantiate closure requirements as query-region-constraints [WIP]
Marked as WIP because it invalidates some tests.
2018-06-26 10:59:40 -04:00
Niko Matsakis
3e32d42532 transition to Fallible 2018-06-26 10:59:40 -04:00
Niko Matsakis
2a0b3d6224 introduce Normalizable trait for things directly normalizable 2018-06-26 10:59:40 -04:00
Niko Matsakis
de7e941e4e convert prove_predicate into a query 2018-06-26 10:59:40 -04:00
Niko Matsakis
d6136837b7 convert predicates to operate on 1 predicate at a time 2018-06-26 10:59:40 -04:00
Niko Matsakis
4beea9943b make Subtype a true query 2018-06-26 10:59:40 -04:00
Niko Matsakis
71ce2e7eb6 make Eq a true query 2018-06-26 10:59:40 -04:00
Niko Matsakis
1acffada44 introduce canonicalize_hr_query_hack
As the comment explains, this is needed to prevent subtype from going
awry in higher-ranked cases, due to #33684. The proper fix here is
introducing universes (#48536).
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
1d664622b6 remove Canonicalization trait, which serves no purpose 2018-06-26 10:59:38 -04:00
Niko Matsakis
d748dc5db0 extract query_result_substitution helper 2018-06-26 10:51:10 -04:00
Niko Matsakis
75e3a9c8fd rename instantiate_query_result 2018-06-26 10:51:08 -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
21592cdecd move Debug bounds onto Lift
Just for convenience.
2018-06-26 10:49:24 -04:00
Niko Matsakis
be27a5a775 make one Canonicalize impl for QueryResult
This lets us simplify a few type aliases.
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
2624c14a26 extract the handling of region constraints from queries 2018-06-26 10:49:24 -04:00
Niko Matsakis
bebd3ff666 extract a helper for make_query_result that skips canonicalization 2018-06-26 10:49:24 -04:00
Niko Matsakis
dfd33f5932 move make_query_response into method on infcx 2018-06-26 10:49:24 -04:00
Niko Matsakis
a1811cef76 break canonicalizer into submodules to make it easier to comprehend 2018-06-26 10:49:23 -04:00
Niko Matsakis
5e9f8d5c69 promote canonical into a module 2018-06-26 10:31:49 -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
65ceec71ec make TypeOutlives parameterized over a delegate
It was only using the `infcx` to "accumulate" constraints anyhow.
2018-06-26 10:31:49 -04:00
Niko Matsakis
b858ed5919 obligations.rs: rustfmt 2018-06-26 10:31:49 -04:00
Niko Matsakis
5829746ddd resolve type vars *before* entering type_must_outlive
All recursive calls only use type-vars that should already be
resolved, because they were obtained from `ty`.
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
bors
764232cb2a Auto merge of #51805 - pietroalbini:rollup, r=pietroalbini
Rollup of 11 pull requests

Successful merges:

 - #51104 (add `dyn ` to display of dynamic (trait) types)
 - #51153 (Link panic and compile_error docs)
 - #51642 (Fix unknown windows build)
 - #51730 (New safe associated functions for PinMut)
 - #51731 (Fix ICEs when using continue as an array length inside closures (inside loop conditions))
 - #51747 (Add error for using null characters in #[export_name])
 - #51769 (Update broken rustc-guide links)
 - #51786 (Remove unnecessary stat64 pointer casts)
 - #51788 (Fix typo)
 - #51789 (Don't ICE when performing `lower_pattern_unadjusted` on a `TyError`)
 - #51791 (Minify css)

Failed merges:

r? @ghost
2018-06-26 11:20:18 +00:00
Pietro Albini
a539885450
Rollup merge of #51791 - GuillaumeGomez:minify-css, r=estebank
Minify css

Sizes changes:

```
dark.css: 8821 => 7804 (~11%)
light.css: 8587 => 7565 (~11%)
rustdoc.css: 22364 => 17818 (~20%)
settings.css: 1384 => 1236 (~10%)
```

So obviously, the bigger the file, the bigger minification.

r? @QuietMisdreavus
2018-06-26 11:35:45 +02:00
Pietro Albini
f2a099b17f
Rollup merge of #51789 - estebank:issue-50577, r=oli-obk
Don't ICE when performing `lower_pattern_unadjusted` on a `TyError`

Fix #50577. CC #51696.

r? @oli-obk
2018-06-26 11:35:44 +02:00
Pietro Albini
8014713805
Rollup merge of #51788 - berkus:fix-typo, r=varkor
Fix typo
2018-06-26 11:35:43 +02:00
Pietro Albini
2348dc5b3f
Rollup merge of #51786 - cuviper:stat64-pointers, r=Mark-Simulacrum
Remove unnecessary stat64 pointer casts

In effect, these just casted `&mut stat64` to `*mut stat64`, twice.
That's harmless, but it masked a problem when this was copied to new
code calling `fstatat`, which takes a pointer to `struct stat`.  That
will be fixed by #51785, but let's remove the unnecessary casts here
too.
2018-06-26 11:35:41 +02:00
Pietro Albini
932db193c2
Rollup merge of #51769 - alexcameron89:update_rustc_guide_links, r=frewsxcv
Update broken rustc-guide links

Recently, there has been some rearrangement of the content in the Rustc
Guide, and this commit changes the urls the match the updated guide.
2018-06-26 11:35:40 +02:00