// Create fields
CodeBuilderUtils.makeRecord(classBuilder, functionValue.toString(), Opcodes.ACC_PRIVATE | Opcodes.ACC_FINAL, "p",
Arrays.copyOf(parameterTypes, knownParametersCount),
- false);
+ true);
// Create apply
{
for(int i=0;i<knownParametersCount;++i) {
mb.loadThis();
mb.loadLocal(mb.getParameter(i));
- mb.storeField(className, "p"+i, parameterTypes[i]);
+ mb.storeField(className, "p"+i, parameterTypes[i]);
}
mb.returnVoid();
mb.finish();
functionValue.applyExact(mb, parameters);
mb.box(functionValue.getReturnType());
mb.returnValue(TypeDesc.OBJECT);
- }
+ }
+
+ CodeBuilderUtils.implementHashCodeAndEquals(classBuilder, functionValue.toString(), "p", parameterTypes);
}
// Finish