-
Notifications
You must be signed in to change notification settings - Fork 222
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
Make members of a private extension fileprivate. #3
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Extensions are declared at file scope, so "private" on an extension means that the members are actually "fileprivate". In this case we need to add the correct keyword to the individual members, or we'll actually change their visibility incorrectly. Fixes SR-11110.
akyrtzi
approved these changes
Jul 18, 2019
dylansturg
added a commit
to dylansturg/swift-format
that referenced
this pull request
Dec 6, 2019
Adding line breaks inside of #if conditionals is dangerous because line breaks are only valid if the entire condition is wrapped in parens. It's difficult to conditionally add parens only if a break is necessary because it implies backtracking into the printer's output buffer to insert the opening paren. Our options for fixing this problem were: 1. Implement paren wrapping the #if condition if a break fires (very complex). 2. Always paren wrap the #if condition (looks bad in the most common case where there's no breaking). 3. Disable breaking in the pretty print but allow users to explicitly break in the condition using discretionary newlines. I selected option swiftlang#3 and implemented by adding new kind of token known as "printer control" to disable/enable suppressing of break tokens. These printer control tokens can be used in other scenarios, such as suppressing breaks in string interpolation expressions. Fixes SR-11815
dylansturg
added a commit
to dylansturg/swift-format
that referenced
this pull request
Dec 6, 2019
Adding line breaks inside of #if conditionals is dangerous because line breaks are only valid if the entire condition is wrapped in parens. It's difficult to conditionally add parens only if a break is necessary because it implies backtracking into the printer's output buffer to insert the opening paren. Our options for fixing this problem were: 1. Implement paren wrapping the #if condition if a break fires (very complex). 2. Always paren wrap the #if condition (looks bad in the most common case where there's no breaking). 3. Disable breaking in the pretty print but allow users to explicitly break in the condition using discretionary newlines. I selected option swiftlang#3 and implemented by adding new kind of token known as "printer control" to disable/enable suppressing of break tokens. These printer control tokens can be used in other scenarios, such as suppressing breaks in string interpolation expressions. Fixes SR-11815
dylansturg
added a commit
to dylansturg/swift-format
that referenced
this pull request
Dec 6, 2019
Adding line breaks inside of #if conditionals is dangerous because line breaks are only valid if the entire condition is wrapped in parens. It's difficult to conditionally add parens only if a break is necessary because it implies backtracking into the printer's output buffer to insert the opening paren. Our options for fixing this problem were: 1. Implement paren wrapping the #if condition if a break fires (very complex). 2. Always paren wrap the #if condition (looks bad in the most common case where there's no breaking). 3. Disable breaking in the pretty print but allow users to explicitly break in the condition using discretionary newlines. I selected option swiftlang#3 and implemented by adding new kind of token known as "printer control" to disable/enable suppressing of break tokens. These printer control tokens can be used in other scenarios, such as suppressing breaks in string interpolation expressions. Fixes SR-11815
dylansturg
added a commit
to dylansturg/swift-format
that referenced
this pull request
Dec 6, 2019
Adding line breaks inside of #if conditionals is dangerous because line breaks are only valid if the entire condition is wrapped in parens. It's difficult to conditionally add parens only if a break is necessary because it implies backtracking into the printer's output buffer to insert the opening paren. Our options for fixing this problem were: 1. Implement paren wrapping the #if condition if a break fires (very complex). 2. Always paren wrap the #if condition (looks bad in the most common case where there's no breaking). 3. Disable breaking in the pretty print but allow users to explicitly break in the condition using discretionary newlines. I selected option swiftlang#3 and implemented by adding new kind of token known as "printer control" to disable/enable suppressing of break tokens. These printer control tokens can be used in other scenarios, such as suppressing breaks in string interpolation expressions. Fixes SR-11815
dylansturg
added a commit
to dylansturg/swift-format
that referenced
this pull request
Dec 6, 2019
Adding line breaks inside of #if conditionals is dangerous because line breaks are only valid if the entire condition is wrapped in parens. It's difficult to conditionally add parens only if a break is necessary because it implies backtracking into the printer's output buffer to insert the opening paren. Our options for fixing this problem were: 1. Implement paren wrapping the #if condition if a break fires (very complex). 2. Always paren wrap the #if condition (looks bad in the most common case where there's no breaking). 3. Disable breaking in the pretty print but allow users to explicitly break in the condition using discretionary newlines. I selected option swiftlang#3 and implemented by adding new kind of token known as "printer control" to disable/enable suppressing of break tokens. These printer control tokens can be used in other scenarios, such as suppressing breaks in string interpolation expressions. Fixes SR-11815
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Extensions are declared at file scope, so "private" on an extension means
that the members are actually "fileprivate". In this case we need to add
the correct keyword to the individual members, or we'll actually change
their visibility incorrectly.
Fixes SR-11110.