about summary refs log tree commit diff
path: root/src/librustc/middle/implicator.rs
AgeCommit message (Collapse)AuthorLines
2016-01-25remove implicatorAriel Ben-Yehuda-454/+0
it is pre-RFC1214 junk
2016-01-07Refactor away extension traits RegionEscape and HasTypeFlagsJeffrey Seyfried-1/+1
2016-01-07Create a visitor for `TypeFoldable`s and use it to implement RegionEscape ↵Jeffrey Seyfried-1/+1
and HasTypeFlags (fixes #20298)
2015-09-14move middle::ty and related modules to middle/ty/Ariel Ben-Yehuda-1/+1
2015-08-24fallout from moving def-idNiko Matsakis-2/+3
2015-08-12Add two new kinds of predicates, WellFormed and ObjectSafe.Niko Matsakis-1/+4
2015-08-12Define the `wf` and `outlives` relation separately, unlike the existingNiko Matsakis-50/+1
`implicator`. These definitions are also in accordance with RFC 1214 (or more so), and hence somewhat different from the implicator. This commit also modifies the implicator to remove the older rules for projections, which can easily trigger infinite loops.
2015-08-06introduce an ADTDef struct for struct/enum definitionsAriel Ben-Yehuda-4/+4
2015-07-24nitsNiko Matsakis-1/+1
2015-07-24Unify the upvar variables found in closures with the actual types of theNiko Matsakis-5/+56
upvars after analysis is done. Remove the `closure_upvars` helper and just consult this list of type variables directly.
2015-07-24Introduce ClosureSubsts rather than just having random fields in theNiko Matsakis-2/+2
TyClosure variant; thread this through wherever closure substitutions are expected, which leads to a net simplification. Simplify trans treatment of closures in particular.
2015-07-24introduce a Vec<Ty> to TyClosure for storing upvar typesNiko Matsakis-1/+2
2015-07-10Rename TypeWithMutability to TypeAndMutJared Roesch-1/+1
2015-07-08Remove snake_case names from ty.rsJared Roesch-1/+1
2015-06-30Remove Typer and ClosureTyperJared Roesch-5/+1
This commit finalizes the work of the past commits by fully moving the fulfillment context into the InferCtxt, cleaning up related context interfaces, removing the Typer and ClosureTyper traits and cleaning up related intefaces
2015-06-26rustc: switch most remaining middle::ty functions to methods.Eduard Burtescu-8/+8
2015-06-26rustc: make ty::mk_* constructors into methods on ty::ctxt.Eduard Burtescu-2/+2
2015-06-26rustc: combine type-flag-checking traits and fns and into one trait.Eduard Burtescu-1/+1
2015-06-25Rename AsPredicate to ToPredicate in order to match naming conventionsJared Roesch-2/+2
2015-06-23Remove the mostly unecessary ParamBounds structJared Roesch-8/+3
2015-06-19rustc: remove Repr and UserString.Eduard Burtescu-13/+12
2015-06-19rustc: replace Repr/UserString impls with Debug/Display ones.Eduard Burtescu-32/+2
2015-06-19rustc: use the TLS type context in Repr and UserString.Eduard Burtescu-19/+19
2015-06-12Split TyArray into TyArray and TySlice.Eli Friedman-0/+1
Arrays and slices are closely related, but not that closely; making the separation more explicit is generally more clear.
2015-06-12Cleanup: rename middle::ty::sty and its variants.Eli Friedman-20/+20
Use camel-case naming, and use names which actually make sense in modern Rust.
2015-06-10Removed many pointless calls to *iter() and iter_mut()Joshua Landau-2/+2
2015-04-30Stop using Rc in TraitRef and TraitDefAriel Ben-Yehuda-3/+2
The former stopped making sense when we started interning substs and made TraitRef a 2-word copy type, and I'm moving the latter into an arena as they live as long as the type context.
2015-04-18Rather than storing the relations between free-regions in a globalNiko Matsakis-0/+487
table, introduce a `FreeRegionMap` data structure. regionck computes the `FreeRegionMap` for each fn and stores the result into the tcx so that borrowck can use it (this could perhaps be refactored to have borrowck recompute the map, but it's a bid tedious to recompute due to the interaction of closures and free fns). The main reason to do this is because of #22779 -- using a global table was incorrect because when validating impl method signatures, we want to use the free region relationships from the *trait*, not the impl. Fixes #22779.