> On Oct 30, 2017, at 6:38 PM, Adam Kemp via swift-evolution > <swift-evolution@swift.org> wrote: > > > >> On Oct 30, 2017, at 2:23 PM, Mike Kluev <mike.kl...@gmail.com> wrote: >> >> On 30 October 2017 at 19:49, Adam Kemp <adam_k...@apple.com> wrote: >> >> How do you know there’s not an extension in this file without looking? If >> you don’t know then you have to check. That puts it in the same bucket as >> internal or public. The set of files you have to search through for usages >> is the same. >> >> >> I'd just search for "extension SomeClass", Xcode search result window will >> list all files that have it. >> or I will list all the users of "foo" if that's the one I am changing. > > When you do that search, which files do you include in the search? That’s the > key.
If I’m concerned with how much work I’ll have to do, no that’s not the key. The key is how many files do I have to read myself (only those containing a subclass or extension of my base class). You seem to be conflating a near instantaneous search in an IDE with manually evaluating a change’s impact to other source files in the module. “Classprivate" makes significantly fewer files that I have to manually review compared to “internal”. >> the good guideline from Obj-C was (and still is) using >> "SomeClass+ExtensionName" file naming convention that also helps. > > That’s not sufficient because there’s nothing in the language that would > force people to follow this convention, and you can have extensions in any > file for any class. There doesn’t need to be anything in the language, I just need to have a defined coding convention that contributors follow. As someone else said upthread you have to be able to trust your fellow developers. -Noah _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution