Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

struct field dependencies are overly conservative #33850

Closed
nikomatsakis opened this issue May 24, 2016 · 4 comments
Closed

struct field dependencies are overly conservative #33850

nikomatsakis opened this issue May 24, 2016 · 4 comments
Labels
A-incr-comp Area: Incremental compilation

Comments

@nikomatsakis
Copy link
Contributor

The test cases I am adding in an upcoming PR show that for some reason we consider functions as dirty when any struct changes, even if the fn doesn't use that struct.

@nikomatsakis nikomatsakis added A-incr-comp Area: Incremental compilation I-wrong labels May 24, 2016
@nikomatsakis
Copy link
Contributor Author

(Look for the FIXMEs.)

@nikomatsakis
Copy link
Contributor Author

Heh, ok, I figured out why this is. The problem is that we use one dep-node for "trait selection on a given Trait". This is awfully coarse-grained, but I thought we could get away with it. Turns out, not such a good idea with the Sized trait.

@michaelwoerister
Copy link
Member

:D

@nikomatsakis
Copy link
Contributor Author

(got a fix locally, will prep PR soon)

nikomatsakis added a commit to nikomatsakis/rust that referenced this issue Jun 1, 2016
This way we distinguish, in particular, `Foo: Sized`
and `Bar: Sized`, which fixes rust-lang#33850.
bors added a commit that referenced this issue Jun 4, 2016
Incr. comp. dep-node for traits, tests

Introduce new tests and also make dep-node for trait selection a bit more selective.

Fixes #33850

r? @michaelwoerister
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-incr-comp Area: Incremental compilation
Projects
None yet
Development

No branches or pull requests

2 participants