about summary refs log tree commit diff
path: root/src/librustc_data_structures
AgeCommit message (Collapse)AuthorLines
2018-02-22Run rustfmt over bitvec.rs and region_infer/values.rsSantiago Pastorino-32/+44
2018-02-22Fix typo otherwies -> otherwiseSantiago Pastorino-1/+1
2018-02-22Use Sparse bitsets instead of dense ones for NLL resultsSantiago Pastorino-0/+212
Fixes #48170
2018-02-22Move word type and word size usage to constants & make it of 128 bitsSantiago Pastorino-23/+26
2018-02-18Generate documentation for auto-trait implsAaron Hill-0/+5
A new section is added to both both struct and trait doc pages. On struct/enum pages, a new 'Auto Trait Implementations' section displays any synthetic implementations for auto traits. Currently, this is only done for Send and Sync. On trait pages, a new 'Auto Implementors' section displays all types which automatically implement the trait. Effectively, this is a list of all public types in the standard library. Synthesized impls for a particular auto trait ('synthetic impls') take into account generic bounds. For example, a type 'struct Foo<T>(T)' will have 'impl<T> Send for Foo<T> where T: Send' generated for it. Manual implementations of auto traits are also taken into account. If we have the following types: 'struct Foo<T>(T)' 'struct Wrapper<T>(Foo<T>)' 'unsafe impl<T> Send for Wrapper<T>' // pretend that Wrapper<T> makes this sound somehow Then Wrapper will have the following impl generated: 'impl<T> Send for Wrapper<T>' reflecting the fact that 'T: Send' need not hold for 'Wrapper<T>: Send' to hold Lifetimes, HRTBS, and projections (e.g. '<T as Iterator>::Item') are taken into account by synthetic impls However, if a type can *never* implement a particular auto trait (e.g. 'struct MyStruct<T>(*const T)'), then a negative impl will be generated (in this case, 'impl<T> !Send for MyStruct<T>') All of this means that a user should be able to copy-paste a synthetic impl into their code, without any observable changes in behavior (assuming the rest of the program remains unchanged).
2018-02-17fix more typos found by codespell.Matthias Krüger-1/+1
2018-02-10Rollup merge of #47835 - Mark-Simulacrum:remove-data-structs, r=nikomatsakiskennytm-412/+0
Remove unused data structures Cleanup; as far as I can tell the compiler no longer uses these.
2018-01-28Remove VecCellMark Simulacrum-48/+0
2018-01-28Remove unused blake2b implementationMark Simulacrum-364/+0
2018-01-26Make region inference use a dirty listSantiago Pastorino-0/+11
Fixes #47602
2018-01-20Stabilize std::ptr::NonNullSimon Sapin-1/+0
2018-01-20Rename std::ptr::Shared to NonNullSimon Sapin-4/+4
`Shared` is now a deprecated `type` alias. CC https://github.com/rust-lang/rust/issues/27730#issuecomment-352800629
2018-01-08Shorten names of some compiler generated artifacts.Michael Woerister-9/+13
2018-01-07Try to fix a perf regression by updating logMalo Jaffré-2/+2
Upgrade `log` to `0.4` in multiple crates.
2018-01-01Fix docs for future pulldown migrationMalo Jaffré-1/+1
2017-12-25Auto merge of #46914 - mikeyhew:raw_pointer_self, r=arielb1bors-3/+4
Convert warning about `*const _` to a future-compat lint #46664 was merged before I could convert the soft warning about method lookup on `*const _` into a future-compatibility lint. This PR makes that change. fixes #46837 tracking issue for the future-compatibility lint: #46906 r? @arielb1
2017-12-23Annotate raw pointer target typesChristopher Durham-2/+3
cc https://github.com/rust-lang/rust/issues/46906 cc https://github.com/rust-lang/rust/pull/46914
2017-12-22fix errors in rustc_data_structuresMichael Hewson-1/+1
2017-12-21Make IndexVec implement Send and SyncJohn Kåre Alsaker-1/+1
2017-12-17Add sync module to rustc_data_structuresJohn Kåre Alsaker-0/+2342
2017-12-16Auto merge of #46560 - Yoric:incr, r=michaelwoeristerbors-0/+4
Loading the dependency graph in the background Patch is a bit longer than I expected, due to the fact that most of this code relies upon a `Session` value, which is not `Sync`.
2017-12-13Implement Borrow/BorrowMut/ToOwned relationships betweed IdxSetBuf and IdxSet.Felix S. Klock II-0/+20
2017-12-09Use Try syntax for Option in place of macros or matchMatt Brubeck-4/+2
2017-12-07Issue #46555 - Making IndexVec Send if its contents are SendDavid Teller-0/+4
2017-12-04transtive_relation: fix typo in comment for `parents`Niko Matsakis-1/+1
2017-12-04extend TransitiveRelation with `parents` functionNiko Matsakis-2/+128
2017-12-04rename `greater_than` to `reachable_from`Niko Matsakis-2/+3
2017-11-28incr.comp.: Make a bunch of query results encodable.Michael Woerister-0/+21
2017-11-21fix some typosMartin Lindhe-1/+1
2017-11-16IndexVec: add `'_` to make clear where borrowing is happeningNiko Matsakis-2/+3
2017-11-16make `RegionVid` implement `Idx` and use `IndexVec`Niko Matsakis-0/+5
2017-11-06Auto merge of #45668 - nikomatsakis:nll-free-region, r=arielb1bors-17/+23
extend NLL with preliminary support for free regions on functions This PR extends https://github.com/rust-lang/rust/pull/45538 with support for free regions. This is pretty preliminary and will no doubt want to change in various ways, particularly as we add support for closures, but it's enough to get the basic idea in place: - We now create specific regions to represent each named lifetime declared on the function. - Region values can contain references to these regions (represented for now as a `BTreeSet<RegionIndex>`). - If we wind up trying to infer that `'a: 'b` must hold, but no such relationship was declared, we report an error. It also does a number of drive-by refactorings. r? @arielb1 cc @spastorino
2017-11-04Make DEBUG_FORMAT = custom workSantiago Pastorino-17/+17
Fixes #45763, ht by @durka
2017-11-02add/fix various comments to `BitMatrix`Niko Matsakis-17/+23
Notably, the (hitherto unused) `less_than` method was not at all what it purported to be. It in fact computes the opposite.
2017-11-01newindex_type macro: make index private by default and allow pub through configPaul Daniel Faria-48/+53
2017-11-01newtype_index: Support simpler serializable override, custom derive, and fix ↵Paul Daniel Faria-115/+202
mir_opt tests
2017-11-01Clean up macro argument matches so they satisfy tidy checksPaul Daniel Faria-14/+51
2017-11-01Add derive and doc comment capabilities to newtype_index macroPaul Daniel Faria-30/+106
2017-10-31change region display to `'_#Nr`, update the `newtype_index!` macroNiko Matsakis-16/+19
The macro now takes a format string. It no longer defaults to using the type name. Didn't seem worth going through contortions to maintain. I also changed most of the debug formats to be `foo[N]` instead of `fooN`.
2017-10-31introduce liveness constraints into NLL codeNiko Matsakis-2/+10
And do a bunch of gratuitious refactoring that I did not bother to separate into nice commits.
2017-10-26Update some comments about StableHasher.Michael Woerister-20/+6
2017-10-25Fix 32 vs 64 bit platform instability in StableHasher.Michael Woerister-4/+10
2017-10-20Auto merge of #45319 - michaelwoerister:use-128bit-siphash, r=nikomatsakisbors-57/+574
incr.comp.: Use 128bit SipHash for fingerprinting This PR switches incr. comp. result fingerprinting from 128 bit BLAKE2 to 128 bit SipHash. When we started using BLAKE2 for fingerprinting, the 128 bit version of SipHash was still experimental. Now that it isn't anymore we should be able to get a nice performance boost without significantly increasing collision probability. ~~I'm going to start a try-build for this, so we can gauge the performance impact before merging (hence the `WIP` in the title).~~ EDIT: Performance improvements look as expected. Tests seem to be passing. Fixes #41215.
2017-10-17Generate FirstStatementIndex using newtype_index macroSantiago Pastorino-2/+2
2017-10-16Make debuginfo::UniqueTypeId use 128 bit hash.Michael Woerister-31/+0
2017-10-16Use SipHasher128 in StableHasher.Michael Woerister-53/+67
2017-10-16rustc_data_structures: Add implementation of 128 bit SipHash.Michael Woerister-0/+534
2017-10-13Rollup merge of #45110 - Nashenas88:master, r=arielb1kennytm-17/+58
Improve newtype_index macro to handle description and constants consistently
2017-10-11Split lines longer than 100 columnsPaul Faria-5/+10
2017-10-11Move const qualifier from brackets to constant values and remove comma from ↵Paul Faria-46/+35
after identifier