@@ -226,12 +226,12 @@ class ClassfileParser(
226226 classRoot.setFlag(sflags)
227227 moduleRoot.setFlag(Flags .JavaDefined | Flags .ModuleClassCreationFlags )
228228
229- val jflags1 = innerClasses.get(currentClassName.toString).fold(jflags : Int )(_.jflags)
230- val privateWithin = getPrivateWithin(jflags1)
229+ val privateWithin = getPrivateWithin(jflags)
231230
232- classRoot.setPrivateWithin(privateWithin)
233- moduleRoot.setPrivateWithin(privateWithin)
234- moduleRoot.sourceModule.setPrivateWithin(privateWithin)
231+ if privateWithin.exists then
232+ classRoot.setPrivateWithin(privateWithin)
233+ moduleRoot.setPrivateWithin(privateWithin)
234+ moduleRoot.sourceModule.setPrivateWithin(privateWithin)
235235
236236 for (i <- 0 until in.nextChar) parseMember(method = false )
237237 for (i <- 0 until in.nextChar) parseMember(method = true )
@@ -884,13 +884,18 @@ class ClassfileParser(
884884 */
885885 private def enterOwnInnerClasses ()(using Context , DataReader ): Unit = {
886886 def enterClassAndModule (entry : InnerClassEntry , file : AbstractFile , jflags : Int ) =
887- SymbolLoaders .enterClassAndModule(
887+ val (cls, mod) = SymbolLoaders .enterClassAndModule(
888888 getOwner(jflags),
889- entry.originalName,
889+ entry.originalName,
890890 new ClassfileLoader (file),
891891 classTranslation.flags(jflags),
892892 getScope(jflags))
893893
894+ val privateWithin = getPrivateWithin(jflags)
895+ cls.setPrivateWithin(privateWithin)
896+ mod.setPrivateWithin(privateWithin)
897+ mod.sourceModule.setPrivateWithin(privateWithin)
898+
894899 for entry <- innerClasses.valuesIterator do
895900 // create a new class member for immediate inner classes
896901 if entry.outer.name == currentClassName then
0 commit comments