mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Previously, two constructors with the same full name and argument types would get identical manglings even if they were declared 'private' or 'fileprivate' in different files. This would lead to symbol collisions in whole-module builds. Add a new mangling node for private discriminators on base-name-less decls to make this unique. This still doesn't fix the existing issue with private members, named or not, conflicting when they're in the /same/ file, but since Swift 4 makes those members visible to one another (SE-0169) that's only an issue in Swift 3 mode anyway, and as such probably won't get fixed at all. rdar://problem/27758199