| Age | Commit message (Collapse) | Author | Lines |
|
These modules were replaced with re-exports from ena
|
|
|
|
|
|
Like #43008 (f668999), but _much more aggressive_.
|
|
This speeds up compilation of rustc-benchmarks/inflate-0.1.0 by 1%.
|
|
|
|
This PR adds a `UnificationTable` to the `TypeVariableTable` type which
is used store information about variable equality instead of just
storing them in a vector for later processing. By using a
`UnificationTable` equality relations can be resolved in O(n) (for all
realistic values of n) rather than O(n!) which can give massive
speedups in certain cases (see combine as an example).
Link to combine: https://github.com/Marwes/combine
|
|
|
|
rust-lang-nursery/rustfmt#836
|
|
Turns out that calling `resolve_type_variables_if_possible` in a O(n^2)
loop is a bad idea. Now we just resolve each copy of the region variable
to its lowest name each time (we resolve the region variable to its lowest
name, rather than to its unify-table name to avoid the risk of
the unify-table name changing infinitely many times. That may be
not a problem in practice, but I am not sure of it).
|
|
|
|
|
|
This patch allows type parameter defaults to influence type inference. This is a possible breaking change since it effects the way type inference works and will have different behavior when mixing defaults and literal fallback.
|
|
Changes the style guidelines regarding unit tests to recommend using a
sub-module named "tests" instead of "test" for unit tests as "test"
might clash with imports of libtest.
|
|
|
|
|
|
but is otherwise mostly the same.
|