how to add parameters to a class constructor?
I want to add parameters to a primary constructor in SyntheticResolveExtension, but it failed
the code is:
in SyntheticResolveExtension:
override fun generateSyntheticClasses(
  thisDescriptor: ClassDescriptor,
  name: Name,
  ctx: LazyClassContext,
  declarationProvider: ClassMemberDeclarationProvider,
  result: MutableSet<ClassDescriptor>
) {
  if (!thisDescriptor.annotatedAsDeepCopiableDataClass()) {
    return
  }
    if(name.identifier=="sub") {
      result += trackableSubClass(thisDescriptor);
    }
}
private fun trackableSubClass(
  thisDescriptor: ClassDescriptor
): ClassDescriptorImpl = object : ClassDescriptorImpl(
  thisDescriptor,
  Name.identifier(SUBCLASS_NAME),
  Modality.FINAL,
  ClassKind.CLASS,
  emptyList<KotlinType>(),
  thisDescriptor.source,
  false,
  
LockBasedStorageManager.NO_LOCKS
) {
  override fun getUnsubstitutedMemberScope(): MemberScope {
    return  MemberScope.Empty
  }
}.apply {
  val a = ClassConstructorDescriptorImpl.create(
    this,
    Annotations.EMPTY,
    true,
    this.source
  )
  val b = ValueParameterDescriptorImpl(
    containingDeclaration = a,
    original = null,
    index = 0,
    annotations = Annotations.EMPTY,
    name = Name.identifier("d"),
    outType = thisDescriptor.builtIns.longType,
    declaresDefaultValue = true,
    isCrossinline = false,
    isNoinline = false,
    varargElementType = null,
    source = a.source,
  )
  a.initialize(
    listOf(b),
    DescriptorVisibilities.PUBLIC,
  )
  a.returnType = this.defaultType
  this.initialize(
    MemberScope.Empty,
    setOf(a),
    a
  )
}
in IrElementTransformerVoidWithContext:
fun IrClass.createSub(pluginContext: IrPluginContext){
  val constructorOfAny = pluginContext.irBuiltIns.anyClass.owner.constructors.first()
  primaryConstructor!!.body=factory.createBlockBody(
    startOffset, endOffset,
    listOf(
      IrDelegatingConstructorCallImpl(
       startOffset, endOffset,  pluginContext.irBuiltIns.unitType,
        constructorOfAny.symbol, 0,
        constructorOfAny.valueParameters.size
      ).apply {
       primaryConstructor!!.valueParameters.forEachIndexed { idx, parameter ->
         println(idx)
         println(parameter)
          putValueArgument(idx, IrGetValueImpl(startOffset, endOffset, parameter.type, parameter.symbol))
        }
       },
      IrInstanceInitializerCallImpl(startOffset, endOffset, symbol, pluginContext.irBuiltIns.unitType)
    )
  )
}
the error is :
e: java.lang.AssertionError: org.jetbrains.kotlin.ir.expressions.impl.IrDelegatingConstructorCallImpl@2169d6d4: No such value argument slot: 0
	at org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression.putValueArgument(
)