summary refs log tree commit diff
path: root/src/librustc/traits/specialize
AgeCommit message (Collapse)AuthorLines
2018-07-30Auto merge of #52805 - ljedrz:format_str_literal, r=petrochenkovbors-1/+1
Don't format!() string literals Prefer `to_string()` to `format!()` take 2, this time targetting string literals. In some cases (`&format!("...")` -> `"..."`) also removes allocations. Occurences of `format!("")` are changed to `String::new()`.
2018-07-29Replace push loops with collect() and extend() where possibleljedrz-3/+3
2018-07-28Auto merge of #52546 - nikomatsakis:issue-52050, r=pnkfelixbors-21/+78
do not overwrite child def-id in place but rather remove/insert When inserting a node N into the tree of impls, we sometimes find than an existing node C should be replaced with N. We used to overwrite C in place with the new def-id N -- but since the lists of def-ids are separated by simplified type, that could lead to N being inserted in the wrong place. This meant we might miss conflicts. We are now not trying to be so smart -- we remove C and then add N later. Fixes #52050 r? @aturon -- do you still remember this code at all? :)
2018-07-28Don't format!() string literalsljedrz-1/+1
2018-07-25Add type system canaries for potential future bugsOliver Schneider-1/+5
2018-07-23Implement associated existential typesOliver Schneider-3/+9
2018-07-21do not overwrite child def-id in place but rather remove/insertNiko Matsakis-21/+78
When inserting a node N into the tree of impls, we sometimes find than an existing node C should be replaced with N. We used to overwrite C in place with the new def-id N -- but since the lists of def-ids are separated by simplified type, that could lead to N being inserted in the wrong place. This meant we might miss conflicts. We are now not trying to be so smart -- we remove C and then add N later.
2018-06-28Use `Ident`s for associated item definitions in HIRVadim Petrochenkov-4/+4
Remove emulation of hygiene with gensyms
2018-06-28Use `Ident`s for associated type bindings in HIRVadim Petrochenkov-1/+1
2018-06-24Update broken rustc-guide linksAlex Kitchens-1/+1
Recently, there has been some rearrangement of the content in the Rustc Guide, and this commit changes the urls the match the updated guide.
2018-05-12Better error reporting in Copy deriveleonardo.yvens-0/+1
In Copy derive, report all fulfillment erros when present and do not report errors for types tainted with `TyErr`. Also report all fields which are not Copy rather than just the first. Also refactored `fn fully_normalize`, removing the not very useful helper function along with a FIXME to the closed issue #26721 that's looks out of context now.
2018-03-29Auto merge of #49313 - sgrif:sg-revert-stuff, r=nikomatsakisbors-1/+1
Remove universes from `ty::ParamEnv` This change was never meant to land. #48407 takes an alternate approach. However, that PR is now blocked on some issues with canonicalization, and rebasing these reverts gets harder each time, so let's just get this bit out of the way now. r? @nikomatsakis
2018-03-23Revert "add universes to type inference variables"Sean Griffin-1/+1
This reverts commit 13efaf0481275dba18f1d18f4b59b664b2d2031a.
2018-03-23import trait engine to typeckcsmoe-1/+1
2018-03-21work around fallout from these changes in rustcNiko Matsakis-6/+12
2018-03-14Cache the specialization_graph queryWesley Wiser-0/+2
Fixes #48987
2018-03-13refactor `ParamEnv::empty(Reveal)` into two distinct methodsNiko Matsakis-2/+2
- `ParamEnv::empty()` -- does not reveal all, good for typeck - `ParamEnv::reveal_all()` -- does, good for trans - `param_env.with_reveal_all()` -- converts an existing parameter environment
2018-03-08Add InterpretInterner to StableHashingContext for AllocId serializationOliver Schneider-2/+2
2018-03-05Turn features() into a query.Michael Woerister-1/+1
2018-03-02Run Rustfix on librustcManish Goregaokar-2/+2
2018-03-02Replace Rc with Lrc for shared dataJohn Kåre Alsaker-5/+5
2018-03-01add universes to type inference variablesNiko Matsakis-1/+1
2018-02-25Make comment into a doc comment and change readme refMark Mansi-8/+10
2018-01-30change `overlapping_impls` to take a tcx and create the infcxNiko Matsakis-33/+29
2018-01-30make `overlapping_impls` call closures instead of returningNiko Matsakis-25/+26
2017-12-17Use def span for conflicting impls and recursive fnEsteban Küber-4/+8
2017-12-05convert the new conflicts to a soft errorAriel Ben-Yehuda-33/+74
2017-11-25commentsAriel Ben-Yehuda-0/+11
2017-11-25avoid type-live-for-region obligations on dummy nodesAriel Ben-Yehuda-1/+1
Type-live-for-region obligations on DUMMY_NODE_ID cause an ICE, and it turns out that in the few cases they are needed, these obligations are not needed anyway because they are verified elsewhere. Fixes #46069.
2017-10-23Print the conflicting impl on E0119 with external crate.kennytm-2/+60
2017-10-06Improve resolution of associated types in macros 2.0Vadim Petrochenkov-4/+7
2017-09-18incr.comp.: Remove tcx from StableHashingContext.Michael Woerister-2/+2
2017-09-18incr.comp.: Use StableHash impls instead of functions for hashing most maps.Michael Woerister-17/+4
2017-09-18incr.comp.: Compute hashes of all query results.Michael Woerister-0/+34
2017-09-05Print more detailed trait-ref for intercrate ambiguity.Masaki Hara-1/+1
2017-09-05Unify intercrate ambiguity emitters into a function.Masaki Hara-11/+1
2017-09-05Slightly modify hint messages.Masaki Hara-2/+2
2017-09-05Add hints when intercrate ambiguity causes overlap.Masaki Hara-3/+20
2017-08-29rustc: Remove `specailization_cache` in favor of a queryAlex Crichton-15/+9
This commit removes the `specialization_cache` field of `TyCtxt` by moving it to a dedicated query, which it turned out was already quite easily structured to do so!
2017-08-12Fix some typosBastien Orivel-2/+2
2017-08-11Fix some typosBastien Orivel-1/+1
2017-08-08make `for_all_relevant_impls` O(1) againAriel Ben-Yehuda-1/+2
A change in #41911 had made `for_all_relevant_impls` do a linear scan over all impls, instead of using an HashMap. Use an HashMap again to avoid quadratic blowup when there is a large number of structs with impls. I think this fixes #43141 completely, but I want better measurements in order to be sure. As a perf patch, please don't roll this up.
2017-07-23Fix some doc/comment typos.Bruce Mitchener-4/+4
2017-06-10rustc: make the comon case of tcx.infer_ctxt(()) nicer.Eduard-Mihai Burtescu-3/+3
2017-06-01ergonomic improvements to the methods in infcxNiko Matsakis-5/+2
2017-06-01strip param-env from infcxNiko Matsakis-14/+24
2017-06-01move projection mode into parameter environmentNiko Matsakis-3/+3
2017-05-22rename `parameter_environment` to `param_env`Niko Matsakis-2/+2
2017-05-15Share lists of blanket impls in results of relevant_impls_for() query.Michael Woerister-1/+13
2017-05-15Remove interior mutability from TraitDef by turning fields into queries.Michael Woerister-10/+65