about summary refs log tree commit diff
path: root/src/librustc_data_structures
AgeCommit message (Collapse)AuthorLines
2019-09-16Move `impl Node` just after `struct Node`.Nicholas Nethercote-16/+16
2019-09-16Minor comment tweaks.Nicholas Nethercote-10/+6
2019-09-16Use `retain` for `waiting_cache` in `apply_rewrites()`.Nicholas Nethercote-6/+4
It's more concise, more idiomatic, and measurably faster.
2019-09-16Use iterators in `error_at` and `process_cycle`.Nicholas Nethercote-16/+18
This makes the code a little faster, presumably because bounds checks aren't needed on `nodes` accesses. It requires making `scratch` a `RefCell`, which is not unreasonable.
2019-09-16Add comments about `waiting_cache`.Nicholas Nethercote-2/+14
2019-09-16Fix incorrect comment about contents of a `Node`.Nicholas Nethercote-5/+5
2019-09-16Fix some out-of-date names of things in comments.Nicholas Nethercote-7/+7
2019-09-16Remove out-of-date comments.Nicholas Nethercote-16/+0
These refer to code that no longer exists.
2019-09-16Factor out repeated `self.nodes[i]` expressions.Nicholas Nethercote-15/+14
2019-09-16Redefine `NodeIndex` as a `newtype_index!`.Nicholas Nethercote-42/+35
This commit removes the custom index implementation of `NodeIndex`, which probably predates `newtype_index!`. As well as eliminating code, it improves the debugging experience, because the custom implementation had the property of being incremented by 1 (so it could use `NonZeroU32`), which was incredibly confusing if you didn't expect it. For some reason, I also had to remove an `unsafe` block marker from `from_u32_unchecked()` that the compiler said was now unnecessary.
2019-09-16Name index variables consistently.Nicholas Nethercote-50/+47
Those with type `usize` are now called `i`, those with type `NodeIndex` are called `index`.
2019-09-13Inline `mark_neighbours_as_waiting_from`.Nicholas Nethercote-4/+13
This function is very hot, doesn't get inlined because it's recursive, and the function calls are significant. This commit splits it into inlined and uninlined variants, and uses the inlined variant for the hot call site. This wins several percent on a few benchmarks.
2019-09-11Upgrade parking_lot and tempfile rustc dependenciesMateusz Mikuła-1/+1
2019-08-25Rollup merge of #62744 - llogiq:tiny-list-refactor, r=eddybMazdak Farrokhzad-46/+45
Refactor `TinyList::contains` and `len` to iterate instead of recurse None
2019-08-14Handle cfg(bootstrap) throughoutMark Rousskov-1/+1
2019-08-13refactor `len` and `contains` to iterate instead of recurseAndre Bogus-40/+16
2019-08-13add contains benchmarksAndre Bogus-6/+29
2019-08-08Use associated_type_bounds where applicable - closes #61738Ilija Tovilo-2/+7
2019-08-02Remove some more `cfg(test)`sVadim Petrochenkov-12/+5
2019-08-02librustc_data_structures: Unconfigure tests during normal buildVadim Petrochenkov-1168/+1180
2019-07-31Remove derives `Encodable`/`Decodable` and unstabilize attribute `#[bench]`Vadim Petrochenkov-1/+1
2019-07-28Auto merge of #63090 - Centril:rollup-xnjwm2h, r=Centrilbors-10/+22
Rollup of 8 pull requests Successful merges: - #61856 (Lint attributes on function arguments) - #62360 (Document that ManuallyDrop::drop should not called more than once) - #62392 (Update minifier-rs version) - #62871 (Explicit error message for async recursion.) - #62995 (Avoid ICE when suggestion span is at Eof) - #63053 (SystemTime docs: recommend Instant for elapsed time) - #63081 (tidy: Cleanup the directory whitelist) - #63088 (Remove anonymous_parameters from unrelated test) Failed merges: r? @ghost
2019-07-28Deny `unused_lifetimes` through rustbuildVadim Petrochenkov-0/+5
2019-07-28Remove lint annotations in specific crates that are already enforced by ↵Vadim Petrochenkov-1/+0
rustbuild Remove some random unnecessary lint `allow`s
2019-07-28tidy: Cleanup the directory whitelistVadim Petrochenkov-10/+22
2019-07-25Rollup merge of #62901 - petrochenkov:serde, r=CentrilMazdak Farrokhzad-29/+18
cleanup: Remove `extern crate serialize as rustc_serialize`s
2019-07-23normalize use of backticks for compiler messages in remaining modulesSamy Kacimi-6/+6
https://github.com/rust-lang/rust/issues/60532
2019-07-23cleanup: Remove `extern crate serialize as rustc_serialize`sVadim Petrochenkov-29/+18
2019-07-19Use sharded maps for interningJohn Kåre Alsaker-59/+129
2019-07-13Rollup merge of #62651 - matthewjasper:rustc-macro-hygiene, r=petrochenkovMazdak Farrokhzad-16/+17
Make some rustc macros more hygienic
2019-07-13Make `newtype_index` hygienic and use allow_internal_unstableMatthew Jasper-16/+17
2019-07-10Add an AtomicCell abstractionJohn Kåre Alsaker-1/+55
2019-07-07rustc: Remove `dylib` crate type from most rustc cratesAlex Crichton-6/+1
Now that procedural macros no longer link transitively to libsyntax, this shouldn't be needed any more! This commit is an experiment in removing all dynamic libraries from rustc except for librustc_driver itself. Let's see how far we can get with that!
2019-07-05Rollup merge of #61545 - flip1995:internal_lints, r=oli-obkMazdak Farrokhzad-0/+1
Implement another internal lints cc #49509 This adds ~~two~~ one internal lint~~s~~: 1. LINT_PASS_IMPL_WITHOUT_MACRO: Make sure, that the `{declare,impl}_lint_pass` macro is used to implement lint passes. cc #59669 2. ~~USAGE_OF_TYCTXT_AND_SPAN_ARGS: item 2 on the list in #49509~~ ~~With 2. I wasn't sure, if this lint should be applied everywhere. That means a careful review of 0955835 would be great. Also 73fb9b4 allows this lint on some functions. Should I also apply this lint there?~~ TODO (not directly relevant for review): - [ ] https://github.com/rust-lang/rust/pull/59316#discussion_r280186517 (not sure yet, if this works or how to query for `rustc_private`, since it's not in [`Features`](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/feature_gate/struct.Features.html) :thinking: cc @eddyb) - [x] https://github.com/rust-lang/rust/pull/61735#discussion_r292389870 - [x] Check explicitly for the `{declare,impl}_lint_pass!` macros r? @oli-obk
2019-07-04Switch master to 1.38Mark Rousskov-3/+1
2019-07-03Add missing lifetime specifierJeremy Stucki-1/+1
2019-07-03Remove needless lifetimesJeremy Stucki-3/+3
2019-07-03Remove needless lifetimesJeremy Stucki-3/+3
2019-07-03Remove needless lifetimesJeremy Stucki-14/+14
2019-07-02more centril nitsNiko Matsakis-1/+1
2019-07-02fix silly bugs in binary_search_util testNiko Matsakis-2/+3
2019-07-02address nits by mattewjasperNiko Matsakis-2/+1
2019-07-02just create a binary search slice helper fnNiko Matsakis-114/+72
2019-07-02add a `VecMap` data structureNiko Matsakis-0/+114
2019-07-02pacify the mercilous tidyNiko Matsakis-1/+0
long lines, trailing newlines
2019-07-02add a `depth_first_search` helper functionNiko Matsakis-1/+49
2019-07-02introduce a `VecGraph` abstraction that cheaply stores graphsNiko Matsakis-3/+197
This is perhaps better than the linked list approach I was using before. Lower memory overhead, Theta(N+E) storage. Does require a sort. =)
2019-07-02implement the graph traits for SCCNiko Matsakis-1/+26
2019-07-02Auto merge of #61871 - Zoxc:no-lift-branch, r=eddybbors-0/+4
Don't use lift to detect local types This overlaps with https://github.com/rust-lang/rust/pull/61392. r? @eddyb
2019-06-26Fix clippy::precedenceIgor Matuszewski-1/+1