Masood Malekghassemi
f52b655621
Plumb inference obligations through selection
2016-05-11 17:29:23 -07:00
Masood Malekghassemi
ec7c483d67
Don't mutate the inference context when assembling
2016-05-11 14:56:52 -07:00
Masood Malekghassemi
8628ccec8f
Add inferred obligation storage to all Vtable variants and SelectionContext
2016-05-11 14:40:24 -07:00
Eduard Burtescu
20652162ca
rustc: More interning for data used in Ty<'tcx>.
2016-05-11 04:14:58 +03:00
Eduard Burtescu
8f72d8127f
rustc: Generalize a minimum set of functions over 'tcx != 'gcx.
2016-05-11 04:14:58 +03:00
Eduard Burtescu
8a704f6dc7
rustc: Remove the TyCtxt field from ParameterEnvironment.
2016-05-11 04:14:58 +03:00
Eduard Burtescu
76affa5d6f
rustc: Split 'tcx into 'gcx and 'tcx for InferCtxt and its users.
2016-05-11 04:14:58 +03:00
Eduard Burtescu
513d392f7e
rustc: Replace &'a TyCtxt<'tcx> with a TyCtxt<'a, 'tcx> wrapper.
2016-05-11 04:14:58 +03:00
Eduard Burtescu
f8ea24edc8
rustc: Avoid free functions taking &TyCtxt and &InferCtxt.
2016-05-11 04:14:58 +03:00
Ariel Ben-Yehuda
6c883840e6
stop dropping impls from cause backtraces
2016-05-03 18:52:55 +03:00
Ariel Ben-Yehuda
62db786fc8
stop using commit_if_ok where no errors can happen
2016-05-03 18:52:55 +03:00
Ariel Ben-Yehuda
6057a7f188
change the newly-added errors to warnings
...
this commit should be reverted after a release cycle
2016-05-03 18:52:55 +03:00
Ariel Ben-Yehuda
2f8f256cef
require the existential bounds of an object type to be object-safe
...
This is required, as Copy and Sized are object-unsafe.
As a soundness fix, this is a [breaking-change]
Fixes #32963
2016-05-03 18:30:10 +03:00
Ariel Ben-Yehuda
0a6dfc5177
require the non-last elements of a tuple to be Sized
...
This requirement appears to be missing from RFC1214, but is clearly
necessary for translation. The last field of a tuple/enum remains in
a state of limbo, compiling but causing an ICE when it is used - we
should eventually fix that somehow.
this is a [breaking-change] - a soundness fix - and requires a
crater run.
2016-05-03 18:30:10 +03:00
Ariel Ben-Yehuda
babb5df529
refactor the handling of builtin candidates
2016-05-03 18:30:10 +03:00
Ariel Ben-Yehuda
73f39a026a
Short-cut Sized matching on ADTs
...
Put a constraint type on every ADT def, such that the ADT def is sized iff the constraint
type is, and use that in selection. This ignores types that are obviously sized.
This improves typeck performance by ~15%.
2016-05-03 18:30:10 +03:00
bors
35dca7fb7b
Auto merge of #32780 - soltanmm:consider-the-following, r=nikomatsakis
...
Replace consider_unification_despite_ambiguity with new obligation variant
Is work towards #32730 . Addresses part one of #32286 . Addresses #24210 and #26046 to some degree.
r? @nikomatsakis
2016-04-13 11:28:30 -07:00
Masood Malekghassemi
e45c7955e9
Replace consider_unification_despite_ambiguity with obligation variant
2016-04-06 13:57:18 -07:00
Eduard Burtescu
ffca6c3e15
rustc: move middle::{def,def_id,pat_util} to hir.
2016-04-06 09:14:21 +03:00
Eduard Burtescu
8b0937293b
rustc: move rustc_front to rustc::hir.
2016-04-06 09:01:55 +03:00
Manish Goregaokar
f6019760f9
Rollup merge of #32596 - soltanmm:lazy, r=nikomatsakis
...
Plumb obligations through librustc/infer
Like #32542 , but more like #31867 .
TODO before merge: make an issue for the propagation of obligations through... uh, everywhere... then replace the `#????`s with the actual issue number.
cc @jroesch
r? @nikomatsakis
2016-04-05 16:43:21 +05:30
Masood Malekghassemi
86071aca3d
Address nits
2016-04-04 12:41:05 -07:00
Benjamin Herr
dfd0e937ac
librustc: replace unreachable! with bug!()
2016-03-31 22:04:23 +02:00
Benjamin Herr
bcdaccfbbe
librustc: replace span_bug calls with span_bug!()
2016-03-31 22:04:23 +02:00
Benjamin Herr
859b5a141c
librustc: replace tcx.sess.bug calls with bug!()
2016-03-31 22:04:23 +02:00
Masood Malekghassemi
dcdf3d62c1
Plumb obligations through librustc/infer
2016-03-29 20:06:42 -07:00
Eduard Burtescu
5efdde0de1
rustc: move cfg, infer, traits and ty from middle to top-level.
2016-03-27 01:05:54 +02:00