Comments (4)
This is expected as far as I am concerned: at the top level, private
is always synonymous to fileprivate
. We should hand it over to the swift-book folks.
cc @amartini51
Whether we still have room for the now source-breaking (albeit reasonable) behavioural exception you expected is worth discussing on the Swift forums, unless it already was.
from swift-book.
@amartini51 ping
from swift-book.
I'm not entirely clear what the documentation issue is here. It seems like it might be related to top-level private
being understood by the compiler as fileprivate
— so the inferred access level of testFunction(case:)
is actually fileprivate
, even though the extension is marked private
. Is that correct and expected behavior by the compiler? I don't see that behavior described in SE-0025 or SE-0169.
from swift-book.
Is that correct and expected behavior by the compiler?
Yes, top-level private
is an alias for fileprivate
; they are semantically equivalent. I believe this is worth clarifying here. So the members of a private
extension are fileprivate
by default, not private
. I think we should document this even if it happens to be an oversight (cc @DougGregor), because it has been the status quo since at least Swift 3, and would take a source-breaking evolution proposal to fix.
The book also states that the members of a private
class, structure, or enumeration will have an effective access level of private
, when the actual effective access level is fileprivate
.
from swift-book.
Related Issues (20)
- Conflicting Contexts for API Availability between Language Guide and Language Reference
- Reference Fallback as a Statement not Keyword
- A Case's Body, not Its Code Block
- Failure to build swift-book using Xcode docc HOT 5
- Concurrency > Sendable Types — Clarify intro about non-sendable data HOT 4
- Conflicting info about when to write `override` and `required` HOT 1
- defer keyword documentation is misleading a little.
- Grammar does not allow for `: Self.someStaticMember`
- Grammar does not support attributes for parameter declarations
- Grammar of string interpolation does not support SE-0228
- Grammar missing optional mutation-modifier in willSet/didSet-clause
- Grammar missing optional parens for type identifiers in type inheritance clause
- List of keywords is missing `borrowing` and `consuming` HOT 1
- Broken anchor tag on colliding "#main" HOT 1
- Xcode version is missed HOT 2
- Access control modifiers on extensions that add protocol conformance
- Missing gap/padding between social icons in the footer
- Immediately invoked closures should be updated to use do-expressions. HOT 1
- Need More Clarity in "Function Type" Reference HOT 1
- Grammar issue in "Getting Started" for SwiftUI HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swift-book.