@@ -401,12 +401,12 @@ class ClassfileParser(
401401 classRoot.setFlag(sflags)
402402 moduleRoot.setFlag(Flags .JavaDefined | Flags .ModuleClassCreationFlags )
403403
404- val jflags1 = innerClasses.get(currentClassName.toString).fold(jflags : Int )(_.jflags)
405- val privateWithin = getPrivateWithin(jflags1)
404+ val privateWithin = getPrivateWithin(jflags)
406405
407- classRoot.setPrivateWithin(privateWithin)
408- moduleRoot.setPrivateWithin(privateWithin)
409- moduleRoot.sourceModule.setPrivateWithin(privateWithin)
406+ if privateWithin.exists then
407+ classRoot.setPrivateWithin(privateWithin)
408+ moduleRoot.setPrivateWithin(privateWithin)
409+ moduleRoot.sourceModule.setPrivateWithin(privateWithin)
410410
411411 for (i <- 0 until in.nextChar) parseMember(method = false )
412412 for (i <- 0 until in.nextChar) parseMember(method = true )
@@ -1059,13 +1059,18 @@ class ClassfileParser(
10591059 */
10601060 private def enterOwnInnerClasses ()(using Context , DataReader ): Unit = {
10611061 def enterClassAndModule (entry : InnerClassEntry , file : AbstractFile , jflags : Int ) =
1062- SymbolLoaders .enterClassAndModule(
1062+ val (cls, mod) = SymbolLoaders .enterClassAndModule(
10631063 getOwner(jflags),
1064- entry.originalName,
1064+ entry.originalName,
10651065 new ClassfileLoader (file),
10661066 classTranslation.flags(jflags),
10671067 getScope(jflags))
10681068
1069+ val privateWithin = getPrivateWithin(jflags)
1070+ cls.setPrivateWithin(privateWithin)
1071+ mod.setPrivateWithin(privateWithin)
1072+ mod.sourceModule.setPrivateWithin(privateWithin)
1073+
10691074 for entry <- innerClasses.valuesIterator do
10701075 // create a new class member for immediate inner classes
10711076 if entry.outer.name == currentClassName then
0 commit comments