diff --git a/capnpc-go/any_pointer.go b/capnpc-go/any_pointer.go index 17985388..d22836b5 100644 --- a/capnpc-go/any_pointer.go +++ b/capnpc-go/any_pointer.go @@ -80,7 +80,7 @@ type promiseAnyPointerRenderStrategy struct { } func (s promiseAnyPointerRenderStrategy) StructParams() any { - return s.PtrParams() + return promiseFieldAnyStructParams(s) } func (s promiseAnyPointerRenderStrategy) ListParams() any { diff --git a/capnpc-go/templateparams.go b/capnpc-go/templateparams.go index 1e0888a4..9343f1cc 100644 --- a/capnpc-go/templateparams.go +++ b/capnpc-go/templateparams.go @@ -161,6 +161,7 @@ type promiseFieldParams struct { type ( promiseFieldAnyPointerParams promiseFieldParams + promiseFieldAnyStructParams promiseFieldParams promiseCapabilityFieldParams promiseFieldParams promiseFieldAnyListParams promiseFieldParams ) diff --git a/capnpc-go/templates/promiseFieldAnyStruct b/capnpc-go/templates/promiseFieldAnyStruct new file mode 100644 index 00000000..cfd2be95 --- /dev/null +++ b/capnpc-go/templates/promiseFieldAnyStruct @@ -0,0 +1,3 @@ +func (p {{ .Node.Name }}_Future) {{ .Field.Name|title }}() *capnp.Future { + return p.Future.Field({{ .Field.Slot.Offset }}, nil) +}