summary refs log tree commit diff
path: root/src/librustc/ty/structural_impls.rs
AgeCommit message (Collapse)AuthorLines
2017-09-11rustc: evaluate fixed-length array length expressions lazily.Eduard-Mihai Burtescu-1/+119
2017-09-11rustc: use ty::Const for the length of TyArray.Eduard-Mihai Burtescu-2/+2
2017-09-11rustc: introduce ty::Const { ConstVal, Ty }.Eduard-Mihai Burtescu-0/+93
2017-09-03rustc_mir: use Local in ProjectionElem::Index.Eduard-Mihai Burtescu-1/+1
2017-09-01rustc: take TyCtxt and RegionMaps in CodeMap::span.Eduard-Mihai Burtescu-15/+1
2017-08-16Merge remote-tracking branch 'origin/master' into genAlex Crichton-1/+1
2017-08-15use field init shorthand EVERYWHEREZack M. Davis-1/+1
Like #43008 (f668999), but _much more aggressive_.
2017-08-09Initial pass review commentsAlex Crichton-4/+4
2017-08-09Merge remote-tracking branch 'origin/master' into genAlex Crichton-14/+10
2017-07-29Cleanup some remains of `hr_lifetime_in_assoc_type` compatibility lintVadim Petrochenkov-14/+10
2017-07-28Remove support for `gen arg`Alex Crichton-5/+2
2017-07-28Rename suspend to yieldJohn Kåre Alsaker-5/+5
2017-07-28Fix tidy warningsAlex Crichton-9/+14
2017-07-28Generator literal supportJohn Kåre Alsaker-0/+59
2017-07-27rustc_const_eval: keep track of the appropriate ParamEnv.Eduard-Mihai Burtescu-1/+1
2017-07-11Downgrade ProjectionTy's TraitRef to its substsTobias Schottdorf-18/+17
Addresses the second part of #42171 by removing the `TraitRef` from `ProjectionTy`, and directly storing its `Substs`. Closes #42171.
2017-07-08Implemented `TypeFoldable` for `TypeError`s.Inokentiy Babushkin-0/+90
2017-07-05use field init shorthand in src/librustcZack M. Davis-12/+12
The field init shorthand syntax was stabilized in 1.17.0 (aebd94f); we are now free to use it in the compiler.
2017-06-27rustc: move the PolyFnSig out of TyFnDef.Eduard-Mihai Burtescu-7/+3
2017-06-01strip param-env from infcxNiko Matsakis-0/+25
2017-06-01Auto merge of #42281 - eddyb:well-adjusted, r=nikomatsakisbors-25/+98
Decompose Adjustment into smaller steps and remove the method map. The method map held method callee information for: * actual method calls (`x.f(...)`) * overloaded unary, binary, indexing and call operators * *every overloaded deref adjustment* (many can exist for each expression) That last one was a historical ~~accident~~ hack, and part of the motivation for this PR, along with: * a desire to compose adjustments more freely * containing the autoderef logic better to avoid mutation within an inference snapshot * not creating `TyFnDef` types which are incompatible with the original one * i.e. we used to take a`TyFnDef`'s `for<'a> &'a T -> &'a U` signature and instantiate `'a` using a region inference variable, *then* package the resulting `&'b T -> &'b U` signature in another `TyFnDef`, while keeping *the same* `DefId` and `Substs` * to fix #3548 by explicitly writing autorefs for the RHS of comparison operators Individual commits tell their own story, of "atomic" changes avoiding breaking semantics. Future work based on this PR could include: * removing the signature from `TyFnDef`, now that it's always "canonical" * some questions of variance remain, as subtyping *still* treats the signature differently * moving part of the typeck logic for methods, autoderef and coercion into `rustc::traits` * allowing LUB coercions (joining multiple expressions) to "stack up" many adjustments * transitive coercions (e.g. reify or unsize after multiple steps of autoderef) r? @nikomatsakis
2017-06-01rustc: decompose Adjustment into a vector of adjustment steps.Eduard-Mihai Burtescu-22/+25
2017-06-01rustc: move autoref and unsize from Adjust::DerefRef to Adjustment.Eduard-Mihai Burtescu-17/+18
2017-06-01rustc: replace autoderefs' use of MethodCallee with OverloadedDeref.Eduard-Mihai Burtescu-0/+108
2017-06-01rustc: remove unused TypeFolder methods.Eduard-Mihai Burtescu-16/+0
2017-06-01rustc: remove unnecessary ItemSubsts wrapper.Eduard-Mihai Burtescu-23/+0
2017-05-31Upgrade ProjectionTy's Name to a DefIdTobias Schottdorf-5/+2
Part of #42171, in preparation for downgrading the contained `TraitRef` to only its `substs`.
2017-04-30intern CodeExtentsNiko Matsakis-1/+1
Make a `CodeExtent<'tcx>` be something allocated in an arena instead of an index into the `RegionMaps`.
2017-04-11add Subtype predicateNiko Matsakis-2/+33
2017-03-26store a copy of the Issue32230 info within TypeErrorAriel Ben-Yehuda-4/+6
The data can't be looked up from the region variable directly, because the region variable might have been destroyed at the end of a snapshot. Fixes #40000. Fixes #40743.
2017-03-10Add extra methods to IndexVec and implement TypeFoldable for itJames Miller-0/+11
Adds `get`/`get_mut` accessors and `drain`/`drain_enumerated` iterators to IndexVec. Implements TypeFoldable for IndexVec.
2017-02-25rustc: combine BareFnTy and ClosureTy into FnSig.Eduard-Mihai Burtescu-50/+4
2017-02-25rustc: store type parameter defaults outside of ty::Generics.Eduard-Mihai Burtescu-35/+1
2017-02-03Add warning for () to ! switchAndrew Cann-2/+2
2017-01-30Merge ty::TyBox into ty::TyAdtVadim Petrochenkov-2/+0
2017-01-28rustc: remove unused `bounds` field from `RegionParameterDef`.Eduard-Mihai Burtescu-17/+1
2017-01-28rustc: move object default lifetimes to resolve_lifetimes.Eduard-Mihai Burtescu-25/+1
2016-12-05Refactor FnSig to contain a Slice for its inputs and outputs.Mark-Simulacrum-8/+12
2016-12-05Refactor ty::FnSig to privatize all fieldsMark-Simulacrum-11/+7
2016-11-28Refactor TyTrait to contain a interned ExistentialPredicate slice.Mark-Simulacrum-12/+28
Renames TyTrait to TyDynamic.
2016-11-28Remove BuiltinBound and BuiltinBounds.Mark-Simulacrum-11/+0
2016-11-28Refactor BuiltinBounds to Vec<DefId> on TraitObject.Mark-Simulacrum-1/+1
2016-11-28Privatize TraitObject.principal and add a method accessor, returning Option.Mark-Simulacrum-7/+7
2016-11-28rustc_privacy: visit Ty instead of HIR types in EmbargoVisitor.Eduard-Mihai Burtescu-0/+34
2016-11-24Avoid more unnecessary mk_ty calls in Ty::super_fold_with.Nicholas Nethercote-1/+6
This speeds up several rustc-benchmarks by 1--5%.
2016-11-12rustc: move closure upvar types to the closure substsAriel Ben-Yehuda-8/+4
This moves closures to the (DefId, Substs) scheme like all other items, and saves a word from the size of TyS now that Substs is 2 words.
2016-11-11Avoid unnecessary mk_ty calls in Ty::super_fold_with.Nicholas Nethercote-1/+1
This speeds up compilation of several rustc-benchmarks by 1--2% and the workload in #36799 by 5%.
2016-11-02rustc: record the target type of every adjustment.Eduard Burtescu-12/+12
2016-10-25Utilize AccumulateVec to avoid heap allocations in mk_{substs, type_list, ↵Mark-Simulacrum-2/+3
tup} calls.
2016-10-19Use TypedArena::alloc_slice in rustc.Mark-Simulacrum-2/+2