summary refs log tree commit diff
path: root/src/librustc_data_structures/transitive_relation.rs
AgeCommit message (Collapse)AuthorLines
2018-02-27Make TransitiveRelation thread safe. Avoid locking by using get_mut in some ↵John Kåre Alsaker-10/+10
cases.
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-02add/fix various comments to `BitMatrix`Niko Matsakis-2/+2
Notably, the (hitherto unused) `less_than` method was not at all what it purported to be. It in fact computes the opposite.
2017-09-24Point at parameter type on E0301Esteban Küber-3/+3
On "the parameter type `T` may not live long enough" error, point to the parameter type suggesting lifetime bindings: ``` error[E0310]: the parameter type `T` may not live long enough --> $DIR/lifetime-doesnt-live-long-enough.rs:28:5 | 27 | struct Foo<T> { | - help: consider adding an explicit lifetime bound `T: 'static`... 28 | foo: &'static T | ^^^^^^^^^^^^^^^ | note: ...so that the reference type `&'static T` does not outlive the data it points at --> $DIR/lifetime-doesnt-live-long-enough.rs:28:5 | 28 | foo: &'static T | ^^^^^^^^^^^^^^^ ```
2017-05-03factor variances into a proper queryNiko Matsakis-0/+14
There are now two queries: crate and item. The crate one computes the variance of all items in the crate; it is sort of an implementation detail, and not meant to be used. The item one reads from the crate one, synthesizing correct deps in lieu of the red-green algorithm. At the same time, remove the `variance_computed` flag, which was a horrible hack used to force invariance early on (e.g. when type-checking constants). This is only needed because of trait applications, and traits are always invariant anyway. Therefore, we now change to take advantage of the query system: - When asked to compute variances for a trait, just return a vector saying 'all invariant'. - Remove the corresponding "inferreds" from traits, and tweak the constraint generation code to understand that traits are always inferred.
2017-05-03make transitive relation use a hash mapNiko Matsakis-27/+42
2017-04-30intern CodeExtentsNiko Matsakis-0/+21
Make a `CodeExtent<'tcx>` be something allocated in an arena instead of an index into the `RegionMaps`.
2017-04-12ICH: Hash everything that gets encoded into crate metadata.Michael Woerister-0/+46
2017-02-28move the `FreeRegionMap` into `TypeckTables`Niko Matsakis-2/+31
2016-08-09generalize BitMatrix to be NxM and not just NxNNiko Matsakis-1/+2
2016-03-05apply rustfmt to librustc_data_structures, correcting ↵Niko Matsakis-55/+63
rust-lang-nursery/rustfmt#836
2015-08-23Fix panic in docs for librustc_data_structuresManish Goregaokar-1/+1
2015-08-21move the reverse into the iteratorNiko Matsakis-2/+2
2015-08-21missed one reference to "best"Niko Matsakis-4/+5
2015-08-21rename `best_upper_bound` to `postdom_upper_bound`Niko Matsakis-8/+8
2015-08-21remove use of swap_remove and compress the list as we go insteadNiko Matsakis-13/+12
2015-08-21nits from pnkfelixNiko Matsakis-22/+45
2015-08-21add final test case, correct one of the others (both versions producedNiko Matsakis-4/+22
same result)
2015-08-21add test cases suggested by pnkfelixNiko Matsakis-0/+82
2015-08-21clarify diagonal arrowsNiko Matsakis-0/+3
2015-08-18implement transitive relation type that can compute transitiveNiko Matsakis-0/+463
closures, upper bounds, and other fun things