@@ -401,12 +401,12 @@ class ClassfileParser(
401
401
classRoot.setFlag(sflags)
402
402
moduleRoot.setFlag(Flags .JavaDefined | Flags .ModuleClassCreationFlags )
403
403
404
- val jflags1 = innerClasses.get(currentClassName.toString).fold(jflags : Int )(_.jflags)
405
- val privateWithin = getPrivateWithin(jflags1)
404
+ val privateWithin = getPrivateWithin(jflags)
406
405
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)
410
410
411
411
for (i <- 0 until in.nextChar) parseMember(method = false )
412
412
for (i <- 0 until in.nextChar) parseMember(method = true )
@@ -1059,13 +1059,17 @@ class ClassfileParser(
1059
1059
*/
1060
1060
private def enterOwnInnerClasses ()(using Context , DataReader ): Unit = {
1061
1061
def enterClassAndModule (entry : InnerClassEntry , file : AbstractFile , jflags : Int ) =
1062
- SymbolLoaders .enterClassAndModule(
1062
+ val (cls, mod) = SymbolLoaders .enterClassAndModule(
1063
1063
getOwner(jflags),
1064
1064
entry.originalName,
1065
1065
new ClassfileLoader (file),
1066
1066
classTranslation.flags(jflags),
1067
1067
getScope(jflags))
1068
1068
1069
+ val privateWithin = getPrivateWithin(jflags)
1070
+ cls.setPrivateWithin(privateWithin)
1071
+ mod.setPrivateWithin(privateWithin)
1072
+
1069
1073
for entry <- innerClasses.valuesIterator do
1070
1074
// create a new class member for immediate inner classes
1071
1075
if entry.outer.name == currentClassName then
0 commit comments