Reconnection and compatibility layer fixes #431
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While the public route set doesn't include identically named upload/download routes, the private set does. Include namespaces in reconnection helpers to avoid route collisions.
See: https://github.com/dropbox/stone/pull/346/files
Generated code: 3ab4597
Background compatible routes get generated reconnection wrapper types. If they're in the allow list for Objective-C compatibility generation as well, an additional Objective-C wrapper type will be generated. If we generate an Objective C compatibility wrapper for each Swift one, a switch statement used to map from one to the other will contain an unreachable default statement. Since each layer is generated in separate (and potentially parallel) code generation passes, it's difficult make the generation logic smart enough to know whether to include the default. This change eliminates the warning by generating a different control flow that accommodates both situations naturally. See: https://github.com/dropbox/stone/pull/347/files
Generated code: d0058ec
There are a few new variable names that must be suffixed with _ to avoid collisions in the SwiftyDropbox Objective-C compatibility layer (in private routes): hash (colliding with the NSObject var) and client (colliding with our own client vars).
https://github.com/dropbox/stone/pull/348/files
No changes in generated code here.