Skip to content

Add a Regression Test For Scenario Improved By Private Dependencies #32032

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

Merged
merged 1 commit into from
May 27, 2020

Conversation

CodaFi
Copy link
Contributor

@CodaFi CodaFi commented May 27, 2020

The basic setup is this - Suppose that three files define four types:

// File 1
struct A {}

// File 2
struct B { let x: A }
struct C { }

// File 3
struct D { let x: C }

If type 'A' is perturbed, we could expect that File 2 would rebuild
because B has a member of type A. What we don't expect is for File 3 to
rebuild, but thanks to cascading edges that is precisely that happens!
This is because the member x in File 3 creates a cascading edge to File
2, and that edge is traversed while evaluating the cascading edge from
File 2 to File 1. With private dependencies, the expected rebuild
behavior is restored. Commit a regression test to this effect.

@CodaFi CodaFi requested a review from davidungar May 27, 2020 01:45
@CodaFi
Copy link
Contributor Author

CodaFi commented May 27, 2020

@swift-ci smoke test

Copy link
Contributor

@davidungar davidungar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! Can't wait till I can measure the improvements!

The basic setup is this - Suppose that three files define four types:

// File 1
struct A {}

// File 2
struct B { let x: A }
struct C { }

// File 3
struct D { let x: C }

If type 'A' is perturbed, we could expect that File 2 would rebuild
because B has a member of type A. What we don't expect is for File 3 to
rebuild, but thanks to cascading edges that is precisely that happens!
This is because the member x in File 3 creates a cascading edge to File
2, and that edge is traversed while evaluating the cascading edge from
File 2 to File 1. With private dependencies, the expected rebuild
behavior is restored. Commit a regression test to this effect.
@CodaFi
Copy link
Contributor Author

CodaFi commented May 27, 2020

@swift-ci please smoke test

1 similar comment
@CodaFi
Copy link
Contributor Author

CodaFi commented May 27, 2020

@swift-ci please smoke test

@CodaFi
Copy link
Contributor Author

CodaFi commented May 27, 2020

@swift-ci smoke test

@CodaFi
Copy link
Contributor Author

CodaFi commented May 27, 2020

@CodaFi CodaFi merged commit 21f5032 into swiftlang:master May 27, 2020
@CodaFi CodaFi deleted the cascadia branch May 27, 2020 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants