Please use the latest 8.4 beta which has all the relevant Swift 3 fixes. in Swift 2.2, privatedid mean file private, so that’s how 8.3 behaves. in 8,4. private now is truly private, and fileprivate behaves as ;private did before.
In general, please test against the latest 8.4 betas because otherwise you’ll be running into, literally, hundreds of known and fixed issues, not to mention not see most of the Swift 3 changes.
Also note that visibility modifiers affect just that: visibility. you still canot have multiple items of the same name in scope. (and “file” is not a scope, “namespace” is. IOW, while private stuff in file1 can’t be seen in file2, it’s still in their same namespace as file2, so yo can’t have the same global identifier in both.