about summary refs log tree commit diff
path: root/src/test/incremental
AgeCommit message (Collapse)AuthorLines
2016-11-29Address remaining review commentsFlorian Diebold-0/+5
2016-11-29Fix remaining SVH testsFlorian Diebold-37/+101
2016-11-29WIP: update tests to pass -- not completeNiko Matsakis-33/+51
2016-11-29restructure `CollectItem` dep-node to separate fn sigs from bodiesNiko Matsakis-14/+7
Setup two tasks, one of which only processes the signatures, in order to isolate the typeck entries for signatures from those for bodies. Fixes #36078 Fixes #37720
2016-11-29Make hello_world test work againFlorian Diebold-6/+7
This used to work with the rustc_clean attribute, but doesn't anymore since my rebase; but I don't know enough about the type checking to find out what's wrong. The dep graph looks like this: ItemSignature(xxxx) -> CollectItem(xxxx) CollectItem(xxxx) -> ItemSignature(xxxx) ItemSignature(xxxx) -> TypeckItemBody(yyyy) HirBody(xxxx) -> CollectItem(xxxx) The cycle between CollectItem and ItemSignature looks wrong, and my guess is the CollectItem -> ItemSignature edge shouldn't be there, but I'm not sure how to prevent it.
2016-11-29Fix new testsFlorian Diebold-56/+184
2016-11-29Give function bodies their own dep graph nodeFlorian Diebold-9/+20
2016-11-28fixup test casesNiko Matsakis-14/+7
2016-11-22ICH: Add test case for struct constructor expressions.Michael Woerister-0/+254
2016-11-21add regression test for #36168Niko Matsakis-0/+119
Fixes #36168
2016-11-20Rollup merge of #37841 - michaelwoerister:ich-loop-tests, r=nikomatsakisGuillaume Gomez-0/+1049
ICH: Add regression tests for various kinds of loops. r? @nikomatsakis
2016-11-18remove FIXMEs; issue fixedNiko Matsakis-9/+5
2016-11-18improve commentsNiko Matsakis-11/+31
2016-11-18add test for adding a fieldNiko Matsakis-0/+142
2016-11-18add test for changing pub inherent method signatureNiko Matsakis-0/+117
2016-11-18add test for changing pub inherent method bodyNiko Matsakis-0/+107
Ideally, callers should not be affected, but they currently are.
2016-11-17Auto merge of #37660 - nikomatsakis:incremental-36349, r=eddybbors-20/+547
Separate impl items from the parent impl This change separates impl item bodies out of the impl itself. This gives incremental more resolution. In so doing, it refactors how the visitors work, and cleans up a bit of the collect/check logic (mostly by moving things out of collect that didn't really belong there, because they were just checking conditions). However, this is not as effective as I expected, for a kind of frustrating reason. In particular, when invoking `foo.bar()` you still wind up with dependencies on private items. The problem is that the method resolution code scans that list for methods with the name `bar` -- and this winds up touching *all* the methods, even private ones. I can imagine two obvious ways to fix this: - separating fn bodies from fn sigs (#35078, currently being pursued by @flodiebold) - a more aggressive model of incremental that @michaelwoerister has been advocating, in which we hash the intermediate results (e.g., the outputs of collect) so that we can see that the intermediate result hasn't changed, even if a particular impl item has changed. So all in all I'm not quite sure whether to land this or not. =) It still seems like it has to be a win in some cases, but not with the test cases we have just now. I can try to gin up some test cases, but I'm not sure if they will be totally realistic. On the other hand, some of the early refactorings to the visitor trait seem worthwhile to me regardless. cc #36349 -- well, this is basically a fix for that issue, I guess r? @michaelwoerister NB: Based atop of @eddyb's PR https://github.com/rust-lang/rust/pull/37402; don't land until that lands.
2016-11-17add test for hashing trait implsNiko Matsakis-0/+404
2016-11-17ICH: Add regression tests for various kinds of loops.Michael Woerister-0/+1049
2016-11-17fix change_private_impl_method_cc testNiko Matsakis-3/+1
2016-11-17hash the contents of impl-item-ref by adding them to visitorNiko Matsakis-0/+128
Also simplify some of the `ty::AssociatedItem` representation, in particular by folding `has_value` into `hir::Defaultness`
2016-11-17when creating an AssociatedItem, read data from impl, not impl itemNiko Matsakis-20/+17
Before, when we created an AssociatedItem for impl item X, we would read the impl item itself. Now we instead load up the impl I that contains X and read the data from the `ImplItemRef` for X; actually, we do it for all impl items in I pre-emptively. This kills the last source of edges between a method X and a call to a method Y defined in the same impl. Fixes #37121
2016-11-16ICH: Add test case for type alias definitionsMichael Woerister-0/+249
2016-11-13Adapt accidentally fixed test case.Michael Woerister-4/+1
2016-11-12Rollup merge of #37694 - michaelwoerister:test-if-ich, r=brsonEduard-Mihai Burtescu-0/+232
ICH: Add test case for if- and if-let-expressions. r? @nikomatsakis
2016-11-10ICH: Add test case for if- and if-let-expressions.Michael Woerister-0/+232
2016-11-10ICH: Add test case for call expressions.Michael Woerister-0/+203
2016-11-09Rollup merge of #37654 - michaelwoerister:test-let-ich, r=nikomatsakisEduard-Mihai Burtescu-0/+570
ICH: Add tests for let- and match-expressions. r? @nikomatsakis
2016-11-08ICH: Add test case for match-expressionsMichael Woerister-0/+342
2016-11-08ICH: Add test case for let-expressions.Michael Woerister-0/+228
2016-11-07Fix typos and redundant codeoldmanmike-5/+3
2016-11-07Apply changes recommended in code reviewoldmanmike-21/+40
Said code review and recommendations can be found here: https://github.com/rust-lang/rust/pull/37610
2016-11-05Add unary and binary tests for incr-compoldmanmike-0/+497
2016-11-02Rollup merge of #37513 - michaelwoerister:hash-panic-spans, r=nikomatsakisJonathan Turner-0/+424
ICH: Hash expression spans if their source location is captured for panics. Since the location of some expressions is captured in error message constants, it has an influence on machine code and consequently we need to take them into account by the incr. comp. hash. This PR makes this happen for `+, -, *, /, %` and for array indexing -- let me know if I forgot anything. In the future we might want to change the codegen strategy for those error messages, so that they are stored in a separate object file with a stable symbol name, so that only this object file has to be regenerated when source locations change. This strategy would also eliminate unnecessary duplications due to monomorphization, as @arielb1 has pointed out on IRC. I opened https://github.com/rust-lang/rust/issues/37512, so we don't forget about this. r? @nikomatsakis
2016-11-02ICH: Add test case for when overflow checks are disabled.Michael Woerister-0/+251
2016-11-01Auto merge of #37332 - nikomatsakis:incr-comp-benchmark-2, r=michaelwoeristerbors-0/+356
add more incremental reuse test cases r? @michaelwoerister This is basically a port of the "private method in impl". It works better when it's a top-level fn. =)
2016-11-01ICH: Hash expression spans if their source location is captured for panicsMichael Woerister-0/+173
2016-10-26Prohibit patterns in trait methods without bodiesVadim Petrochenkov-4/+4
2016-10-21test case for changing a private fn in root of another crateNiko Matsakis-0/+121
2016-10-21add a test case for changing a private impl method across cratesNiko Matsakis-0/+124
Currently doesn't work that well at all in terms of getting reuse afterwards, see #37333. =)
2016-10-21add test case for changes to a private fnNiko Matsakis-0/+111
2016-10-19Rollup merge of #37124 - nikomatsakis:incr-comp-benchmark, r=michaelwoeristerEduard-Mihai Burtescu-0/+114
add test case for changing private methods The goal of this test case is to ensure we are getting the reuse we expect. This targets a particular change where we modify the body of a private inherent method defined on a struct, and looks at different ways we can use that struct. It checks for when type-checking would be needed as well as the actual reuse achieved. cc https://github.com/rust-lang/rust/issues/37121 r? @michaelwoerister
2016-10-17Fix typoMichael Woerister-1/+1
2016-10-12add test case for changing private methodsNiko Matsakis-0/+114
2016-10-12Rollup merge of #36831 - michaelwoerister:ich-updates, r=nikomatsakisAlex Crichton-0/+71
incr.comp.: Minor refactoring and update to struct ICH test case r? @nikomatsakis
2016-10-11Rollup merge of #37072 - michaelwoerister:enable-trait-ich-tests, r=nikomatsakisGuillaume Gomez-91/+85
ICH: Enable some cases in trait definition hashing. Enable some test cases originally written by @eulerdisk. The tests can be enabled now because @MathieuBordere has fixed the underlying problem in #36974. r? @nikomatsakis
2016-10-10ICH: Enable some cases in trait definition hashing.Michael Woerister-91/+85
2016-10-08Add ICH test case for constsFlorian Diebold-0/+132
Fixes #37000.
2016-10-08Add ICH test case for staticsFlorian Diebold-0/+185
Fixes #37001.
2016-10-07incr.comp.: Cover indirect changes in struct ICH test caseMichael Woerister-0/+71