about summary refs log tree commit diff
path: root/src/liballoc/string.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-06-10 19:21:24 +0000
committerbors <bors@rust-lang.org>2017-06-10 19:21:24 +0000
commitb7613f82814e803bf75c074ae4e50a584fee3e70 (patch)
tree33bd019446df904ca0d8a5b5aa20f48f75adc9c3 /src/liballoc/string.rs
parent995f741a0e3a57d4142c0590b3266514fa0a0e29 (diff)
parentfc5c31c48cf19757ebf4b750efa34e7cb5f995e3 (diff)
downloadrust-b7613f82814e803bf75c074ae4e50a584fee3e70.tar.gz
rust-b7613f82814e803bf75c074ae4e50a584fee3e70.zip
Auto merge of #42563 - eddyb:infer, r=nikomatsakis
Disentangle InferCtxt, MemCategorizationContext and ExprUseVisitor.

At some point in the past, `InferCtxt` started being used to replace an old "`Typer`" abstraction, which provided access to `TypeckTables` and had optionally type inference to account for.
That didn't play so nicely with the `'gcx`/`'tcx` split and I had to introduce `borrowck_fake_infer_ctxt`.
The situation wasn't great but it wasn't too painful inside `rustc` itself.

Recently I've found that method being used in clippy, which does need EUV (before we make it plausible to run lints on HAIR or MIR), and set out to separate inference from tables, for the sake of lint authors.
Also fixes #42435 to make it trivial to compute type layout or use EUV from lints.

The remaining uses of `TypeckTables` in `InferCtxt` are for closure kinds and signatures, used in trait selection and projection normalization. The solution there is likely to add them as bounds to `ParamEnv`.

r? @nikomatsakis
cc @mcarton @llogiq @Manishearth
Diffstat (limited to 'src/liballoc/string.rs')
0 files changed, 0 insertions, 0 deletions