Niko Matsakis
977f3fc940
introduce QueryKey
separation
2018-06-26 12:41:47 -04:00
Niko Matsakis
f24e90ec25
extract more helpers from instantiating query result
2018-06-26 12:41:47 -04:00
Niko Matsakis
7bab9f0974
WIP fix error messages for propagate_approximated_shorter_to_static_no_bound
2018-06-26 12:41:47 -04:00
bors
7008a953eb
Auto merge of #51725 - Mark-Simulacrum:no-llvm, r=kennytm
...
Do not build LLVM tools for any of the tools
None of the tools in the list should need LLVM tools themselves as far as I can
tell; if this is incorrect, we can re-enable the tool building later.
The primary reason for doing this is that rust-central-station uses the
BuildManifest tool and building LLVM there is not cached: it takes ~1.5
hours on the 2 core machine. This commit should make nightlies and
stable releases much faster.
Followup to https://github.com/rust-lang/rust/pull/51459 , r? @kennytm
I'm mostly relying on CI to test this so probably don't roll it up; I'm not sure how to (and not particularly inclined to) wait for multiple hours to test this locally. I imagine that the failures should be fairly obvious when/if encountered.
2018-06-26 16:26:00 +00:00
Oliver Schneider
e65947d701
Update rustdoc
2018-06-26 17:43:46 +02:00
Oliver Schneider
174b761432
Flatten some occurrences of [P<T>]
to [T]
2018-06-26 17:07:53 +02:00
Josef Reinhard Brandl
433e6b31a7
Add LocalTaskObj
2018-06-26 17:06:20 +02:00
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
Zack M. Davis
64365e46f2
driveby status update to 2015 comment about parens in patterns
2018-06-26 07:54:49 -07:00
Zack M. Davis
3fb76f4027
inclusive range syntax lint (...
→ ..=
)
...
Our implementation ends up changing the `PatKind::Range` variant in the
AST to take a `Spanned<RangeEnd>` instead of just a `RangeEnd`, because
the alternative would be to try to infer the span of the range operator
from the spans of the start and end subexpressions, which is both
hideous and nontrivial to get right (whereas getting the change to the
AST right was a simple game of type tennis).
This is concerning #51043 .
2018-06-26 07:54:49 -07:00
Zack M. Davis
057715557b
migrate codebase to ..=
inclusive range patterns
...
These were stabilized in March 2018's #47813 , and are the Preferred Way
to Do It going forward (q.v. #51043 ).
2018-06-26 07:53:30 -07: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
Josef Reinhard Brandl
1f9aa1332f
Split libcore/task.rs into submodules
2018-06-26 16:40:42 +02:00
Oliver Schneider
28a76a9000
Don't inspect the generated existential type items
2018-06-26 16:36:32 +02: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