-
Notifications
You must be signed in to change notification settings - Fork 263
[Asynchronous] Move into separate directory #172
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
[Asynchronous] Move into separate directory #172
Conversation
I haven't tested this on Linux, so I'd be surprised if it worked on the first try. Here goes nothing! 😅 |
@swift-ci please test |
Somehow I doubt this change would've caused a error in LLVM IR debug info 😂 I'll try kicking CI again tomorrow. |
@swift-ci please test |
Cool, I like these changes, although the ambiguous reference issue with libdispatch does seem like a bug that should be addressed at some point. Do you know if there is a Jira issue on that? Also from the CI log it looks like you've uncovered a compiler crasher, unless perhaps some stale build products are somehow interfering. Let's give it another try. |
@swift-ci please test |
Ooh, neat. Later today I'll file a bug for both the crasher in CI and for the ambiguous reference I described above, then try to work around the issue here. |
Three changes: 1. Move files related to `XCTestCase+Asynchronous` into a separate directory. 2. Move methods on `XCTestCase` that vend expectations for `Predicate` and `Notification` into their own files. 3. Modify the build script in order to traverse deeply nested files. Besides general project hygiene, the motivation for this change is, unintuitively, related to libdispatch: `import Dispatch` within `XCTestCase+Asynchronous` would otherwise result in an error indicating that `NSObjectProtocol` (used within the `expectation(forNotification:...)` method) is an ambiguous reference. By keeping the source files small and limiting the scope in which `Dispatch` is imported, we can sidestep the error.
8ed4d7e
to
ac97606
Compare
Sure enough, the glob pattern I added for Linux didn't work. The updated pull request has one that does, so all the source files are included in the compilation. |
@swift-ci please test |
An error in swift-corelibs-foundation |
@swift-ci please test |
@swift-ci please test |
Nice job tracking that issue down. Let's get this merged, and hopefully get some positive feedback on swiftlang/swift-corelibs-foundation#656 now that that one has gone in as well! Thanks @modocache. |
Three changes:
XCTestCase+Asynchronous
into a separate directory.XCTestCase
that vend expectations forPredicate
andNotification
into their own files.Besides general project hygiene, the motivation for this change is, unintuitively, related to libdispatch:
import Dispatch
withinXCTestCase+Asynchronous
would otherwise result in an error indicating thatNSObjectProtocol
(used within theexpectation(forNotification:...)
method) is an ambiguous reference. By keeping the source files small and limiting the scope in whichDispatch
is imported, we can sidestep the error.