Commit graph

14 commits

Author SHA1 Message Date
Niko Matsakis
02a47032dd use preds to serialize just what we need
This massively speeds up serialization. It also
seems to produce deterministic metadata hashes
(before I was seeing inconsistent results).

Fixes #35232.
2016-08-09 08:26:06 -04:00
Niko Matsakis
b4929d11ae watch out for krate numbers being reassigned
The biggest problem, actually, is krate numbers being removed entirely,
which can lead to array-index-out-of-bounds errors.

cc #35123 -- not a complete fix, since really we ought to "map" the old
crate numbers to the new ones, not just detect changes.
2016-08-02 05:31:25 -04:00
Niko Matsakis
c56eb4b7f5 remap Hir(InlinedDefId) to MetaData(OriginalDefId)
The way we do HIR inlining introduces reads of the "Hir" into the graph,
but this Hir in fact belongs to other crates, so when we try to load
later, we ICE because the Hir nodes in question don't belond to the
crate (and we haven't done inlining yet). This pass rewrites those HIR
nodes to the metadata from which the inlined HIR was loaded.
2016-08-02 05:31:25 -04:00
Niko Matsakis
9294f8ed0a hash foreign items too 2016-08-01 19:57:32 -04:00
Niko Matsakis
2f9fff2191 Keep multiple files per work-product
In the older version, a `.o` and ` .bc` file were separate
work-products.  This newer version keeps, for each codegen-unit, a set
of files of different kinds. We assume that if any kinds are available
then all the kinds we need are available, since the precise set of
switches will depend on attributes and command-line switches.

Should probably test this: the effect of changing attributes in
particular might not be successfully tracked?
2016-07-28 12:05:45 -04:00
Niko Matsakis
ceeb158e0a Address mw nits 2016-07-28 12:05:45 -04:00
Niko Matsakis
08a72d20c9 Add a testing mechanism and a simple spike test 2016-07-28 12:05:45 -04:00
Niko Matsakis
4038b5b3ee add def-ids from nominal types into TraitSelect
This way we distinguish, in particular, `Foo: Sized`
and `Bar: Sized`, which fixes #33850.
2016-05-31 19:59:57 -04:00
Niko Matsakis
5dc6a058b2 extend type alias test to include a clean rev 2016-05-31 19:59:57 -04:00
Niko Matsakis
be1819f14b add a series of tests for changes to structs
These tests reveal that the edges are in some cases
too strict.
2016-05-31 19:59:57 -04:00
Niko Matsakis
02af34def7 always make at least one codegen-unit
this allows us to remove the dummy `foo` fn
2016-05-18 21:24:30 -04:00
Niko Matsakis
bed7ea8609 basic tests for cross-crate hashing 2016-05-18 10:11:36 -04:00
Niko Matsakis
54d78a46c5 Fix test cases to reflect that #32014...went away
Not sure what was the bug. Fixes #32014.
2016-04-06 16:38:29 -04:00
Niko Matsakis
068142a2e6 add incremental test runner and some tests 2016-04-06 12:42:46 -04:00