diff --git a/src/generators/loadtime/GeneratorClassLoader.java b/src/generators/loadtime/GeneratorClassLoader.java index bd4809b..da99b89 100644 --- a/src/generators/loadtime/GeneratorClassLoader.java +++ b/src/generators/loadtime/GeneratorClassLoader.java @@ -10,6 +10,7 @@ import java.lang.classfile.*; import java.lang.classfile.attribute.*; import java.lang.classfile.constantpool.ClassEntry; import java.lang.constant.ClassDesc; +import java.lang.constant.ConstantDescs; import java.lang.reflect.AccessFlag; import java.nio.file.Files; import java.nio.file.Path; @@ -77,7 +78,7 @@ public class GeneratorClassLoader extends ClassLoader { mb.withCode(builder::buildSourceMethodShim); }); if(builder.shouldBeInnerClass()){ - innerCl.add(InnerClassInfo.of(builder.CD_this, Optional.of(clm.thisClass().asSymbol()), Optional.of(builder.CD_this.displayName()), AccessFlag.PUBLIC, AccessFlag.FINAL, AccessFlag.STATIC)); + innerCl.add(InnerClassInfo.of(builder.CD_this, Optional.of(clm.thisClass().asSymbol()), Optional.of(builder.CD_this.displayName()), AccessFlag.PRIVATE, AccessFlag.FINAL, AccessFlag.STATIC)); nestMem.add(ClassDesc.of(builder.CD_this.displayName())); } }else{ diff --git a/src/generators/loadtime/StateMachineBuilder.java b/src/generators/loadtime/StateMachineBuilder.java index 00c762e..717e159 100644 --- a/src/generators/loadtime/StateMachineBuilder.java +++ b/src/generators/loadtime/StateMachineBuilder.java @@ -138,7 +138,7 @@ public abstract class StateMachineBuilder { clb.withField(STATE_NAME, ConstantDescs.CD_int, ClassFile.ACC_PRIVATE); // constructor - clb.withMethod(ConstantDescs.INIT_NAME, MTD_init, ClassFile.ACC_PUBLIC, mb -> mb.withCode(cob -> { + clb.withMethod(ConstantDescs.INIT_NAME, MTD_init, ClassFile.ACC_PRIVATE, mb -> mb.withCode(cob -> { cob.aload(0).invokespecial(ConstantDescs.CD_Object, ConstantDescs.INIT_NAME, ConstantDescs.MTD_void); params(1, (param, slot, type) -> { cob.aload(0).loadLocal(TypeKind.from(type), slot).putfield(CD_this, param, type); @@ -146,6 +146,8 @@ public abstract class StateMachineBuilder { cob.return_(); })); + clb.withFlags(AccessFlag.PUBLIC, AccessFlag.FINAL); + buildStateMachineMethod(clb); }); }