about summary refs log tree commit diff
path: root/src/librustc
AgeCommit message (Collapse)AuthorLines
2019-10-24rustc: Combine resolver outputs into a single structVadim Petrochenkov-3/+3
2019-10-24rustc: Add a convenience alias for `dyn MetadataLoader + Sync`Vadim Petrochenkov-0/+2
2019-10-24rustc: add `Span`s to `inferred_outlives_of` predicates.Eduard-Mihai Burtescu-2/+2
2019-10-24self-profiling: Update measureme to 0.4.0 and use new RAII-based API.Michael Woerister-31/+11
2019-10-24self-profiling: Remove unused methods from profiler.Michael Woerister-48/+0
2019-10-23Rollup merge of #65704 - RalfJung:exact-size, r=oli-obkMazdak Farrokhzad-2/+5
relax ExactSizeIterator bound on write_bytes Too many iterators don't have that bound. Instead we do run-time checks. r? @oli-obk
2019-10-23Rollup merge of #65696 - varkor:nll-chalk-const-generics-issue, r=eddybMazdak Farrokhzad-30/+57
Fix an issue with const inference variables sticking around under Chalk + NLL Fixes https://github.com/rust-lang/rust/issues/65675. Fixes https://github.com/rust-lang/rust/issues/62579. r? @eddyb cc @LukasKalbertodt @skinny121
2019-10-23Rollup merge of #65657 - nnethercote:rm-InternedString-properly, r=eddybMazdak Farrokhzad-136/+146
Remove `InternedString` This PR removes `InternedString` by converting all occurrences to `Symbol`. There are a handful of places that need to use the symbol chars instead of the symbol index, e.g. for stable sorting; local conversions `LocalInternedString` is used in those places. r? @eddyb
2019-10-23Rollup merge of #65193 - Mark-Simulacrum:lockless-lintstore, r=nikomatsakisMazdak Farrokhzad-238/+303
Lockless LintStore This removes mutability from the lint store after registration. Each commit stands alone, for the most part, though they don't make sense out of sequence. The intent here is to move LintStore to a more parallel-friendly architecture, although also just a cleaner one from an implementation perspective. Specifically, this has the following changes: * We no longer implicitly register lints when registering lint passes * For the most part this means that registration calls now likely want to call something like: `lint_store.register_lints(&Pass::get_lints())` as well as `register_*_pass`. * In theory this is a simplification as it's much easier for folks to just register lints and then have passes that implement whichever lint however they want, rather than necessarily tying passes to lints. * Lint passes still have a list of associated lints, but a followup PR could plausibly change that * This list must be known for a given pass type, not instance, i.e., `fn get_lints()` is the signature instead of `fn get_lints(&self)` as before. * We do not store pass objects, instead storing constructor functions. This means we always get new passes when running lints (this happens approximately once though for a given compiler session, so no behavior change is expected). * Registration API is _much_ simpler: generally all functions are just taking `Fn() -> PassObject` rather than several different `bool`s.
2019-10-23Account for const generalisation in nll_relatevarkor-7/+21
2019-10-23debug messages addedKevyn Grasso-0/+9
2019-10-23Account for const generalisation in combinevarkor-3/+15
2019-10-23Add commentsEsteban Küber-0/+73
2019-10-23Auto merge of #57545 - bovinebuddha:object_safe_for_dispatch, r=nikomatsakisbors-33/+68
Object safe for dispatch cc #43561
2019-10-23Rollup merge of #65678 - JohnTitor:add-e0728-explanation, r=GuilliaumeGomezYuki Okushi-3/+80
Add long error explanation for E0728 Part of #61137 r? @GuillaumeGomez
2019-10-22Add some documentationMark Rousskov-8/+16
2019-10-22review comments: move code, fix indentation and change spanEsteban Küber-39/+51
2019-10-22Drive-by formattingEsteban Küber-15/+31
2019-10-22Handle projection obligation errorsEsteban Küber-10/+33
2019-10-22Point at associated type for some obligationsEsteban Küber-19/+55
2019-10-22RFC 2027: "first draft" of implementationMathias Blikstad-33/+68
These are a squashed series of commits.
2019-10-22relax ExactSizeIterator bound on write_bytes: too many iterators don't have ↵Ralf Jung-2/+5
that bound
2019-10-22Target-feature documented as unsafe. rustc book and rustc -C help have been ↵togiberlin-1/+2
modified.
2019-10-22Fix an issue with const inference variables sticking around under Chalk + NLLvarkor-27/+28
2019-10-22Add ignore-tidy-filelength on ty/contextSantiago Pastorino-0/+1
This is so we avoid a massive break of other people's code. Gonna run rustfmt and split the file on a different PR.
2019-10-22Move Place::elem methods and friends to TyCtxtSantiago Pastorino-46/+43
2019-10-22Intern place projectionSantiago Pastorino-34/+82
2019-10-22Add intern table for `List<PlaceElem<'tcx>>`Santiago Pastorino-2/+20
2019-10-22Pattern match over PlaceRef rather than PlaceSantiago Pastorino-8/+8
This prepares the code base for when projection is interned. Place's projection field is going to be `&List<PlaceElem<'tcx>>` so we won't be able to pattern match against it.
2019-10-22Add link to async/awaitYuki Okushi-3/+6
2019-10-22Remove FIXMEvarkor-4/+3
2019-10-22Search for generic parameters when finding non-`structural_match` typesvarkor-11/+21
2019-10-22Move `search_for_adt_without_structural_match` to `ty/mod`varkor-2/+115
2019-10-22Apply suggestionsYuki Okushi-9/+16
2019-10-22Add long error explanation for E0728Yuki Okushi-3/+70
2019-10-21Move as_local impl to from Place to PlaceRefSantiago Pastorino-4/+10
2019-10-21PlaceElem<'tcx> should be CopySantiago Pastorino-0/+2
2019-10-21Rollup merge of #65660 - varkor:canonical-const-to-bound-const, r=eddybMazdak Farrokhzad-45/+36
Rename `ConstValue::Infer(InferConst::Canonical(..))` to `ConstValue::Bound(..)` It already has the right form, so this is just a renaming. Fixes https://github.com/rust-lang/rust/issues/65655. r? @eddyb
2019-10-21Rollup merge of #65647 - nnethercote:rm-unnecessary-traits, r=CentrilMazdak Farrokhzad-71/+58
Remove unnecessary trait bounds and derivations This PR removes unnecessary trait bounds and derivations from many types. r? @nikomatsakis
2019-10-21Rollup merge of #65621 - RalfJung:write_bytes, r=oli-obkMazdak Farrokhzad-19/+19
miri: add write_bytes method to Memory doing bounds-checks and supporting iterators This lets us avoid some direct `Allocation` accesses in Miri.
2019-10-21Rollup merge of #62330 - SimonSapin:no-drop-in-union-fields, r=RalfJungMazdak Farrokhzad-1/+3
Change untagged_unions to not allow union fields with drop This is a rebase of #56440, massaged to solve merge conflicts and make the test suite pass. Change untagged_unions to not allow union fields with drop Union fields may now never have a type with attached destructor. This for example allows unions to use arbitrary field types only by wrapping them in `ManuallyDrop` (or similar). The stable rule remains, that union fields must be `Copy`. We use the new rule for the `untagged_union` feature. Tracking issue: https://github.com/rust-lang/rust/issues/55149
2019-10-21Rename `ConstValue::Infer(InferConst::Canonical(..))` to `ConstValue::Bound(..)`varkor-45/+36
2019-10-21Fix the start/end byte positions in the compiler JSON outputMikko Rantanen-0/+19
2019-10-21Rollup merge of #65652 - skinny121:const_infer_leak, r=eddybYuki Okushi-1/+1
Fix `canonicalize_const_var` leaking inference variables Fixes #61338 Fixes #61516 Fixes #62536 Fixes #64087 Fixes #64863 Fixes #65623 I added regression tests for all these issues apart from #64863, which is very similar to #61338. r? @varkor
2019-10-21Remove many unnecessary trait derivations.Nicholas Nethercote-60/+52
2019-10-21remove write_repeat; it is subsumed by the new write_bytesRalf Jung-19/+0
2019-10-21points the user away from the Allocation type and towards the Memory typeRalf Jung-0/+12
2019-10-21Remove `InternedString`.Nicholas Nethercote-11/+12
By using `LocalInternedString` instead for the few remaining uses.
2019-10-21Use `Symbol` for codegen unit names.Nicholas Nethercote-17/+16
This is a straightforward replacement except for two places where we have to convert to `LocalInternedString` to get a stable sort.
2019-10-21Change `SymbolName::name` from `InternedString` to `Symbol`.Nicholas Nethercote-8/+21
This requires changing the `PartialOrd`/`Ord` implementations to look at the chars rather than the symbol index.