@@ -3826,17 +3826,6 @@ bool ValueDecl::isUsableFromInline() const {
38263826 return false ;
38273827}
38283828
3829- bool ValueDecl::skipAccessCheckIfInterface (const DeclContext *useDC,
3830- AccessLevel useAcl,
3831- AccessScope declScope) const {
3832- if (!useDC || useAcl != AccessLevel::Package || !declScope.isPackage () ||
3833- !isUsableFromInline () ||
3834- getDeclContext ()->getParentModule () == useDC->getParentModule ())
3835- return false ;
3836- auto useSF = useDC->getParentSourceFile ();
3837- return useSF && useSF->Kind == SourceFileKind::Interface;
3838- }
3839-
38403829bool ValueDecl::shouldHideFromEditor () const {
38413830 // Hide private stdlib declarations.
38423831 if (isPrivateStdlibDecl (/* treatNonBuiltinProtocolsAsPublic*/ false ) ||
@@ -4172,19 +4161,16 @@ static bool checkAccessUsingAccessScopes(const DeclContext *useDC,
41724161 AccessScope accessScope = getAccessScopeForFormalAccess (
41734162 VD, access, useDC,
41744163 /* treatUsableFromInlineAsPublic*/ includeInlineable);
4175- if (accessScope.getDeclContext () == useDC) return true ;
4176- if (!AccessScope (useDC).isChildOf (accessScope)) {
4177- // Grant access if this VD is an inlinable package decl referenced by
4178- // another module in an interface file.
4179- if (VD->skipAccessCheckIfInterface (useDC, access, accessScope))
4180- return true ;
4164+ if (accessScope.getDeclContext () == useDC)
4165+ return true ;
4166+ if (!AccessScope (useDC).isChildOf (accessScope))
41814167 return false ;
4182- }
41834168 // useDC is null only when caller wants to skip non-public type checks.
4184- if (!useDC) return true ;
4185-
4169+ if (!useDC)
4170+ return true ;
41864171 // Check SPI access
4187- if (!VD->isSPI ()) return true ;
4172+ if (!VD->isSPI ())
4173+ return true ;
41884174 auto useSF = dyn_cast<SourceFile>(useDC->getModuleScopeContext ());
41894175 return !useSF || useSF->isImportedAsSPI (VD) ||
41904176 VD->getDeclContext ()->getParentModule () == useDC->getParentModule ();
@@ -4304,14 +4290,6 @@ static bool checkAccess(const DeclContext *useDC, const ValueDecl *VD,
43044290 return useSF && useSF->hasTestableOrPrivateImport (access, sourceModule);
43054291 }
43064292 case AccessLevel::Package: {
4307- auto srcFile = sourceDC->getParentSourceFile ();
4308-
4309- // srcFile could be null if VD decl is from an imported .swiftmodule
4310- if (srcFile && srcFile->Kind == SourceFileKind::Interface) {
4311- // If source file is interface, package decls must be usableFromInline or
4312- // inlinable, and are accessed only within the defining module so return true
4313- return true ;
4314- }
43154293 auto srcPkg = sourceDC->getPackageContext (/* lookupIfNotCurrent*/ true );
43164294 auto usePkg = useDC->getPackageContext (/* lookupIfNotCurrent*/ true );
43174295 return srcPkg && usePkg && usePkg->isSamePackageAs (srcPkg);
0 commit comments