@@ -24,6 +24,8 @@ import java.lang.classfile.attribute.ExceptionsAttribute
2424import java.lang.classfile.attribute.InnerClassInfo
2525import java.lang.classfile.attribute.InnerClassesAttribute
2626import java.lang.classfile.attribute.ModuleAttribute
27+ import java.lang.classfile.attribute.ModuleExportInfo
28+ import java.lang.classfile.attribute.ModuleOpenInfo
2729import java.lang.classfile.attribute.ModuleProvideInfo
2830import java.lang.classfile.attribute.NestHostAttribute
2931import java.lang.classfile.attribute.NestMembersAttribute
@@ -55,6 +57,7 @@ import java.lang.constant.DynamicCallSiteDesc
5557import java.lang.constant.DynamicConstantDesc
5658import java.lang.constant.MethodHandleDesc
5759import java.lang.constant.MethodTypeDesc
60+ import java.lang.constant.PackageDesc
5861import java.util.regex.Pattern
5962
6063/* *
@@ -75,7 +78,7 @@ internal class RelocatorRemapper(
7578 cle.fieldName().stringValue(),
7679 mapClassDesc(ClassDesc .ofDescriptor(cle.fieldType().stringValue())),
7780 ) { fb ->
78- fb.transform(cle, asFieldTransform())
81+ fb.withFlags(cle.flags().flagsMask()). transform(cle, asFieldTransform())
7982 }
8083 is MethodModel ->
8184 clb.withMethod(
@@ -123,8 +126,28 @@ internal class RelocatorRemapper(
123126 cle.moduleFlagsMask(),
124127 cle.moduleVersion().orElse(null ),
125128 cle.requires(),
126- cle.exports(),
127- cle.opens(),
129+ cle.exports().map { mei ->
130+ ModuleExportInfo .of(
131+ clb
132+ .constantPool()
133+ .packageEntry(
134+ PackageDesc .ofInternalName(map(mei.exportedPackage().asSymbol().internalName()))
135+ ),
136+ mei.exportsFlagsMask(),
137+ mei.exportsTo(),
138+ )
139+ },
140+ cle.opens().map { moi ->
141+ ModuleOpenInfo .of(
142+ clb
143+ .constantPool()
144+ .packageEntry(
145+ PackageDesc .ofInternalName(map(moi.openedPackage().asSymbol().internalName()))
146+ ),
147+ moi.opensFlagsMask(),
148+ moi.opensTo(),
149+ )
150+ },
128151 cle.uses().map { clb.constantPool().classEntry(mapClassDesc(it.asSymbol())!! ) },
129152 cle.provides().map { mp ->
130153 ModuleProvideInfo .of(
0 commit comments