Merge pull request #40892 from LucianoPAlmeida/SR-15273-access

This commit is contained in:
Luciano Almeida
2022-01-26 09:58:37 -03:00
committed by GitHub
2 changed files with 11 additions and 3 deletions

View File

@@ -4294,9 +4294,9 @@ ConformanceChecker::resolveWitnessViaLookup(ValueDecl *requirement) {
protoAccessScope.accessLevelForDiagnostics(), protoAccessScope.accessLevelForDiagnostics(),
proto->getName()); proto->getName());
if (auto *decl = dyn_cast<AbstractFunctionDecl>(witness)) auto *decl = dyn_cast<AbstractFunctionDecl>(witness);
if (decl->isMemberwiseInitializer()) if (decl && decl->isSynthesized())
return; return;
diagnoseWitnessFixAccessLevel(diags, witness, requiredAccess, diagnoseWitnessFixAccessLevel(diags, witness, requiredAccess,
isSetter); isSetter);

View File

@@ -104,3 +104,11 @@ public struct NonPublicMemberwiseInitStruct: PublicInitProto {
// expected-error@-1 {{initializer 'init(value:)' must be declared public because it matches a requirement in public protocol 'PublicInitProto'}} // expected-error@-1 {{initializer 'init(value:)' must be declared public because it matches a requirement in public protocol 'PublicInitProto'}}
public var value: Int public var value: Int
} }
// SR-15273
public protocol PublicEmptyInit {
init()
}
public struct Buggy: PublicEmptyInit {
// expected-error@-1 {{initializer 'init()' must be declared public because it matches a requirement in public protocol 'PublicEmptyInit'}}
}