@@ -3952,17 +3952,6 @@ bool ValueDecl::isUsableFromInline() const {
39523952 return false ;
39533953}
39543954
3955- bool ValueDecl::skipAccessCheckIfInterface (const DeclContext *useDC,
3956- AccessLevel useAcl,
3957- AccessScope declScope) const {
3958- if (!useDC || useAcl != AccessLevel::Package || !declScope.isPackage () ||
3959- !isUsableFromInline () ||
3960- getDeclContext ()->getParentModule () == useDC->getParentModule ())
3961- return false ;
3962- auto useSF = useDC->getParentSourceFile ();
3963- return useSF && useSF->Kind == SourceFileKind::Interface;
3964- }
3965-
39663955bool ValueDecl::shouldHideFromEditor () const {
39673956 // Hide private stdlib declarations.
39683957 if (isPrivateStdlibDecl (/* treatNonBuiltinProtocolsAsPublic*/ false ) ||
@@ -4293,19 +4282,16 @@ static bool checkAccessUsingAccessScopes(const DeclContext *useDC,
42934282 AccessScope accessScope = getAccessScopeForFormalAccess (
42944283 VD, access, useDC,
42954284 /* treatUsableFromInlineAsPublic*/ includeInlineable);
4296- if (accessScope.getDeclContext () == useDC) return true ;
4297- if (!AccessScope (useDC).isChildOf (accessScope)) {
4298- // Grant access if this VD is an inlinable package decl referenced by
4299- // another module in an interface file.
4300- if (VD->skipAccessCheckIfInterface (useDC, access, accessScope))
4301- return true ;
4285+ if (accessScope.getDeclContext () == useDC)
4286+ return true ;
4287+ if (!AccessScope (useDC).isChildOf (accessScope))
43024288 return false ;
4303- }
43044289 // useDC is null only when caller wants to skip non-public type checks.
4305- if (!useDC) return true ;
4306-
4290+ if (!useDC)
4291+ return true ;
43074292 // Check SPI access
4308- if (!VD->isSPI ()) return true ;
4293+ if (!VD->isSPI ())
4294+ return true ;
43094295 auto useSF = dyn_cast<SourceFile>(useDC->getModuleScopeContext ());
43104296 return !useSF || useSF->isImportedAsSPI (VD) ||
43114297 VD->getDeclContext ()->getParentModule () == useDC->getParentModule ();
@@ -4426,14 +4412,6 @@ static bool checkAccess(const DeclContext *useDC, const ValueDecl *VD,
44264412 return useSF && useSF->hasTestableOrPrivateImport (access, sourceModule);
44274413 }
44284414 case AccessLevel::Package: {
4429- auto srcFile = sourceDC->getParentSourceFile ();
4430-
4431- // srcFile could be null if VD decl is from an imported .swiftmodule
4432- if (srcFile && srcFile->Kind == SourceFileKind::Interface) {
4433- // If source file is interface, package decls must be usableFromInline or
4434- // inlinable, and are accessed only within the defining module so return true
4435- return true ;
4436- }
44374415 auto srcPkg = sourceDC->getPackageContext (/* lookupIfNotCurrent*/ true );
44384416 auto usePkg = useDC->getPackageContext (/* lookupIfNotCurrent*/ true );
44394417 return srcPkg && usePkg && usePkg->isSamePackageAs (srcPkg);
0 commit comments