From 95cf675ebe5a0d8a4566935b0d9a2675a2731d94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=91=A8=F0=9F=8F=BB=E2=80=8D=F0=9F=92=BB=20Romain=20M?= =?UTF-8?q?arcadier?= Date: Fri, 26 Feb 2021 18:03:57 +0100 Subject: [PATCH] feat(go): support direct implementation of jsii interfaces Pure go implementations of jsii interfaces are detected upon being passed as a parameter to a JavaScript call. When this happens, a `create` call is sent to the `@jsii/kernel` process with the correct list of implemented interface FQNs, and all necessary overrides records. The object is then registered into the new `ObjectStore` for later reference. When a callback request interrupts the normal request/response flow, the `kernel.Client` will handle the callback by getting the appropriate receiver object, invoking the designated go implementation, and sending the result to the `@jsii/kernel` process before resuming normal response handling. --- .../jsii-calc-test/callbacks_test.go | 26 + .../go-runtime/jsii-runtime-go/api/api.go | 33 +- .../jsii-runtime-go/kernel/callbacks.go | 144 +- .../jsii-runtime-go/kernel/client.go | 85 +- .../jsii-runtime-go/kernel/conversions.go | 61 +- .../jsii-runtime-go/kernel/create.go | 2 +- .../go-runtime/jsii-runtime-go/kernel/get.go | 2 +- .../jsii-runtime-go/kernel/invoke.go | 2 +- .../go-runtime/jsii-runtime-go/kernel/json.go | 23 +- .../go-runtime/jsii-runtime-go/kernel/load.go | 2 +- .../jsii-runtime-go/kernel/manage-object.go | 31 + .../go-runtime/jsii-runtime-go/kernel/set.go | 2 +- .../objectstore/objectstore.go | 148 + .../go-runtime/jsii-runtime-go/runtime.go | 200 +- .../typeregistry/discover-implemented.go | 43 + .../typeregistry/registration.go | 70 +- .../typeregistry/type-registry.go | 10 +- .../lib/targets/go/runtime/arguments.ts | 43 + .../targets/go/runtime/class-constructor.ts | 16 +- .../lib/targets/go/runtime/constants.ts | 2 + .../lib/targets/go/runtime/function-call.ts | 2 +- .../lib/targets/go/runtime/method-call.ts | 50 +- .../jsii-pacmak/lib/targets/go/types/class.ts | 19 + .../lib/targets/go/types/interface.ts | 19 + .../lib/targets/go/types/type-member.ts | 10 +- .../__snapshots__/target-go.test.ts.snap | 4358 +++++++++++------ 26 files changed, 3613 insertions(+), 1790 deletions(-) create mode 100644 packages/@jsii/go-runtime/jsii-calc-test/callbacks_test.go create mode 100644 packages/@jsii/go-runtime/jsii-runtime-go/kernel/manage-object.go create mode 100644 packages/@jsii/go-runtime/jsii-runtime-go/objectstore/objectstore.go create mode 100644 packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/discover-implemented.go create mode 100644 packages/jsii-pacmak/lib/targets/go/runtime/arguments.ts diff --git a/packages/@jsii/go-runtime/jsii-calc-test/callbacks_test.go b/packages/@jsii/go-runtime/jsii-calc-test/callbacks_test.go new file mode 100644 index 0000000000..3859470cef --- /dev/null +++ b/packages/@jsii/go-runtime/jsii-calc-test/callbacks_test.go @@ -0,0 +1,26 @@ +package main + +import ( + "testing" + + calc "github.com/aws/jsii/jsii-calc/go/jsiicalc/v3" +) + +func TestPureInterfacesCanBeUsedTransparently(t *testing.T) { + expected := calc.StructB{RequiredString: "It's Britney b**ch!"} + delegate := &StructReturningDelegate{expected: expected} + consumer := calc.NewConsumePureInterface(delegate) + actual := consumer.WorkItBaby() + + if actual != expected { + t.Errorf("Expected %v; actual: %v", expected, actual) + } +} + +type StructReturningDelegate struct { + expected calc.StructB +} + +func (o *StructReturningDelegate) ReturnStruct() calc.StructB { + return o.expected +} diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/api/api.go b/packages/@jsii/go-runtime/jsii-runtime-go/api/api.go index 6d455fe15c..afdb4e581d 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/api/api.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/api/api.go @@ -22,8 +22,8 @@ func (o override) isOverride() { type MethodOverride struct { override - Method *string `json:"method"` - Cookie *string `json:"cookie"` + JsiiMethod string `json:"method"` + GoMethod string `json:"cookie"` } // PropertyOverride is used to register a "go-native" implementation to be @@ -31,8 +31,8 @@ type MethodOverride struct { type PropertyOverride struct { override - Property *string `json:"property"` - Cookie *string `json:"cookie"` + JsiiProperty string `json:"property"` + GoGetter string `json:"cookie"` } func IsMethodOverride(value Override) bool { @@ -64,28 +64,3 @@ type EnumRef struct { type WireMap struct { MapData map[string]interface{} `json:"$jsii.map"` } - -type Callback struct { - CallbackID *string `json:"cbid"` - Cookie *string `json:"cookie"` - Invoke InvokeCallback `json:"invoke"` - Get GetCallback `json:"get"` - Set SetCallback `json:"set"` -} - -type InvokeCallback struct { - Method string `json:"method"` - Arguments []interface{} `json:"args"` - ObjRef ObjectRef `json:"objref"` -} - -type GetCallback struct { - Property string `json:"property"` - ObjRef ObjectRef `json:"objref"` -} - -type SetCallback struct { - Property string `json:"property"` - Value interface{} `json:"value"` - ObjRef ObjectRef `json:"objref"` -} diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/callbacks.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/callbacks.go index 0719f8a6ea..2011734e0b 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/callbacks.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/callbacks.go @@ -1,20 +1,146 @@ package kernel -import "github.com/aws/jsii-runtime-go/api" +import ( + "fmt" + "reflect" -type callbacksRequest struct { - kernelRequester + "github.com/aws/jsii-runtime-go/api" +) - API string `json:"api"` +type callback struct { + CallbackID string `json:"cbid"` + Cookie string `json:"cookie"` + Invoke *invokeCallback `json:"invoke"` + Get *getCallback `json:"get"` + Set *setCallback `json:"set"` } -type CallbacksResponse struct { - kernelResponder +func (c *callback) handle(result kernelResponse) error { + var ( + retval reflect.Value + err error + ) + if c.Invoke != nil { + retval, err = c.Invoke.handle(c.Cookie) + } else if c.Get != nil { + retval, err = c.Get.handle(c.Cookie) + } else if c.Set != nil { + retval, err = c.Set.handle(c.Cookie) + } else { + return fmt.Errorf("invalid callback object: %v", c) + } - Callbacks []api.Callback `json:"callbacks"` + type callbackResult struct { + CallbackID string `json:"cbid"` + Result interface{} `json:"result,omitempty"` + Error string `json:"err,omitempty"` + } + type completeRequest struct { + kernelRequester + callbackResult `json:"complete"` + } + + client := GetClient() + request := completeRequest{} + request.CallbackID = c.CallbackID + request.Result = client.CastPtrToRef(retval) + if err != nil { + request.Error = err.Error() + } + return client.request(request, result) +} + +type invokeCallback struct { + Method string `json:"method"` + Arguments []interface{} `json:"args"` + ObjRef api.ObjectRef `json:"objref"` +} + +func (i *invokeCallback) handle(cookie string) (retval reflect.Value, err error) { + client := GetClient() + + receiver := reflect.ValueOf(client.GetObject(i.ObjRef)) + method := receiver.MethodByName(cookie) + + return client.invoke(method, i.Arguments) +} + +type getCallback struct { + Property string `json:"property"` + ObjRef api.ObjectRef `json:"objref"` +} + +func (g *getCallback) handle(cookie string) (retval reflect.Value, err error) { + client := GetClient() + + receiver := reflect.ValueOf(client.GetObject(g.ObjRef)) + method := receiver.MethodByName(cookie) + + return client.invoke(method, nil) +} + +type setCallback struct { + Property string `json:"property"` + Value interface{} `json:"value"` + ObjRef api.ObjectRef `json:"objref"` } -func (c *client) Callbacks() (response CallbacksResponse, err error) { - err = c.request(callbacksRequest{API: "callbacks"}, &response) +func (s *setCallback) handle(cookie string) (retval reflect.Value, err error) { + client := GetClient() + + receiver := reflect.ValueOf(client.GetObject(s.ObjRef)) + method := receiver.MethodByName(fmt.Sprintf("Set%v", cookie)) + + return client.invoke(method, []interface{}{s.Value}) +} + +func (c *client) invoke(method reflect.Value, args []interface{}) (retval reflect.Value, err error) { + if !method.IsValid() { + err = fmt.Errorf("invalid method") + return + } + + // Convert the arguments, if any... + callArgs := make([]reflect.Value, len(args)) + methodType := method.Type() + numIn := methodType.NumIn() + for i, arg := range args { + var argType reflect.Type + if i < numIn { + argType = methodType.In(i) + } else if methodType.IsVariadic() { + argType = methodType.In(i - 1) + } else { + err = fmt.Errorf("too many arguments received %d for %d", len(args), numIn) + return + } + callArgs[i] = reflect.New(argType) + c.CastAndSetToPtr(arg, callArgs[i].Interface()) + } + + // Ready to catch an error if the method panics... + defer func() { + if r := recover(); r != nil { + if err == nil { + var ok bool + if err, ok = r.(error); !ok { + err = fmt.Errorf("%v", r) + } + } else { + // This is not expected - so we panic! + panic(r) + } + } + }() + + result := method.Call(callArgs) + switch len(result) { + case 0: + retval = reflect.ValueOf(nil) + case 1: + retval = result[0] + default: + err = fmt.Errorf("too many return values: %v", result) + } return } diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/client.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/client.go index ba30c07567..2f191a61ef 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/client.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/client.go @@ -13,7 +13,9 @@ import ( "runtime" "sync" + "github.com/aws/jsii-runtime-go/api" "github.com/aws/jsii-runtime-go/embedded" + "github.com/aws/jsii-runtime-go/objectstore" "github.com/aws/jsii-runtime-go/typeregistry" ) @@ -37,8 +39,9 @@ type client struct { stdin io.WriteCloser tmpdir string - types typeregistry.TypeRegistry - objects map[reflect.Value]string + types typeregistry.TypeRegistry + + objects objectstore.ObjectStore } // GetClient returns a singleton client instance, initializing one the first @@ -85,7 +88,7 @@ func CloseClient() { // was correct. func newClient() (*client, error) { clientinstance := &client{ - objects: make(map[reflect.Value]string), + objects: objectstore.NewObjectStore(), types: typeregistry.NewTypeRegistry(), } @@ -199,53 +202,7 @@ func (c *client) Types() typeregistry.TypeRegistry { } func (c *client) RegisterInstance(instance reflect.Value, instanceID string) error { - instance = reflect.Indirect(instance) - if instance.Kind() == reflect.Interface { - instance = reflect.ValueOf(instance.Interface()).Elem() - } - - if existing, found := c.objects[instance]; found && existing != instanceID { - return fmt.Errorf("attempted to register %v as %s, but it was already registered as %s", instance, instanceID, existing) - } - - var findAliases func(v reflect.Value) []reflect.Value - findAliases = func(v reflect.Value) (res []reflect.Value) { - v = reflect.Indirect(v) - t := v.Type() - numField := t.NumField() - for i := 0; i < numField; i++ { - f := t.Field(i) - if f.Name == "_" { - // Ignore any padding - continue - } - if !f.Anonymous { - // Ignore any non-anonymous field - continue - } - fv := reflect.Indirect(v.Field(i)) - if fv.Kind() == reflect.Interface { - fv = reflect.ValueOf(fv.Interface()).Elem() - } - - res = append(res, fv) - res = append(res, findAliases(fv)...) - } - return - } - - aliases := findAliases(instance) - for _, alias := range aliases { - if existing, found := c.objects[alias]; found && existing != instanceID { - return fmt.Errorf("value %v is embedded in %s, but was already assigned %s", alias, instanceID, existing) - } - } - - c.objects[instance] = instanceID - for _, alias := range aliases { - c.objects[alias] = instanceID - } - return nil + return c.objects.Register(instance, instanceID) } func (c *client) request(req kernelRequest, res kernelResponse) error { @@ -266,13 +223,29 @@ func (c *client) response(res kernelResponse) error { } -func (c *client) FindObjectRef(obj reflect.Value) (refid string, ok bool) { - obj = reflect.Indirect(obj) - if obj.Kind() == reflect.Interface { - obj = reflect.ValueOf(obj.Interface()).Elem() +func (c *client) FindObjectRef(obj reflect.Value) (string, bool) { + switch obj.Kind() { + case reflect.Struct: + // Structs can be checked only if they are addressable, meaning + // they are obtained from fields of an addressable struct. + if !obj.CanAddr() { + return "", false + } + obj = obj.Addr() + fallthrough + case reflect.Interface, reflect.Ptr: + return c.objects.InstanceID(obj) + default: + // Ohter types cannot possibly be object references! + return "", false + } +} + +func (c *client) GetObject(objref api.ObjectRef) interface{} { + if obj, ok := c.objects.GetObject(objref.InstanceID); ok { + return obj.Interface() } - refid, ok = c.objects[obj] - return + panic(fmt.Errorf("no object found for ObjectRef %v", objref)) } func (c *client) close() { diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/conversions.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/conversions.go index e26dea6c07..e68f6734af 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/conversions.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/conversions.go @@ -32,7 +32,13 @@ func (c *client) CastAndSetToPtr(ptr interface{}, data interface{}) { return } - // If return data is jsii object references, add to objects table. + // If it's currently tracked, return the current instance + if object, ok := c.objects.GetObject(ref.InstanceID); ok { + ptrVal.Set(object) + return + } + + // Otherwise, add to objects table. if err := c.Types().InitJsiiProxy(ptrVal); err == nil { if err = c.RegisterInstance(ptrVal, ref.InstanceID); err != nil { panic(err) @@ -81,6 +87,59 @@ func (c *client) CastAndSetToPtr(ptr interface{}, data interface{}) { } } +// Accepts pointers to structs that implement interfaces and searches for an +// existing object reference in the kernel. If it exists, it casts it to an +// objref for the runtime. Recursively casts types that may contain nested +// object references. +func (c *client) CastPtrToRef(dataVal reflect.Value) interface{} { + if (dataVal.Kind() == reflect.Interface || dataVal.Kind() == reflect.Ptr) && dataVal.IsNil() { + return nil + } + + switch dataVal.Kind() { + case reflect.Map: + result := api.WireMap{MapData: make(map[string]interface{})} + + iter := dataVal.MapRange() + for iter.Next() { + key := iter.Key().String() + val := iter.Value() + result.MapData[key] = c.CastPtrToRef(val) + } + + return result + + case reflect.Interface, reflect.Ptr: + if valref, valHasRef := c.FindObjectRef(dataVal); valHasRef { + return api.ObjectRef{InstanceID: valref} + } + + // In case we got a pointer to a map, slice, enum, ... + if elem := reflect.Indirect(dataVal.Elem()); elem.Kind() != reflect.Struct { + return c.CastPtrToRef(elem) + } + + if ref, err := c.ManageObject(dataVal); err != nil { + panic(err) + } else { + return ref + } + + case reflect.Slice: + refs := make([]interface{}, dataVal.Len()) + for i := 0; i < dataVal.Len(); i++ { + refs[i] = dataVal.Index(i).Interface() + } + return refs + + case reflect.String: + if enumRef, isEnumRef := c.Types().TryRenderEnumRef(dataVal); isEnumRef { + return enumRef + } + } + return dataVal.Interface() +} + func castValToRef(data interface{}) (api.ObjectRef, bool) { ref := api.ObjectRef{} ok := false diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/create.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/create.go index 6db09aef31..64a689583e 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/create.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/create.go @@ -28,5 +28,5 @@ func (c *client) Create(request CreateRequest) (response CreateResponse, err err // structs. Creating new types is required in order to avoid infinite recursion. func (r *CreateResponse) UnmarshalJSON(data []byte) error { type response CreateResponse - return unmarshalKernelResponse(data, (*response)(r)) + return unmarshalKernelResponse(data, (*response)(r), r) } diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/get.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/get.go index f08ded0f68..946c605d8b 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/get.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/get.go @@ -38,5 +38,5 @@ func (c *client) SGet(request StaticGetRequest) (response GetResponse, err error // structs. Creating new types is required in order to avoid infinite recursion. func (r *GetResponse) UnmarshalJSON(data []byte) error { type response GetResponse - return unmarshalKernelResponse(data, (*response)(r)) + return unmarshalKernelResponse(data, (*response)(r), r) } diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/invoke.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/invoke.go index 10f5c617ed..481fb063e8 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/invoke.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/invoke.go @@ -40,5 +40,5 @@ func (c *client) SInvoke(request StaticInvokeRequest) (response InvokeResponse, // structs. Creating new types is required in order to avoid infinite recursion. func (r *InvokeResponse) UnmarshalJSON(data []byte) error { type response InvokeResponse - return unmarshalKernelResponse(data, (*response)(r)) + return unmarshalKernelResponse(data, (*response)(r), r) } diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/json.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/json.go index fc05f83899..000163522b 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/json.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/json.go @@ -5,8 +5,14 @@ import ( "errors" ) -// Custom unmarshaling for kernel responses, checks for presence of `error` key on json and returns if present -func unmarshalKernelResponse(data []byte, result interface{}) error { +// unmarshalKernelResponse performs custom unmarshaling for kernel responses, checks for presence of `error` key on json +// and returns if present. +// +// The uresult parameter may be passed to json.Unmarshal so if unmarshalKernelResponse is called within a custom +// UnmarshalJSON function, it must be a type alias (otherwise, this will recurse into itself until the stack is full). +// The result parameter must point to the original result (with the original type). This unfortunate duplication is +// necessary for the proper handling of in-line callbacks. +func unmarshalKernelResponse(data []byte, uresult kernelResponse, result kernelResponse) error { datacopy := make([]byte, len(data)) copy(datacopy, data) @@ -19,5 +25,16 @@ func unmarshalKernelResponse(data []byte, result interface{}) error { return errors.New(string(err)) } - return json.Unmarshal(response["ok"], result) + // In-line callback requests interrupt the current flow, the callback handling + // logic will resume this handling once the callback request has been fulfilled. + if raw, ok := response["callback"]; ok { + callback := callback{} + if err := json.Unmarshal(raw, &callback); err != nil { + return err + } + + return callback.handle(result) + } + + return json.Unmarshal(response["ok"], uresult) } diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/load.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/load.go index 930e236c62..c7fc106198 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/load.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/load.go @@ -29,5 +29,5 @@ func (c *client) Load(request LoadRequest) (response LoadResponse, err error) { // structs. Creating new types is required in order to avoid infinite recursion. func (r *LoadResponse) UnmarshalJSON(data []byte) error { type response LoadResponse - return unmarshalKernelResponse(data, (*response)(r)) + return unmarshalKernelResponse(data, (*response)(r), r) } diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/manage-object.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/manage-object.go new file mode 100644 index 0000000000..f6a6b3eaab --- /dev/null +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/manage-object.go @@ -0,0 +1,31 @@ +package kernel + +import ( + "reflect" + + "github.com/aws/jsii-runtime-go/api" +) + +const objectFQN = "Object" + +func (c *client) ManageObject(v reflect.Value) (ref api.ObjectRef, err error) { + // Using reflect.Indirect to ensure we see pointer-receiver methods, too. + vt := reflect.Indirect(v).Type() + interfaces, overrides := c.Types().DiscoverImplementation(vt) + + var resp CreateResponse + resp, err = c.Create(CreateRequest{ + API: "create", + FQN: objectFQN, + Interfaces: interfaces, + Overrides: overrides, + }) + + if err == nil { + if err = c.objects.Register(v, resp.InstanceID); err == nil { + ref.InstanceID = resp.InstanceID + } + } + + return +} diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/set.go b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/set.go index 9732c6c02e..158fe84f2a 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/kernel/set.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/kernel/set.go @@ -38,5 +38,5 @@ func (c *client) SSet(request StaticSetRequest) (response SetResponse, err error // structs. Creating new types is required in order to avoid infinite recursion. func (r *SetResponse) UnmarshalJSON(data []byte) error { type response SetResponse - return unmarshalKernelResponse(data, (*response)(r)) + return unmarshalKernelResponse(data, (*response)(r), r) } diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/objectstore/objectstore.go b/packages/@jsii/go-runtime/jsii-runtime-go/objectstore/objectstore.go new file mode 100644 index 0000000000..5cd7828940 --- /dev/null +++ b/packages/@jsii/go-runtime/jsii-runtime-go/objectstore/objectstore.go @@ -0,0 +1,148 @@ +package objectstore + +import ( + "fmt" + "reflect" +) + +// ObjectStore tracks object instances for which an identifier +// has been associated. +type ObjectStore interface { + // Register adds a new value to this ObjectStore, with the given + // instanceID. An error will be returned if the value is not + // addressable (meaning if is not already a reflect.Ptr, and + // value.CanAddr() returns false), if it was already registered + // with a different instanceID, or if the provided instanceID has + // already be used by another value. + // + // All anonymous embedded fields will be registered as aliases + // with the same instanceID (so that InstanceID returns the wrapper + // object's instanceID correctly (ensuring jsii proxies can properly + // trigger inherited method calls). + Register(value reflect.Value, instanceID string) error + + // InstanceID returns the instanceID associated with a given object, + // if any exists. Always returns false if the provided value is not + // valid through the Register call. + InstanceID(value reflect.Value) (instanceID string, found bool) + + // GetObject returns the value associated with the provided instanceID, + // if any. + GetObject(instanceID string) (value reflect.Value, found bool) +} + +type objectStore struct { + objectToID map[uintptr]string + idToObject map[string]reflect.Value +} + +// NewObjectStore initializes a new ObjectStore value. +func NewObjectStore() ObjectStore { + return &objectStore{ + objectToID: make(map[uintptr]string), + idToObject: make(map[string]reflect.Value), + } +} + +func (o *objectStore) Register(value reflect.Value, instanceID string) error { + var err error + if value, err = canonicalValue(value); err != nil { + return err + } + ptr := value.Pointer() + + if existing, found := o.objectToID[ptr]; found { + if existing == instanceID { + return nil + } + return fmt.Errorf("attempting to register %v as %s, but it was already registered as %s", value, instanceID, existing) + } + if existing, found := o.idToObject[instanceID]; found { + if existing == value { + return nil + } + return fmt.Errorf("attempted to register %v as %s, but %v has this ID", value, instanceID, existing) + } + + aliases := findAliases(value) + for _, alias := range aliases { + ptr := alias.Pointer() + if existing, found := o.objectToID[ptr]; found && existing != instanceID { + return fmt.Errorf("value %s is embedded in %s which has ID %s, but was already assigned %s", alias, value, instanceID, existing) + } + } + + o.objectToID[ptr] = instanceID + o.idToObject[instanceID] = value + for _, alias := range aliases { + o.objectToID[alias.Pointer()] = instanceID + } + + return nil +} + +func (o *objectStore) InstanceID(value reflect.Value) (instanceID string, found bool) { + var err error + if value, err = canonicalValue(value); err == nil { + ptr := value.Pointer() + instanceID, found = o.objectToID[ptr] + } + return +} + +func (o *objectStore) GetObject(instanceID string) (value reflect.Value, found bool) { + value, found = o.idToObject[instanceID] + return +} + +// canonicalValue ensures the same reference is always considered +// for object identity (especially in maps), so that we don't get +// surprised by pointer to struct versus struct value versus opaque +// interface value, etc... +func canonicalValue(value reflect.Value) (reflect.Value, error) { + if value.Kind() == reflect.Ptr && value.Elem().Kind() == reflect.Struct { + return value, nil + } + // If this is a pointer to something, de-references it. + result := reflect.ValueOf(reflect.Indirect(value).Interface()) + + if result.Kind() != reflect.Ptr { + return reflect.Value{}, fmt.Errorf("illegal argument: %s is not a pointer", result.String()) + } + + return result, nil +} + +func findAliases(value reflect.Value) []reflect.Value { + result := []reflect.Value{} + + // Indirect so we always work on the pointer referree + value = reflect.Indirect(value) + + t := value.Type() + numField := t.NumField() + for i := 0; i < numField; i++ { + f := t.Field(i) + + // Ignore non-anonymous fields (including padding) + if !f.Anonymous { + continue + } + + fv := value.FieldByIndex(f.Index) + if fv.Kind() == reflect.Interface { + // If an interface, de-reference to get to the struct type. + fv = reflect.ValueOf(fv.Interface()) + } + if fv.Kind() == reflect.Struct { + // If a struct, get the address of the member. + fv = fv.Addr() + } + + result = append(result, fv) + // Recurse down to collect nested aliases + result = append(result, findAliases(fv)...) + } + + return result +} diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/runtime.go b/packages/@jsii/go-runtime/jsii-runtime-go/runtime.go index 14d8307106..58c033863f 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/runtime.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/runtime.go @@ -14,9 +14,24 @@ import ( // FQN represents a fully-qualified type name in the jsii type system. type FQN api.FQN -type Override api.Override -type MethodOverride api.MethodOverride -type PropertyOverride api.PropertyOverride +// Member is a runtime descriptor for a class or interface member +type Member interface { + toOverride() api.Override +} + +// MemberMethod is a runtime descriptor for a class method (implementation of Member) +type MemberMethod api.MethodOverride + +func (m MemberMethod) toOverride() api.Override { + return api.MethodOverride(m) +} + +// MemberProperty is a runtime descriptor for a class or interface property (implementation of Member) +type MemberProperty api.PropertyOverride + +func (m MemberProperty) toOverride() api.Override { + return api.PropertyOverride(m) +} // Load ensures a npm package is loaded in the jsii kernel. func Load(name string, version string, tarball []byte) { @@ -48,12 +63,17 @@ func Load(name string, version string, tarball []byte) { } // RegisterClass associates a class fully qualified name to the specified class -// interface, and proxy struct. Panics if class is not an go interface, proxy is -// not a go struct, or if the provided fqn was already used to register a different -// type. -func RegisterClass(fqn FQN, class reflect.Type, maker func() interface{}) { +// interface, member list, and proxy maker function. Panics if class is not a go +// interface, or if the provided fqn was already used to register a different type. +func RegisterClass(fqn FQN, class reflect.Type, members []Member, maker func() interface{}) { client := kernel.GetClient() - if err := client.Types().RegisterClass(api.FQN(fqn), class, maker); err != nil { + + overrides := make([]api.Override, len(members)) + for i, m := range members { + overrides[i] = m.toOverride() + } + + if err := client.Types().RegisterClass(api.FQN(fqn), class, overrides, maker); err != nil { panic(err) } } @@ -70,11 +90,17 @@ func RegisterEnum(fqn FQN, enum reflect.Type, members map[string]interface{}) { } // RegisterInterface associates an interface's fully qualified name to the -// specified interface type, and proxy maker function. Panics if iface is not an -// interface, or if the provided fqn was already used to register a different type. -func RegisterInterface(fqn FQN, iface reflect.Type, maker func() interface{}) { +// specified interface type, member list, and proxy maker function. Panics if iface is not +// an interface, or if the provided fqn was already used to register a different type. +func RegisterInterface(fqn FQN, iface reflect.Type, members []Member, maker func() interface{}) { client := kernel.GetClient() - if err := client.Types().RegisterInterface(api.FQN(fqn), iface, maker); err != nil { + + overrides := make([]api.Override, len(members)) + for i, m := range members { + overrides[i] = m.toOverride() + } + + if err := client.Types().RegisterInterface(api.FQN(fqn), iface, overrides, maker); err != nil { panic(err) } } @@ -101,11 +127,12 @@ func InitJsiiProxy(ptr interface{}) { // Create will construct a new JSII object within the kernel runtime. This is // called by jsii object constructors. -func Create(fqn FQN, args []interface{}, interfaces []FQN, overrides []Override, inst interface{}) { +func Create(fqn FQN, args interface{}, interfaces []FQN, overriddenMembers []Member, inst interface{}) { client := kernel.GetClient() - instVal := reflect.ValueOf(inst).Elem() - instType := instVal.Type() + instVal := reflect.ValueOf(inst) + structVal := instVal.Elem() + instType := structVal.Type() numField := instType.NumField() for i := 0; i < numField; i++ { field := instType.Field(i) @@ -114,7 +141,7 @@ func Create(fqn FQN, args []interface{}, interfaces []FQN, overrides []Override, } switch field.Type.Kind() { case reflect.Interface: - fieldVal := instVal.Field(i) + fieldVal := structVal.Field(i) if !fieldVal.IsNil() { continue } @@ -123,7 +150,7 @@ func Create(fqn FQN, args []interface{}, interfaces []FQN, overrides []Override, } case reflect.Struct: - fieldVal := instVal.Field(i) + fieldVal := structVal.Field(i) if !fieldVal.IsZero() { continue } @@ -137,17 +164,17 @@ func Create(fqn FQN, args []interface{}, interfaces []FQN, overrides []Override, for _, iface := range interfaces { interfaceFQNs = append(interfaceFQNs, api.FQN(iface)) } - var apiOverrides []api.Override - for _, override := range overrides { - apiOverrides = append(apiOverrides, override) + overrides := make([]api.Override, len(overriddenMembers)) + for i, member := range overriddenMembers { + overrides[i] = member.toOverride() } res, err := client.Create(kernel.CreateRequest{ API: "create", FQN: api.FQN(fqn), - Arguments: castPtrsToRef(args), + Arguments: convertArguments(args), Interfaces: interfaceFQNs, - Overrides: apiOverrides, + Overrides: overrides, }) if err != nil { @@ -159,9 +186,9 @@ func Create(fqn FQN, args []interface{}, interfaces []FQN, overrides []Override, } } -// Invoke will call a method on a jsii class instance. The response should be +// Invoke will call a method on a jsii class instance. The response will be // decoded into the expected return type for the method being called. -func Invoke(obj interface{}, method string, args []interface{}, hasReturn bool, ret interface{}) { +func Invoke(obj interface{}, method string, args interface{}, ret interface{}) { client := kernel.GetClient() // Find reference to class instance in client @@ -174,7 +201,7 @@ func Invoke(obj interface{}, method string, args []interface{}, hasReturn bool, res, err := client.Invoke(kernel.InvokeRequest{ API: "invoke", Method: method, - Arguments: castPtrsToRef(args), + Arguments: convertArguments(args), ObjRef: api.ObjectRef{ InstanceID: refid, }, @@ -184,29 +211,66 @@ func Invoke(obj interface{}, method string, args []interface{}, hasReturn bool, panic(err) } - if hasReturn { - client.CastAndSetToPtr(ret, res.Result) + client.CastAndSetToPtr(ret, res.Result) +} + +// InvokeVoid will call a void method on a jsii class instance. +func InvokeVoid(obj interface{}, method string, args interface{}) { + client := kernel.GetClient() + + // Find reference to class instance in client + refid, found := client.FindObjectRef(reflect.ValueOf(obj)) + + if !found { + panic("No Object Found") + } + + _, err := client.Invoke(kernel.InvokeRequest{ + API: "invoke", + Method: method, + Arguments: convertArguments(args), + ObjRef: api.ObjectRef{ + InstanceID: refid, + }, + }) + + if err != nil { + panic(err) } } // StaticInvoke will call a static method on a given jsii class. The response -// should be decoded into the expected return type for the method being called. -func StaticInvoke(fqn FQN, method string, args []interface{}, hasReturn bool, ret interface{}) { +// will be decoded into the expected return type for the method being called. +func StaticInvoke(fqn FQN, method string, args interface{}, ret interface{}) { client := kernel.GetClient() res, err := client.SInvoke(kernel.StaticInvokeRequest{ API: "sinvoke", FQN: api.FQN(fqn), Method: method, - Arguments: castPtrsToRef(args), + Arguments: convertArguments(args), }) if err != nil { panic(err) } - if hasReturn { - client.CastAndSetToPtr(ret, res.Result) + client.CastAndSetToPtr(ret, res.Result) +} + +// StaticInvokeVoid will call a static void method on a given jsii class. +func StaticInvokeVoid(fqn FQN, method string, args interface{}) { + client := kernel.GetClient() + + _, err := client.SInvoke(kernel.StaticInvokeRequest{ + API: "sinvoke", + FQN: api.FQN(fqn), + Method: method, + Arguments: convertArguments(args), + }) + + if err != nil { + panic(err) } } @@ -270,7 +334,7 @@ func Set(obj interface{}, property string, value interface{}) { _, err := client.Set(kernel.SetRequest{ API: "set", Property: property, - Value: castPtrToRef(value), + Value: client.CastPtrToRef(reflect.ValueOf(value)), ObjRef: api.ObjectRef{ InstanceID: refid, }, @@ -290,7 +354,7 @@ func StaticSet(fqn FQN, property string, value interface{}) { API: "sset", FQN: api.FQN(fqn), Property: property, - Value: value, + Value: client.CastPtrToRef(reflect.ValueOf(value)), }) if err != nil { @@ -298,63 +362,29 @@ func StaticSet(fqn FQN, property string, value interface{}) { } } -// Accepts pointers to structs that implement interfaces and searches for an -// existing object reference in the kernel. If it exists, it casts it to an -// objref for the runtime. Recursively casts types that may contain nested -// object references. -func castPtrToRef(data interface{}) interface{} { - if data == nil { - return data +// convertArguments turns an argument struct and produces a list of values +// ready for inclusion in an invoke or create request. +func convertArguments(args interface{}) []interface{} { + if args == nil { + return []interface{}{} } - client := kernel.GetClient() - dataVal := reflect.ValueOf(data) - - switch dataVal.Kind() { - case reflect.Map: - result := api.WireMap{MapData: make(map[string]interface{})} - - iter := dataVal.MapRange() - for iter.Next() { - key := iter.Key().String() - val := iter.Value().Interface() - result.MapData[key] = castPtrToRef(val) - } - - return result - - case reflect.Ptr: - valref, valHasRef := client.FindObjectRef(reflect.ValueOf(data)) - if valHasRef { - return api.ObjectRef{InstanceID: valref} - } - - case reflect.Slice: - refs := make([]interface{}, dataVal.Len()) - for i := 0; i < dataVal.Len(); i++ { - refs[i] = dataVal.Index(i).Interface() - } - return refs - - case reflect.String: - if enumRef, isEnumRef := client.Types().TryRenderEnumRef(dataVal); isEnumRef { - return enumRef - } + val := reflect.ValueOf(args) + if val.Kind() == reflect.Ptr { + val = val.Elem() } - return data -} -// Casts slice of data into new slice of data with pointers to interfaces -// converted to objrefs. This is useful for casting arguments to methods and -// constructors to data that can be serialized before being passed over the -// wire. -func castPtrsToRef(args []interface{}) []interface{} { - argRefs := make([]interface{}, len(args)) - for i, arg := range args { - argRefs[i] = castPtrToRef(arg) + if val.Kind() != reflect.Struct { + panic(fmt.Errorf("illegal argument, struct expected: %v", val)) + } + numField := val.NumField() + result := make([]interface{}, numField) + client := kernel.GetClient() + for i := 0; i < numField; i++ { + result[i] = client.CastPtrToRef(val.Field(i)) } - return argRefs + return result } // Close finalizes the runtime process, signalling the end of the execution to diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/discover-implemented.go b/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/discover-implemented.go new file mode 100644 index 0000000000..20a50b104c --- /dev/null +++ b/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/discover-implemented.go @@ -0,0 +1,43 @@ +package typeregistry + +import ( + "reflect" + + "github.com/aws/jsii-runtime-go/api" +) + +type DiscoverImplementationer interface { + // DiscoverImplementation determines the list of registered interfaces that + // are implemented by the provided type, and returns the list of their FQNs + // and overrides for all their combined methods and properties. + DiscoverImplementation(t reflect.Type) ([]api.FQN, []api.Override) +} + +func (t *typeRegistry) DiscoverImplementation(vt reflect.Type) (interfaces []api.FQN, overrides []api.Override) { + registeredOverrides := make(map[string]bool) + + for fqn, members := range t.typeMembers { + iface := t.fqnToType[fqn] + if iface.Kind == classType || !vt.AssignableTo(iface.Type) { + continue + } + // Found a hit, registering it's FQN in the list! + interfaces = append(interfaces, fqn) + + // Now, collecting all members thereof + for _, override := range members { + var identifier string + if api.IsMethodOverride(override) { + identifier = override.(api.MethodOverride).GoMethod + } else { + identifier = override.(api.PropertyOverride).GoGetter + } + if !registeredOverrides[identifier] { + registeredOverrides[identifier] = true + overrides = append(overrides, override) + } + } + } + + return +} diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/registration.go b/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/registration.go index ed8392437d..4d8d87bfa0 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/registration.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/registration.go @@ -7,12 +7,28 @@ import ( "github.com/aws/jsii-runtime-go/api" ) +type typeKind uint8 + +const ( + _ = iota + classType typeKind = iota + enumType typeKind = iota + interfaceType typeKind = iota + structType typeKind = iota +) + +type registeredType struct { + Type reflect.Type + Kind typeKind +} + // TypeRegisterer exposes the methods to register types with the jsii runtime // for go. type TypeRegisterer interface { - // RegisterClass maps the given FQN to the provided class interface, and proxy - // maker function. This returns an error if the class type is not a go interface. - RegisterClass(fqn api.FQN, class reflect.Type, maker func() interface{}) error + // RegisterClass maps the given FQN to the provided class interface, list of + // overrides, and proxy maker function. This returns an error if the class + // type is not a go interface. + RegisterClass(fqn api.FQN, class reflect.Type, overrides []api.Override, maker func() interface{}) error // RegisterEnum maps the given FQN to the provided enum type, and records the // provided members map (jsii member name => go value). This returns an error @@ -20,30 +36,36 @@ type TypeRegisterer interface { // member values has a type other than enm. RegisterEnum(fqn api.FQN, enm reflect.Type, members map[string]interface{}) error - // RegisterInterface maps the given FQN to the provided interface type, and - // proxy maker function. Returns an error if the provided interface is not a go - // interface. - RegisterInterface(fqn api.FQN, iface reflect.Type, maker func() interface{}) error + // RegisterInterface maps the given FQN to the provided interface type, list of + // overrides, and proxy maker function. Returns an error if the provided interface + // is not a go interface. + RegisterInterface(fqn api.FQN, iface reflect.Type, overrides []api.Override, maker func() interface{}) error // RegisterStruct maps the given FQN to the provided struct type, and struct // interface. Returns an error if the provided struct type is not a go struct. RegisterStruct(fqn api.FQN, strct reflect.Type) error } -// RegisterClass maps the given FQN to the provided class interface, and proxy -// maker function. This returns an error if the class type is not a go interface. -func (t *typeRegistry) RegisterClass(fqn api.FQN, class reflect.Type, maker func() interface{}) error { +// RegisterClass maps the given FQN to the provided class interface, list of +// overrides, and proxy maker function. This returns an error if the class +// type is not a go interface. +func (t *typeRegistry) RegisterClass(fqn api.FQN, class reflect.Type, overrides []api.Override, maker func() interface{}) error { if class.Kind() != reflect.Interface { return fmt.Errorf("the provided class is not an interface: %v", class) } - if existing, exists := t.fqnToType[fqn]; exists && existing != class { + if existing, exists := t.fqnToType[fqn]; exists && existing.Type != class { return fmt.Errorf("another type was already registered with %s: %v", fqn, existing) } - t.fqnToType[fqn] = class + t.fqnToType[fqn] = registeredType{class, classType} t.proxyMakers[class] = maker + // Skipping registration if there are no members, as this would have no use. + if len(overrides) > 0 { + t.typeMembers[fqn] = append([]api.Override{}, overrides...) + } + return nil } @@ -55,7 +77,7 @@ func (t *typeRegistry) RegisterEnum(fqn api.FQN, enm reflect.Type, members map[s if enm.Kind() != reflect.String { return fmt.Errorf("the provided enum is not a string derivative: %v", enm) } - if existing, exists := t.fqnToType[fqn]; exists && existing != enm { + if existing, exists := t.fqnToType[fqn]; exists && existing.Type != enm { return fmt.Errorf("another type was already registered with %s: %v", fqn, existing) } for memberName, memberVal := range members { @@ -67,6 +89,7 @@ func (t *typeRegistry) RegisterEnum(fqn api.FQN, enm reflect.Type, members map[s // if the pre-condition fails at any point. This is done in a second loop. } + t.fqnToType[fqn] = registeredType{enm, enumType} t.typeToEnumFQN[enm] = fqn for memberName, memberVal := range members { memberFQN := fmt.Sprintf("%s/%s", fqn, memberName) @@ -76,21 +99,26 @@ func (t *typeRegistry) RegisterEnum(fqn api.FQN, enm reflect.Type, members map[s return nil } -// RegisterInterface maps the given FQN to the provided interface type, and -// proxy maker function. Returns an error if the provided interface is not a go -// interface. -func (t *typeRegistry) RegisterInterface(fqn api.FQN, iface reflect.Type, maker func() interface{}) error { +// RegisterInterface maps the given FQN to the provided interface type, list of +// overrides, and proxy maker function. Returns an error if the provided interface +// is not a go interface. +func (t *typeRegistry) RegisterInterface(fqn api.FQN, iface reflect.Type, overrides []api.Override, maker func() interface{}) error { if iface.Kind() != reflect.Interface { return fmt.Errorf("the provided interface is not an interface: %v", iface) } - if existing, exists := t.fqnToType[fqn]; exists && existing != iface { + if existing, exists := t.fqnToType[fqn]; exists && existing.Type != iface { return fmt.Errorf("another type was already registered with %s: %v", fqn, existing) } - t.fqnToType[fqn] = iface + t.fqnToType[fqn] = registeredType{iface, interfaceType} t.proxyMakers[iface] = maker + // Skipping registration if there are no members, as this would have no use. + if len(overrides) > 0 { + t.typeMembers[fqn] = append([]api.Override{}, overrides...) + } + return nil } @@ -102,7 +130,7 @@ func (t *typeRegistry) RegisterStruct(fqn api.FQN, strct reflect.Type) error { return fmt.Errorf("the provided struct is not a struct: %v", strct) } - if existing, exists := t.fqnToType[fqn]; exists && existing != strct { + if existing, exists := t.fqnToType[fqn]; exists && existing.Type != strct { return fmt.Errorf("another type was already registered with %s: %v", fqn, existing) } @@ -122,7 +150,7 @@ func (t *typeRegistry) RegisterStruct(fqn api.FQN, strct reflect.Type) error { fields = append(fields, field) } - t.fqnToType[fqn] = strct + t.fqnToType[fqn] = registeredType{strct, structType} t.structFields[strct] = fields return nil diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/type-registry.go b/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/type-registry.go index a62fca9396..4bdad2f04f 100644 --- a/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/type-registry.go +++ b/packages/@jsii/go-runtime/jsii-runtime-go/typeregistry/type-registry.go @@ -11,6 +11,7 @@ import ( // go as well as methods to work with registered types. type TypeRegistry interface { TypeRegisterer + DiscoverImplementationer // StructFields returns the list of fields that make a registered jsii struct. StructFields(typ reflect.Type) (fields []reflect.StructField, found bool) @@ -41,7 +42,7 @@ type typeRegistry struct { // FQN represents... This will be the second argument of provided to a // register* function. // enums are not included - fqnToType map[api.FQN]reflect.Type + fqnToType map[api.FQN]registeredType // map enum member FQNs (e.g. "jsii-calc.StringEnum/A") to the corresponding // go const for this member. @@ -56,16 +57,21 @@ type typeRegistry struct { // map registered interface types to a proxy maker function proxyMakers map[reflect.Type]func() interface{} + + // typeMembers maps each class or interface FQN to the set of members it implements + // in the form of api.Override values. + typeMembers map[api.FQN][]api.Override } // NewTypeRegistry creates a new type registry. func NewTypeRegistry() TypeRegistry { return &typeRegistry{ - fqnToType: make(map[api.FQN]reflect.Type), + fqnToType: make(map[api.FQN]registeredType), fqnToEnumMember: make(map[string]interface{}), typeToEnumFQN: make(map[reflect.Type]api.FQN), structFields: make(map[reflect.Type][]reflect.StructField), proxyMakers: make(map[reflect.Type]func() interface{}), + typeMembers: make(map[api.FQN][]api.Override), } } diff --git a/packages/jsii-pacmak/lib/targets/go/runtime/arguments.ts b/packages/jsii-pacmak/lib/targets/go/runtime/arguments.ts new file mode 100644 index 0000000000..80ee63e3f6 --- /dev/null +++ b/packages/jsii-pacmak/lib/targets/go/runtime/arguments.ts @@ -0,0 +1,43 @@ +import { CodeMaker, toPascalCase } from 'codemaker'; + +import { GoClassConstructor, GoMethod } from '../types'; + +/** + * Emits the arguments as an inline struct type, so that the "declared" type + * of parameters is available to the runtime library when processing them. + * + * @param code where to emit the generated code + * @param callable the callable for which an arguments object is needed. + */ +export function emitArgumentObject( + code: CodeMaker, + callable: GoMethod | GoClassConstructor, +): void { + if (callable.parameters.length === 0) { + // No parameters is signaled witn nil + code.line('nil, // no parameters'); + return; + } + + const pkg = callable.parent.pkg; + + // Declare the struct shape. Yes - those arguments are positional... But go + // structs actually preserve declaration order (failing to do so would be a + // severe API breaking change, so would require a new language major version). + code.open(`struct {`); + for (const param of callable.parameters) { + // Fields must be exported, or the runtime may not be able to extract their + // value, which would be... annoying. + const fieldName = toPascalCase(param.name); + // No trailing comma, this is a type definition + code.line(`${fieldName} ${param.reference.scopedInterfaceName(pkg)}`); + } + code.close(false); + + // And fill it with values + code.open('}{'); + for (const param of callable.parameters) { + code.line(`${param.name},`); + } + code.close('},'); +} diff --git a/packages/jsii-pacmak/lib/targets/go/runtime/class-constructor.ts b/packages/jsii-pacmak/lib/targets/go/runtime/class-constructor.ts index 16e4d9fa65..7ea19dba82 100644 --- a/packages/jsii-pacmak/lib/targets/go/runtime/class-constructor.ts +++ b/packages/jsii-pacmak/lib/targets/go/runtime/class-constructor.ts @@ -1,7 +1,8 @@ import { CodeMaker } from 'codemaker'; import { GoClassConstructor } from '../types'; -import { JSII_CREATE_FUNC, JSII_OVERRIDE, JSII_FQN } from './constants'; +import { emitArgumentObject } from './arguments'; +import { JSII_CREATE_FUNC, JSII_FQN } from './constants'; import { slugify, emitInitialization } from './util'; export class ClassConstructor { @@ -9,6 +10,7 @@ export class ClassConstructor { public emit(code: CodeMaker) { emitInitialization(code); + code.line(); const resultVar = slugify( this.parent.parent.proxyName[0], @@ -21,13 +23,14 @@ export class ClassConstructor { code.open(`${JSII_CREATE_FUNC}(`); code.line(`"${this.parent.parent.fqn}",`); - code.line(`${this.argsString},`); + emitArgumentObject(code, this.parent); code.line(`${this.interfacesString},`); - code.line(`[]${JSII_OVERRIDE}{},`); + code.line('nil, // no overrides'); code.line(`&${resultVar},`); code.close(`)`); + code.line(); code.line(`return &${resultVar}`); } @@ -37,11 +40,4 @@ export class ClassConstructor { .join(', '); return `[]${JSII_FQN}{${iFaceList}}`; } - - public get argsString(): string { - const argsList = this.parent.parameters - .map((param) => param.name) - .join(', '); - return `[]interface{}{${argsList}}`; - } } diff --git a/packages/jsii-pacmak/lib/targets/go/runtime/constants.ts b/packages/jsii-pacmak/lib/targets/go/runtime/constants.ts index dfedb9145d..1d9b4275c6 100644 --- a/packages/jsii-pacmak/lib/targets/go/runtime/constants.ts +++ b/packages/jsii-pacmak/lib/targets/go/runtime/constants.ts @@ -13,8 +13,10 @@ export const JSII_INIT_ALIAS = '_init_'; export const JSII_CREATE_FUNC = `${JSII_RT_ALIAS}.Create`; // JSII invoke request export const JSII_INVOKE_FUNC = `${JSII_RT_ALIAS}.Invoke`; +export const JSII_INVOKE_VOID_FUNC = `${JSII_RT_ALIAS}.InvokeVoid`; // JSII static invoke export const JSII_SINVOKE_FUNC = `${JSII_RT_ALIAS}.StaticInvoke`; +export const JSII_SINVOKE_VOID_FUNC = `${JSII_RT_ALIAS}.StaticInvokeVoid`; // JSII get request export const JSII_GET_FUNC = `${JSII_RT_ALIAS}.Get`; diff --git a/packages/jsii-pacmak/lib/targets/go/runtime/function-call.ts b/packages/jsii-pacmak/lib/targets/go/runtime/function-call.ts index b5a8c6178b..739f7ce816 100644 --- a/packages/jsii-pacmak/lib/targets/go/runtime/function-call.ts +++ b/packages/jsii-pacmak/lib/targets/go/runtime/function-call.ts @@ -4,7 +4,7 @@ export abstract class FunctionCall { public constructor(public readonly parent: GoTypeMember) {} protected get returnsVal(): boolean { - return Boolean(this.parent.reference && !this.parent.reference.void); + return !this.parent.reference?.void; } protected get returnType(): string { diff --git a/packages/jsii-pacmak/lib/targets/go/runtime/method-call.ts b/packages/jsii-pacmak/lib/targets/go/runtime/method-call.ts index 3eaf264f4f..a07fb8e111 100644 --- a/packages/jsii-pacmak/lib/targets/go/runtime/method-call.ts +++ b/packages/jsii-pacmak/lib/targets/go/runtime/method-call.ts @@ -1,7 +1,13 @@ import { CodeMaker } from 'codemaker'; import { GoMethod } from '../types'; -import { JSII_INVOKE_FUNC, JSII_SINVOKE_FUNC } from './constants'; +import { emitArgumentObject } from './arguments'; +import { + JSII_INVOKE_FUNC, + JSII_INVOKE_VOID_FUNC, + JSII_SINVOKE_FUNC, + JSII_SINVOKE_VOID_FUNC, +} from './constants'; import { FunctionCall } from './function-call'; import { slugify, emitInitialization } from './util'; @@ -20,37 +26,52 @@ export class MethodCall extends FunctionCall { } private emitDynamic(code: CodeMaker) { - code.line(`var ${this.returnVarName} ${this.returnType}`); - code.open(`${JSII_INVOKE_FUNC}(`); + if (this.returnsVal) { + code.line(`var ${this.returnVarName} ${this.returnType}`); + code.line(); + code.open(`${JSII_INVOKE_FUNC}(`); + } else { + code.open(`${JSII_INVOKE_VOID_FUNC}(`); + } code.line(`${this.parent.instanceArg},`); code.line(`"${this.parent.method.name}",`); - code.line(`${this.argsString},`); - code.line(`${this.returnsVal ? 'true' : 'false'},`); - code.line(`&${this.returnVarName},`); + emitArgumentObject(code, this.parent); + if (this.returnsVal) { + code.line(`&${this.returnVarName},`); + } code.close(`)`); if (this.returnsVal) { + code.line(); code.line(`return ${this.returnVarName}`); } } private emitStatic(code: CodeMaker) { emitInitialization(code); - code.line(`var ${this.returnVarName} ${this.returnType}`); + code.line(); - code.open(`${JSII_SINVOKE_FUNC}(`); + if (this.returnsVal) { + code.line(`var ${this.returnVarName} ${this.returnType}`); + code.line(); + code.open(`${JSII_SINVOKE_FUNC}(`); + } else { + code.open(`${JSII_SINVOKE_VOID_FUNC}(`); + } code.line(`"${this.parent.parent.fqn}",`); code.line(`"${this.parent.method.name}",`); - code.line(`${this.argsString},`); - code.line(`${this.returnsVal ? 'true' : 'false'},`); - code.line(`&${this.returnVarName},`); + emitArgumentObject(code, this.parent); + if (this.returnsVal) { + code.line(`&${this.returnVarName},`); + } code.close(`)`); if (this.returnsVal) { + code.line(); code.line(`return ${this.returnVarName}`); } } @@ -68,11 +89,4 @@ export class MethodCall extends FunctionCall { private get inStatic(): boolean { return this.parent.method.static; } - - private get argsString(): string { - const argsList = this.parent.parameters - .map((param) => param.name) - .join(', '); - return `[]interface{}{${argsList}}`; - } } diff --git a/packages/jsii-pacmak/lib/targets/go/types/class.ts b/packages/jsii-pacmak/lib/targets/go/types/class.ts index 515f22ff35..f8afb72f98 100644 --- a/packages/jsii-pacmak/lib/targets/go/types/class.ts +++ b/packages/jsii-pacmak/lib/targets/go/types/class.ts @@ -152,6 +152,25 @@ export class GoClass extends GoType { code.open(`${JSII_RT_ALIAS}.RegisterClass(`); code.line(`"${this.fqn}",`); code.line(`reflect.TypeOf((*${this.name})(nil)).Elem(),`); + + const allMembers = [ + ...this.type.allMethods + .filter((method) => !method.static) + .map((method) => new ClassMethod(this, method)), + ...this.type.allProperties + .filter((property) => !property.static) + .map((property) => new GoProperty(this, property)), + ].sort(comparators.byName); + if (allMembers.length === 0) { + code.line('nil, // no members'); + } else { + code.open(`[]${JSII_RT_ALIAS}.Member{`); + for (const member of allMembers) { + code.line(`${member.override},`); + } + code.close('},'); + } + this.emitProxyMakerFunction(code, this.baseTypes); code.close(')'); } diff --git a/packages/jsii-pacmak/lib/targets/go/types/interface.ts b/packages/jsii-pacmak/lib/targets/go/types/interface.ts index 65114468f2..8d3509b232 100644 --- a/packages/jsii-pacmak/lib/targets/go/types/interface.ts +++ b/packages/jsii-pacmak/lib/targets/go/types/interface.ts @@ -127,6 +127,25 @@ export class GoInterface extends GoType { code.open(`${JSII_RT_ALIAS}.RegisterInterface(`); code.line(`"${this.fqn}",`); code.line(`reflect.TypeOf((*${this.name})(nil)).Elem(),`); + + const allMembers = [ + ...this.type.allMethods + .filter((method) => !method.static) + .map((method) => new InterfaceMethod(this, method)), + ...this.type.allProperties + .filter((property) => !property.static) + .map((property) => new GoProperty(this, property)), + ].sort(comparators.byName); + if (allMembers.length === 0) { + code.line('nil, // no members'); + } else { + code.open(`[]${JSII_RT_ALIAS}.Member{`); + for (const member of allMembers) { + code.line(`${member.override},`); + } + code.close('},'); + } + this.emitProxyMakerFunction(code, this.extends); code.close(')'); } diff --git a/packages/jsii-pacmak/lib/targets/go/types/type-member.ts b/packages/jsii-pacmak/lib/targets/go/types/type-member.ts index 7021e2c805..5dc3f235b1 100644 --- a/packages/jsii-pacmak/lib/targets/go/types/type-member.ts +++ b/packages/jsii-pacmak/lib/targets/go/types/type-member.ts @@ -2,7 +2,7 @@ import { toPascalCase } from 'codemaker'; import { Method, Parameter, Property } from 'jsii-reflect'; import { EmitContext } from '../emit-context'; -import { GetProperty, SetProperty } from '../runtime'; +import { GetProperty, JSII_RT_ALIAS, SetProperty } from '../runtime'; import { substituteReservedWords } from '../util'; import { GoClass, GoType, GoInterface, GoTypeRef } from './index'; @@ -64,6 +64,10 @@ export class GoProperty implements GoTypeMember { return this.parent.proxyName.substring(0, 1).toLowerCase(); } + public get override(): string { + return `${JSII_RT_ALIAS}.MemberProperty{JsiiProperty: "${this.property.name}", GoGetter: "${this.name}"}`; + } + public emitStructMember({ code, documenter }: EmitContext) { documenter.emit(this.property.docs); const memberType = @@ -193,6 +197,10 @@ export abstract class GoMethod implements GoTypeMember { return this.parent.name.substring(0, 1).toLowerCase(); } + public get override(): string { + return `${JSII_RT_ALIAS}.MemberMethod{JsiiMethod: "${this.method.name}", GoMethod: "${this.name}"}`; + } + public paramString(): string { return this.parameters.length === 0 ? '' diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.ts.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.ts.snap index 0fa6db0132..1d650cd6da 100644 --- a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.ts.snap +++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.ts.snap @@ -293,28 +293,31 @@ type base struct { func NewBase() Base { _init_.Initialize() + b := base{} _jsii_.Create( "@scope/jsii-calc-base.Base", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &b, ) + return &b } // Returns: the name of the class (to verify native type names are created for derived classes). func (b *base) TypeName() interface{} { var returns interface{} + _jsii_.Invoke( b, "typeName", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -341,13 +344,10 @@ type iBaseInterface struct { } func (i *iBaseInterface) Bar() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "bar", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -362,27 +362,31 @@ type staticConsumer struct { func NewStaticConsumer() StaticConsumer { _init_.Initialize() + s := staticConsumer{} _jsii_.Create( "@scope/jsii-calc-base.StaticConsumer", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } func StaticConsumer_Consume(args interface{}) { _init_.Initialize() - var returns interface{} - _jsii_.StaticInvoke( + + _jsii_.StaticInvokeVoid( "@scope/jsii-calc-base.StaticConsumer", "consume", - []interface{}{args}, - false, - &returns, + struct { + Args interface{} + }{ + args, + }, ) } @@ -402,6 +406,9 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-base.Base", reflect.TypeOf((*Base)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + }, func() interface{} { return &base{} }, @@ -413,6 +420,10 @@ func init() { _jsii_.RegisterInterface( "@scope/jsii-calc-base.IBaseInterface", reflect.TypeOf((*IBaseInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "bar", GoMethod: "Bar"}, + _jsii_.MemberMethod{JsiiMethod: "foo", GoMethod: "Foo"}, + }, func() interface{} { i := iBaseInterface{} _jsii_.InitJsiiProxy(&i.IVeryBaseInterface) @@ -422,6 +433,7 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-base.StaticConsumer", reflect.TypeOf((*StaticConsumer)(nil)).Elem(), + nil, // no members func() interface{} { return &staticConsumer{} }, @@ -718,13 +730,10 @@ type iVeryBaseInterface struct { } func (i *iVeryBaseInterface) Foo() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "foo", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -738,13 +747,15 @@ type staticConsumer struct { func StaticConsumer_Consume(_args interface{}) { _init_.Initialize() - var returns interface{} - _jsii_.StaticInvoke( + + _jsii_.StaticInvokeVoid( "@scope/jsii-calc-base-of-base.StaticConsumer", "consume", - []interface{}{_args}, - false, - &returns, + struct { + Args interface{} + }{ + _args, + }, ) } @@ -761,28 +772,31 @@ type very struct { func NewVery() Very { _init_.Initialize() + v := very{} _jsii_.Create( "@scope/jsii-calc-base-of-base.Very", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &v, ) + return &v } // Experimental. func (v *very) Hey() float64 { var returns float64 + _jsii_.Invoke( v, "hey", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -806,6 +820,9 @@ func init() { _jsii_.RegisterInterface( "@scope/jsii-calc-base-of-base.IVeryBaseInterface", reflect.TypeOf((*IVeryBaseInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "foo", GoMethod: "Foo"}, + }, func() interface{} { return &iVeryBaseInterface{} }, @@ -813,6 +830,7 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-base-of-base.StaticConsumer", reflect.TypeOf((*StaticConsumer)(nil)).Elem(), + nil, // no members func() interface{} { return &staticConsumer{} }, @@ -820,6 +838,9 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-base-of-base.Very", reflect.TypeOf((*Very)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hey", GoMethod: "Hey"}, + }, func() interface{} { return &very{} }, @@ -1191,13 +1212,14 @@ type iFriendly struct { func (i *iFriendly) Hello() string { var returns string + _jsii_.Invoke( i, "hello", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -1218,13 +1240,10 @@ type iThreeLevelsInterface struct { } func (i *iThreeLevelsInterface) Baz() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "baz", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -1280,15 +1299,21 @@ func (n *number) Value() float64 { // Creates a Number object. func NewNumber(value float64) Number { _init_.Initialize() + n := number{} _jsii_.Create( "@scope/jsii-calc-lib.Number", - []interface{}{value}, + struct { + Value float64 + }{ + value, + }, []_jsii_.FQN{"@scope/jsii-calc-lib.IDoublable"}, - []_jsii_.Override{}, + nil, // no overrides &n, ) + return &n } @@ -1296,13 +1321,14 @@ func NewNumber(value float64) Number { // Deprecated. func (n *number) ToString() string { var returns string + _jsii_.Invoke( n, "toString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -1310,13 +1336,14 @@ func (n *number) ToString() string { // Deprecated. func (n *number) TypeName() interface{} { var returns interface{} + _jsii_.Invoke( n, "typeName", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -1346,15 +1373,17 @@ func (n *numericValue) Value() float64 { func NewNumericValue() NumericValue { _init_.Initialize() + n := numericValue{} _jsii_.Create( "@scope/jsii-calc-lib.NumericValue", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &n, ) + return &n } @@ -1362,13 +1391,14 @@ func NewNumericValue() NumericValue { // Deprecated. func (n *numericValue) ToString() string { var returns string + _jsii_.Invoke( n, "toString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -1386,15 +1416,17 @@ type operation struct { func NewOperation() Operation { _init_.Initialize() + o := operation{} _jsii_.Create( "@scope/jsii-calc-lib.Operation", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } @@ -1402,13 +1434,14 @@ func NewOperation() Operation { // Deprecated. func (o *operation) ToString() string { var returns string + _jsii_.Invoke( o, "toString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -1456,6 +1489,9 @@ func init() { _jsii_.RegisterInterface( "@scope/jsii-calc-lib.IDoublable", reflect.TypeOf((*IDoublable)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "doubleValue", GoGetter: "DoubleValue"}, + }, func() interface{} { return &iDoublable{} }, @@ -1463,6 +1499,9 @@ func init() { _jsii_.RegisterInterface( "@scope/jsii-calc-lib.IFriendly", reflect.TypeOf((*IFriendly)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + }, func() interface{} { return &iFriendly{} }, @@ -1470,6 +1509,11 @@ func init() { _jsii_.RegisterInterface( "@scope/jsii-calc-lib.IThreeLevelsInterface", reflect.TypeOf((*IThreeLevelsInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "bar", GoMethod: "Bar"}, + _jsii_.MemberMethod{JsiiMethod: "baz", GoMethod: "Baz"}, + _jsii_.MemberMethod{JsiiMethod: "foo", GoMethod: "Foo"}, + }, func() interface{} { i := iThreeLevelsInterface{} _jsii_.InitJsiiProxy(&i.IBaseInterface) @@ -1483,6 +1527,12 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-lib.Number", reflect.TypeOf((*Number)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "doubleValue", GoGetter: "DoubleValue"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { n := number{} _jsii_.InitJsiiProxy(&n.numericValue) @@ -1493,6 +1543,11 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-lib.NumericValue", reflect.TypeOf((*NumericValue)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { n := numericValue{} _jsii_.InitJsiiProxy(&n.Base) @@ -1502,6 +1557,11 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-lib.Operation", reflect.TypeOf((*Operation)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { o := operation{} _jsii_.InitJsiiProxy(&o.numericValue) @@ -1579,15 +1639,17 @@ func (n *nestedClass) Property() string { func NewNestedClass() NestedClass { _init_.Initialize() + n := nestedClass{} _jsii_.Create( "@scope/jsii-calc-lib.submodule.NestingClass.NestedClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &n, ) + return &n } @@ -1620,28 +1682,35 @@ type reflector struct { func NewReflector() Reflector { _init_.Initialize() + r := reflector{} _jsii_.Create( "@scope/jsii-calc-lib.submodule.Reflector", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &r, ) + return &r } // Deprecated. func (r *reflector) AsMap(reflectable IReflectable) map[string]interface{} { var returns map[string]interface{} + _jsii_.Invoke( r, "asMap", - []interface{}{reflectable}, - true, + struct { + Reflectable IReflectable + }{ + reflectable, + }, &returns, ) + return returns } @@ -1661,6 +1730,9 @@ func init() { _jsii_.RegisterInterface( "@scope/jsii-calc-lib.submodule.IReflectable", reflect.TypeOf((*IReflectable)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "entries", GoGetter: "Entries"}, + }, func() interface{} { return &iReflectable{} }, @@ -1668,6 +1740,7 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-lib.submodule.NestingClass", reflect.TypeOf((*NestingClass)(nil)).Elem(), + nil, // no members func() interface{} { return &nestingClass{} }, @@ -1675,6 +1748,9 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-lib.submodule.NestingClass.NestedClass", reflect.TypeOf((*NestedClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "property", GoGetter: "Property"}, + }, func() interface{} { return &nestedClass{} }, @@ -1690,6 +1766,9 @@ func init() { _jsii_.RegisterClass( "@scope/jsii-calc-lib.submodule.Reflector", reflect.TypeOf((*Reflector)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "asMap", GoMethod: "AsMap"}, + }, func() interface{} { return &reflector{} }, @@ -1726,18 +1805,7 @@ exports[`Generated code for "jsii-calc": / 1`] = ` ┣━ 📄 jsiicalc.go ┣━ 📄 jsiicalc.init.go ┣━ 📄 LICENSE - ┣━ 📁 nodirect - ┃ ┣━ 📄 nodirect.go - ┃ ┣━ 📁 sub1 - ┃ ┃ ┣━ 📄 sub1.go - ┃ ┃ ┗━ 📄 sub1.init.go - ┃ ┗━ 📁 sub2 - ┃ ┣━ 📄 sub2.go - ┃ ┗━ 📄 sub2.init.go ┣━ 📄 NOTICE - ┣━ 📁 onlystatic - ┃ ┣━ 📄 onlystatic.go - ┃ ┗━ 📄 onlystatic.init.go ┣━ 📁 pythonself ┃ ┣━ 📄 pythonself.go ┃ ┗━ 📄 pythonself.init.go @@ -2092,15 +2160,17 @@ func (c *compositeOperation) Value() float64 { func NewCompositeOperation() CompositeOperation { _init_.Initialize() + c := compositeOperation{} _jsii_.Create( "jsii-calc.composition.CompositeOperation", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -2131,13 +2201,14 @@ func (c *compositeOperation) SetStringStyle(val CompositionStringStyle) { // (deprecated) String representation of the value. func (c *compositeOperation) ToString() string { var returns string + _jsii_.Invoke( c, "toString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -2165,6 +2236,15 @@ func init() { _jsii_.RegisterClass( "jsii-calc.composition.CompositeOperation", reflect.TypeOf((*CompositeOperation)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "decorationPostfixes", GoGetter: "DecorationPostfixes"}, + _jsii_.MemberProperty{JsiiProperty: "decorationPrefixes", GoGetter: "DecorationPrefixes"}, + _jsii_.MemberProperty{JsiiProperty: "expression", GoGetter: "Expression"}, + _jsii_.MemberProperty{JsiiProperty: "stringStyle", GoGetter: "StringStyle"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { c := compositeOperation{} _jsii_.InitJsiiProxy(&c.Operation) @@ -2214,15 +2294,17 @@ func (b *base) Prop() string { func NewBase() Base { _init_.Initialize() + b := base{} _jsii_.Create( "jsii-calc.DerivedClassHasNoProperties.Base", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &b, ) + return &b } @@ -2245,15 +2327,17 @@ type derived struct { func NewDerived() Derived { _init_.Initialize() + d := derived{} _jsii_.Create( "jsii-calc.DerivedClassHasNoProperties.Derived", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } @@ -2273,6 +2357,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DerivedClassHasNoProperties.Base", reflect.TypeOf((*Base)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "prop", GoGetter: "Prop"}, + }, func() interface{} { return &base{} }, @@ -2280,6 +2367,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DerivedClassHasNoProperties.Derived", reflect.TypeOf((*Derived)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "prop", GoGetter: "Prop"}, + }, func() interface{} { d := derived{} _jsii_.InitJsiiProxy(&d.base) @@ -2335,15 +2425,17 @@ func (f *foo) Bar() string { func NewFoo() Foo { _init_.Initialize() + f := foo{} _jsii_.Create( "jsii-calc.InterfaceInNamespaceIncludesClasses.Foo", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &f, ) + return &f } @@ -2375,6 +2467,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.InterfaceInNamespaceIncludesClasses.Foo", reflect.TypeOf((*Foo)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "bar", GoGetter: "Bar"}, + }, func() interface{} { return &foo{} }, @@ -2492,39 +2587,47 @@ func (a *abstractClass) PropFromInterface() string { func NewAbstractClass() AbstractClass { _init_.Initialize() + a := abstractClass{} _jsii_.Create( "jsii-calc.AbstractClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.IInterfaceImplementedByAbstractClass"}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } func (a *abstractClass) AbstractMethod(name string) string { var returns string + _jsii_.Invoke( a, "abstractMethod", - []interface{}{name}, - true, + struct { + Name string + }{ + name, + }, &returns, ) + return returns } func (a *abstractClass) NonAbstractMethod() float64 { var returns float64 + _jsii_.Invoke( a, "nonAbstractMethod", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -2550,15 +2653,17 @@ func (a *abstractClassBase) AbstractProperty() string { func NewAbstractClassBase() AbstractClassBase { _init_.Initialize() + a := abstractClassBase{} _jsii_.Create( "jsii-calc.AbstractClassBase", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } @@ -2586,39 +2691,43 @@ func (a *abstractClassReturner) ReturnAbstractFromProperty() AbstractClassBase { func NewAbstractClassReturner() AbstractClassReturner { _init_.Initialize() + a := abstractClassReturner{} _jsii_.Create( "jsii-calc.AbstractClassReturner", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } func (a *abstractClassReturner) GiveMeAbstract() AbstractClass { var returns AbstractClass + _jsii_.Invoke( a, "giveMeAbstract", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (a *abstractClassReturner) GiveMeInterface() IInterfaceImplementedByAbstractClass { var returns IInterfaceImplementedByAbstractClass + _jsii_.Invoke( a, "giveMeInterface", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -2647,15 +2756,17 @@ func (a *abstractSuite) Property() string { func NewAbstractSuite() AbstractSuite { _init_.Initialize() + a := abstractSuite{} _jsii_.Create( "jsii-calc.AbstractSuite", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } @@ -2669,26 +2780,36 @@ func (a *abstractSuite) SetProperty(val string) { func (a *abstractSuite) SomeMethod(str string) string { var returns string + _jsii_.Invoke( a, "someMethod", - []interface{}{str}, - true, + struct { + Str string + }{ + str, + }, &returns, ) + return returns } // Sets \`seed\` to \`this.property\`, then calls \`someMethod\` with \`this.property\` and returns the result. func (a *abstractSuite) WorkItAll(seed string) string { var returns string + _jsii_.Invoke( a, "workItAll", - []interface{}{seed}, - true, + struct { + Seed string + }{ + seed, + }, &returns, ) + return returns } @@ -2718,28 +2839,37 @@ func (a *add) Value() float64 { // Creates a BinaryOperation. func NewAdd(lhs scopejsiicalclib.NumericValue, rhs scopejsiicalclib.NumericValue) Add { _init_.Initialize() + a := add{} _jsii_.Create( "jsii-calc.Add", - []interface{}{lhs, rhs}, + struct { + Lhs scopejsiicalclib.NumericValue + Rhs scopejsiicalclib.NumericValue + }{ + lhs, + rhs, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } // (deprecated) String representation of the value. func (a *add) ToString() string { var returns string + _jsii_.Invoke( a, "toString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -2988,15 +3118,17 @@ func (a *allTypes) UnknownProperty() interface{} { func NewAllTypes() AllTypes { _init_.Initialize() + a := allTypes{} _jsii_.Create( "jsii-calc.AllTypes", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } @@ -3145,37 +3277,44 @@ func (a *allTypes) SetUnknownProperty(val interface{}) { } func (a *allTypes) AnyIn(inp interface{}) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( a, "anyIn", - []interface{}{inp}, - false, - &returns, + struct { + Inp interface{} + }{ + inp, + }, ) } func (a *allTypes) AnyOut() interface{} { var returns interface{} + _jsii_.Invoke( a, "anyOut", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (a *allTypes) EnumMethod(value StringEnum) StringEnum { var returns StringEnum + _jsii_.Invoke( a, "enumMethod", - []interface{}{value}, - true, + struct { + Value StringEnum + }{ + value, + }, &returns, ) + return returns } @@ -3201,62 +3340,80 @@ type allowedMethodNames struct { func NewAllowedMethodNames() AllowedMethodNames { _init_.Initialize() + a := allowedMethodNames{} _jsii_.Create( "jsii-calc.AllowedMethodNames", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } func (a *allowedMethodNames) GetBar(_p1 string, _p2 float64) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( a, "getBar", - []interface{}{_p1, _p2}, - false, - &returns, + struct { + P1 string + P2 float64 + }{ + _p1, + _p2, + }, ) } // getXxx() is not allowed (see negatives), but getXxx(a, ...) is okay. func (a *allowedMethodNames) GetFoo(withParam string) string { var returns string + _jsii_.Invoke( a, "getFoo", - []interface{}{withParam}, - true, + struct { + WithParam string + }{ + withParam, + }, &returns, ) + return returns } func (a *allowedMethodNames) SetBar(_x string, _y float64, _z bool) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( a, "setBar", - []interface{}{_x, _y, _z}, - false, - &returns, + struct { + X string + Y float64 + Z bool + }{ + _x, + _y, + _z, + }, ) } // setFoo(x) is not allowed (see negatives), but setXxx(a, b, ...) is okay. func (a *allowedMethodNames) SetFoo(_x string, _y float64) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( a, "setFoo", - []interface{}{_x, _y}, - false, - &returns, + struct { + X string + Y float64 + }{ + _x, + _y, + }, ) } @@ -3293,15 +3450,23 @@ func (a *ambiguousParameters) Scope() Bell { func NewAmbiguousParameters(scope Bell, props StructParameterType) AmbiguousParameters { _init_.Initialize() + a := ambiguousParameters{} _jsii_.Create( "jsii-calc.AmbiguousParameters", - []interface{}{scope, props}, + struct { + Scope Bell + Props StructParameterType + }{ + scope, + props, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } @@ -3318,39 +3483,43 @@ type anonymousImplementationProvider struct { func NewAnonymousImplementationProvider() AnonymousImplementationProvider { _init_.Initialize() + a := anonymousImplementationProvider{} _jsii_.Create( "jsii-calc.AnonymousImplementationProvider", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.IAnonymousImplementationProvider"}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } func (a *anonymousImplementationProvider) ProvideAsClass() Implementation { var returns Implementation + _jsii_.Invoke( a, "provideAsClass", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (a *anonymousImplementationProvider) ProvideAsInterface() IAnonymouslyImplementMe { var returns IAnonymouslyImplementMe + _jsii_.Invoke( a, "provideAsInterface", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -3370,40 +3539,44 @@ type asyncVirtualMethods struct { func NewAsyncVirtualMethods() AsyncVirtualMethods { _init_.Initialize() + a := asyncVirtualMethods{} _jsii_.Create( "jsii-calc.AsyncVirtualMethods", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } func (a *asyncVirtualMethods) CallMe() float64 { var returns float64 + _jsii_.Invoke( a, "callMe", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // Just calls "overrideMeToo". func (a *asyncVirtualMethods) CallMe2() float64 { var returns float64 + _jsii_.Invoke( a, "callMe2", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -3414,49 +3587,57 @@ func (a *asyncVirtualMethods) CallMe2() float64 { // after an "immediates" cycle. func (a *asyncVirtualMethods) CallMeDoublePromise() float64 { var returns float64 + _jsii_.Invoke( a, "callMeDoublePromise", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (a *asyncVirtualMethods) DontOverrideMe() float64 { var returns float64 + _jsii_.Invoke( a, "dontOverrideMe", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (a *asyncVirtualMethods) OverrideMe(mult float64) float64 { var returns float64 + _jsii_.Invoke( a, "overrideMe", - []interface{}{mult}, - true, + struct { + Mult float64 + }{ + mult, + }, &returns, ) + return returns } func (a *asyncVirtualMethods) OverrideMeToo() float64 { var returns float64 + _jsii_.Invoke( a, "overrideMeToo", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -3472,37 +3653,33 @@ type augmentableClass struct { func NewAugmentableClass() AugmentableClass { _init_.Initialize() + a := augmentableClass{} _jsii_.Create( "jsii-calc.AugmentableClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &a, ) + return &a } func (a *augmentableClass) MethodOne() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( a, "methodOne", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (a *augmentableClass) MethodTwo() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( a, "methodTwo", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -3516,15 +3693,17 @@ type baseJsii976 struct { func NewBaseJsii976() BaseJsii976 { _init_.Initialize() + b := baseJsii976{} _jsii_.Create( "jsii-calc.BaseJsii976", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &b, ) + return &b } @@ -3553,15 +3732,17 @@ func (b *bell) Rung() bool { func NewBell() Bell { _init_.Initialize() + b := bell{} _jsii_.Create( "jsii-calc.Bell", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.IBell"}, - []_jsii_.Override{}, + nil, // no overrides &b, ) + return &b } @@ -3574,13 +3755,10 @@ func (b *bell) SetRung(val bool) { } func (b *bell) Ring() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( b, "ring", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -3633,28 +3811,37 @@ func (b *binaryOperation) Value() float64 { // Creates a BinaryOperation. func NewBinaryOperation(lhs scopejsiicalclib.NumericValue, rhs scopejsiicalclib.NumericValue) BinaryOperation { _init_.Initialize() + b := binaryOperation{} _jsii_.Create( "jsii-calc.BinaryOperation", - []interface{}{lhs, rhs}, + struct { + Lhs scopejsiicalclib.NumericValue + Rhs scopejsiicalclib.NumericValue + }{ + lhs, + rhs, + }, []_jsii_.FQN{"@scope/jsii-calc-lib.IFriendly"}, - []_jsii_.Override{}, + nil, // no overrides &b, ) + return &b } // (deprecated) Say hello! func (b *binaryOperation) Hello() string { var returns string + _jsii_.Invoke( b, "hello", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -3662,26 +3849,28 @@ func (b *binaryOperation) Hello() string { // Deprecated. func (b *binaryOperation) ToString() string { var returns string + _jsii_.Invoke( b, "toString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // Returns: the name of the class (to verify native type names are created for derived classes). func (b *binaryOperation) TypeName() interface{} { var returns interface{} + _jsii_.Invoke( b, "typeName", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -3698,27 +3887,30 @@ type burriedAnonymousObject struct { func NewBurriedAnonymousObject() BurriedAnonymousObject { _init_.Initialize() + b := burriedAnonymousObject{} _jsii_.Create( "jsii-calc.BurriedAnonymousObject", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &b, ) + return &b } func (b *burriedAnonymousObject) Check() bool { var returns bool + _jsii_.Invoke( b, "check", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -3727,13 +3919,18 @@ func (b *burriedAnonymousObject) Check() bool { // Returns: \`value\` func (b *burriedAnonymousObject) GiveItBack(value interface{}) interface{} { var returns interface{} + _jsii_.Invoke( b, "giveItBack", - []interface{}{value}, - true, + struct { + Value interface{} + }{ + value, + }, &returns, ) + return returns } @@ -3839,15 +4036,21 @@ func (c *calculator) UnionProperty() interface{} { // Creates a Calculator object. func NewCalculator(props CalculatorProps) Calculator { _init_.Initialize() + c := calculator{} _jsii_.Create( "jsii-calc.Calculator", - []interface{}{props}, + struct { + Props CalculatorProps + }{ + props, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -3877,62 +4080,63 @@ func (c *calculator) SetUnionProperty(val interface{}) { // Adds a number to the current value. func (c *calculator) Add(value float64) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( c, "add", - []interface{}{value}, - false, - &returns, + struct { + Value float64 + }{ + value, + }, ) } // Multiplies the current value by a number. func (c *calculator) Mul(value float64) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( c, "mul", - []interface{}{value}, - false, - &returns, + struct { + Value float64 + }{ + value, + }, ) } // Negates the current value. func (c *calculator) Neg() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( c, "neg", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } // Raises the current value by a power. func (c *calculator) Pow(value float64) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( c, "pow", - []interface{}{value}, - false, - &returns, + struct { + Value float64 + }{ + value, + }, ) } // Returns teh value of the union property (if defined). func (c *calculator) ReadUnionValue() float64 { var returns float64 + _jsii_.Invoke( c, "readUnionValue", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -4018,15 +4222,17 @@ func (c *classThatImplementsTheInternalInterface) D() string { func NewClassThatImplementsTheInternalInterface() ClassThatImplementsTheInternalInterface { _init_.Initialize() + c := classThatImplementsTheInternalInterface{} _jsii_.Create( "jsii-calc.ClassThatImplementsTheInternalInterface", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.INonInternalInterface"}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -4122,15 +4328,17 @@ func (c *classThatImplementsThePrivateInterface) E() string { func NewClassThatImplementsThePrivateInterface() ClassThatImplementsThePrivateInterface { _init_.Initialize() + c := classThatImplementsThePrivateInterface{} _jsii_.Create( "jsii-calc.ClassThatImplementsThePrivateInterface", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.INonInternalInterface"}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -4201,15 +4409,23 @@ func (c *classWithCollections) Map() map[string]string { func NewClassWithCollections(map_ map[string]string, array []string) ClassWithCollections { _init_.Initialize() + c := classWithCollections{} _jsii_.Create( "jsii-calc.ClassWithCollections", - []interface{}{map_, array}, + struct { + Map map[string]string + Array []string + }{ + map_, + array, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -4231,27 +4447,31 @@ func (c *classWithCollections) SetMap(val map[string]string) { func ClassWithCollections_CreateAList() []string { _init_.Initialize() + var returns []string + _jsii_.StaticInvoke( "jsii-calc.ClassWithCollections", "createAList", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func ClassWithCollections_CreateAMap() map[string]string { _init_.Initialize() + var returns map[string]string + _jsii_.StaticInvoke( "jsii-calc.ClassWithCollections", "createAMap", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -4313,15 +4533,17 @@ type classWithDocs struct { func NewClassWithDocs() ClassWithDocs { _init_.Initialize() + c := classWithDocs{} _jsii_.Create( "jsii-calc.ClassWithDocs", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -4348,27 +4570,38 @@ func (c *classWithJavaReservedWords) Int() string { func NewClassWithJavaReservedWords(int string) ClassWithJavaReservedWords { _init_.Initialize() + c := classWithJavaReservedWords{} _jsii_.Create( "jsii-calc.ClassWithJavaReservedWords", - []interface{}{int}, + struct { + Int string + }{ + int, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } func (c *classWithJavaReservedWords) Import(assert string) string { var returns string + _jsii_.Invoke( c, "import", - []interface{}{assert}, - true, + struct { + Assert string + }{ + assert, + }, &returns, ) + return returns } @@ -4395,15 +4628,17 @@ func (c *classWithMutableObjectLiteralProperty) MutableObject() IMutableObjectLi func NewClassWithMutableObjectLiteralProperty() ClassWithMutableObjectLiteralProperty { _init_.Initialize() + c := classWithMutableObjectLiteralProperty{} _jsii_.Create( "jsii-calc.ClassWithMutableObjectLiteralProperty", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -4459,14 +4694,22 @@ func (c *classWithPrivateConstructorAndAutomaticProperties) SetReadWriteString(v func ClassWithPrivateConstructorAndAutomaticProperties_Create(readOnlyString string, readWriteString string) ClassWithPrivateConstructorAndAutomaticProperties { _init_.Initialize() + var returns ClassWithPrivateConstructorAndAutomaticProperties + _jsii_.StaticInvoke( "jsii-calc.ClassWithPrivateConstructorAndAutomaticProperties", "create", - []interface{}{readOnlyString, readWriteString}, - true, + struct { + ReadOnlyString string + ReadWriteString string + }{ + readOnlyString, + readWriteString, + }, &returns, ) + return returns } @@ -4504,27 +4747,31 @@ func (c *confusingToJackson) SetUnionProperty(val interface{}) { func ConfusingToJackson_MakeInstance() ConfusingToJackson { _init_.Initialize() + var returns ConfusingToJackson + _jsii_.StaticInvoke( "jsii-calc.ConfusingToJackson", "makeInstance", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func ConfusingToJackson_MakeStructInstance() ConfusingToJacksonStruct { _init_.Initialize() + var returns ConfusingToJacksonStruct + _jsii_.StaticInvoke( "jsii-calc.ConfusingToJackson", "makeStructInstance", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -4542,15 +4789,21 @@ type constructorPassesThisOut struct { func NewConstructorPassesThisOut(consumer PartiallyInitializedThisConsumer) ConstructorPassesThisOut { _init_.Initialize() + c := constructorPassesThisOut{} _jsii_.Create( "jsii-calc.ConstructorPassesThisOut", - []interface{}{consumer}, + struct { + Consumer PartiallyInitializedThisConsumer + }{ + consumer, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -4564,106 +4817,122 @@ type constructors struct { func NewConstructors() Constructors { _init_.Initialize() + c := constructors{} _jsii_.Create( "jsii-calc.Constructors", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } func Constructors_HiddenInterface() IPublicInterface { _init_.Initialize() + var returns IPublicInterface + _jsii_.StaticInvoke( "jsii-calc.Constructors", "hiddenInterface", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func Constructors_HiddenInterfaces() []IPublicInterface { _init_.Initialize() + var returns []IPublicInterface + _jsii_.StaticInvoke( "jsii-calc.Constructors", "hiddenInterfaces", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func Constructors_HiddenSubInterfaces() []IPublicInterface { _init_.Initialize() + var returns []IPublicInterface + _jsii_.StaticInvoke( "jsii-calc.Constructors", "hiddenSubInterfaces", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func Constructors_MakeClass() PublicClass { _init_.Initialize() + var returns PublicClass + _jsii_.StaticInvoke( "jsii-calc.Constructors", "makeClass", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func Constructors_MakeInterface() IPublicInterface { _init_.Initialize() + var returns IPublicInterface + _jsii_.StaticInvoke( "jsii-calc.Constructors", "makeInterface", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func Constructors_MakeInterface2() IPublicInterface2 { _init_.Initialize() + var returns IPublicInterface2 + _jsii_.StaticInvoke( "jsii-calc.Constructors", "makeInterface2", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func Constructors_MakeInterfaces() []IPublicInterface { _init_.Initialize() + var returns []IPublicInterface + _jsii_.StaticInvoke( "jsii-calc.Constructors", "makeInterfaces", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -4678,27 +4947,34 @@ type consumePureInterface struct { func NewConsumePureInterface(delegate IStructReturningDelegate) ConsumePureInterface { _init_.Initialize() + c := consumePureInterface{} _jsii_.Create( "jsii-calc.ConsumePureInterface", - []interface{}{delegate}, + struct { + Delegate IStructReturningDelegate + }{ + delegate, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } func (c *consumePureInterface) WorkItBaby() StructB { var returns StructB + _jsii_.Invoke( c, "workItBaby", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -4720,15 +4996,17 @@ type consumerCanRingBell struct { func NewConsumerCanRingBell() ConsumerCanRingBell { _init_.Initialize() + c := consumerCanRingBell{} _jsii_.Create( "jsii-calc.ConsumerCanRingBell", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -4737,14 +5015,20 @@ func NewConsumerCanRingBell() ConsumerCanRingBell { // Returns whether the bell was rung. func ConsumerCanRingBell_StaticImplementedByObjectLiteral(ringer IBellRinger) bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.ConsumerCanRingBell", "staticImplementedByObjectLiteral", - []interface{}{ringer}, - true, + struct { + Ringer IBellRinger + }{ + ringer, + }, &returns, ) + return returns } @@ -4753,14 +5037,20 @@ func ConsumerCanRingBell_StaticImplementedByObjectLiteral(ringer IBellRinger) bo // Return whether the bell was rung. func ConsumerCanRingBell_StaticImplementedByPrivateClass(ringer IBellRinger) bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.ConsumerCanRingBell", "staticImplementedByPrivateClass", - []interface{}{ringer}, - true, + struct { + Ringer IBellRinger + }{ + ringer, + }, &returns, ) + return returns } @@ -4769,14 +5059,20 @@ func ConsumerCanRingBell_StaticImplementedByPrivateClass(ringer IBellRinger) boo // Return whether the bell was rung. func ConsumerCanRingBell_StaticImplementedByPublicClass(ringer IBellRinger) bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.ConsumerCanRingBell", "staticImplementedByPublicClass", - []interface{}{ringer}, - true, + struct { + Ringer IBellRinger + }{ + ringer, + }, &returns, ) + return returns } @@ -4785,14 +5081,20 @@ func ConsumerCanRingBell_StaticImplementedByPublicClass(ringer IBellRinger) bool // Return whether the bell was rung. func ConsumerCanRingBell_StaticWhenTypedAsClass(ringer IConcreteBellRinger) bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.ConsumerCanRingBell", "staticWhenTypedAsClass", - []interface{}{ringer}, - true, + struct { + Ringer IConcreteBellRinger + }{ + ringer, + }, &returns, ) + return returns } @@ -4801,13 +5103,18 @@ func ConsumerCanRingBell_StaticWhenTypedAsClass(ringer IConcreteBellRinger) bool // Returns whether the bell was rung. func (c *consumerCanRingBell) ImplementedByObjectLiteral(ringer IBellRinger) bool { var returns bool + _jsii_.Invoke( c, "implementedByObjectLiteral", - []interface{}{ringer}, - true, + struct { + Ringer IBellRinger + }{ + ringer, + }, &returns, ) + return returns } @@ -4816,13 +5123,18 @@ func (c *consumerCanRingBell) ImplementedByObjectLiteral(ringer IBellRinger) boo // Return whether the bell was rung. func (c *consumerCanRingBell) ImplementedByPrivateClass(ringer IBellRinger) bool { var returns bool + _jsii_.Invoke( c, "implementedByPrivateClass", - []interface{}{ringer}, - true, + struct { + Ringer IBellRinger + }{ + ringer, + }, &returns, ) + return returns } @@ -4831,13 +5143,18 @@ func (c *consumerCanRingBell) ImplementedByPrivateClass(ringer IBellRinger) bool // Return whether the bell was rung. func (c *consumerCanRingBell) ImplementedByPublicClass(ringer IBellRinger) bool { var returns bool + _jsii_.Invoke( c, "implementedByPublicClass", - []interface{}{ringer}, - true, + struct { + Ringer IBellRinger + }{ + ringer, + }, &returns, ) + return returns } @@ -4846,13 +5163,18 @@ func (c *consumerCanRingBell) ImplementedByPublicClass(ringer IBellRinger) bool // Return whether the bell was rung. func (c *consumerCanRingBell) WhenTypedAsClass(ringer IConcreteBellRinger) bool { var returns bool + _jsii_.Invoke( c, "whenTypedAsClass", - []interface{}{ringer}, - true, + struct { + Ringer IConcreteBellRinger + }{ + ringer, + }, &returns, ) + return returns } @@ -4868,39 +5190,51 @@ type consumersOfThisCrazyTypeSystem struct { func NewConsumersOfThisCrazyTypeSystem() ConsumersOfThisCrazyTypeSystem { _init_.Initialize() + c := consumersOfThisCrazyTypeSystem{} _jsii_.Create( "jsii-calc.ConsumersOfThisCrazyTypeSystem", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } func (c *consumersOfThisCrazyTypeSystem) ConsumeAnotherPublicInterface(obj IAnotherPublicInterface) string { var returns string + _jsii_.Invoke( c, "consumeAnotherPublicInterface", - []interface{}{obj}, - true, + struct { + Obj IAnotherPublicInterface + }{ + obj, + }, &returns, ) + return returns } func (c *consumersOfThisCrazyTypeSystem) ConsumeNonInternalInterface(obj INonInternalInterface) interface{} { var returns interface{} + _jsii_.Invoke( c, "consumeNonInternalInterface", - []interface{}{obj}, - true, + struct { + Obj INonInternalInterface + }{ + obj, + }, &returns, ) + return returns } @@ -4918,51 +5252,68 @@ type dataRenderer struct { func NewDataRenderer() DataRenderer { _init_.Initialize() + d := dataRenderer{} _jsii_.Create( "jsii-calc.DataRenderer", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } func (d *dataRenderer) Render(data scopejsiicalclib.MyFirstStruct) string { var returns string + _jsii_.Invoke( d, "render", - []interface{}{data}, - true, + struct { + Data scopejsiicalclib.MyFirstStruct + }{ + data, + }, &returns, ) + return returns } func (d *dataRenderer) RenderArbitrary(data map[string]interface{}) string { var returns string + _jsii_.Invoke( d, "renderArbitrary", - []interface{}{data}, - true, + struct { + Data map[string]interface{} + }{ + data, + }, &returns, ) + return returns } func (d *dataRenderer) RenderMap(map_ map[string]interface{}) string { var returns string + _jsii_.Invoke( d, "renderMap", - []interface{}{map_}, - true, + struct { + Map map[string]interface{} + }{ + map_, + }, &returns, ) + return returns } @@ -5010,15 +5361,25 @@ func (d *defaultedConstructorArgument) Arg3() string { func NewDefaultedConstructorArgument(arg1 float64, arg2 string, arg3 string) DefaultedConstructorArgument { _init_.Initialize() + d := defaultedConstructorArgument{} _jsii_.Create( "jsii-calc.DefaultedConstructorArgument", - []interface{}{arg1, arg2, arg3}, + struct { + Arg1 float64 + Arg2 string + Arg3 string + }{ + arg1, + arg2, + arg3, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } @@ -5036,43 +5397,49 @@ type demonstrate982 struct { func NewDemonstrate982() Demonstrate982 { _init_.Initialize() + d := demonstrate982{} _jsii_.Create( "jsii-calc.Demonstrate982", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } // It's dangerous to go alone! func Demonstrate982_TakeThis() ChildStruct982 { _init_.Initialize() + var returns ChildStruct982 + _jsii_.StaticInvoke( "jsii-calc.Demonstrate982", "takeThis", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // It's dangerous to go alone! func Demonstrate982_TakeThisToo() ParentStruct982 { _init_.Initialize() + var returns ParentStruct982 + _jsii_.StaticInvoke( "jsii-calc.Demonstrate982", "takeThisToo", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -5112,15 +5479,23 @@ func (d *deprecatedClass) ReadonlyProperty() string { func NewDeprecatedClass(readonlyString string, mutableNumber float64) DeprecatedClass { _init_.Initialize() + d := deprecatedClass{} _jsii_.Create( "jsii-calc.DeprecatedClass", - []interface{}{readonlyString, mutableNumber}, + struct { + ReadonlyString string + MutableNumber float64 + }{ + readonlyString, + mutableNumber, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } @@ -5134,13 +5509,10 @@ func (d *deprecatedClass) SetMutableProperty(val float64) { // Deprecated: it was a bad idea func (d *deprecatedClass) Method() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( d, "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -5317,50 +5689,55 @@ type doNotOverridePrivates struct { func NewDoNotOverridePrivates() DoNotOverridePrivates { _init_.Initialize() + d := doNotOverridePrivates{} _jsii_.Create( "jsii-calc.DoNotOverridePrivates", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } func (d *doNotOverridePrivates) ChangePrivatePropertyValue(newValue string) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( d, "changePrivatePropertyValue", - []interface{}{newValue}, - false, - &returns, + struct { + NewValue string + }{ + newValue, + }, ) } func (d *doNotOverridePrivates) PrivateMethodValue() string { var returns string + _jsii_.Invoke( d, "privateMethodValue", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (d *doNotOverridePrivates) PrivatePropertyValue() string { var returns string + _jsii_.Invoke( d, "privatePropertyValue", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -5376,26 +5753,33 @@ type doNotRecognizeAnyAsOptional struct { func NewDoNotRecognizeAnyAsOptional() DoNotRecognizeAnyAsOptional { _init_.Initialize() + d := doNotRecognizeAnyAsOptional{} _jsii_.Create( "jsii-calc.DoNotRecognizeAnyAsOptional", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } func (d *doNotRecognizeAnyAsOptional) Method(_requiredAny interface{}, _optionalAny interface{}, _optionalString string) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( d, "method", - []interface{}{_requiredAny, _optionalAny, _optionalString}, - false, - &returns, + struct { + RequiredAny interface{} + OptionalAny interface{} + OptionalString string + }{ + _requiredAny, + _optionalAny, + _optionalString, + }, ) } @@ -5420,15 +5804,17 @@ type documentedClass struct { func NewDocumentedClass() DocumentedClass { _init_.Initialize() + d := documentedClass{} _jsii_.Create( "jsii-calc.DocumentedClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } @@ -5440,26 +5826,28 @@ func NewDocumentedClass() DocumentedClass { // to the ultimate question func (d *documentedClass) Greet(greetee Greetee) float64 { var returns float64 + _jsii_.Invoke( d, "greet", - []interface{}{greetee}, - true, + struct { + Greetee Greetee + }{ + greetee, + }, &returns, ) + return returns } // Say ¡Hola! // Experimental. func (d *documentedClass) Hola() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( d, "hola", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -5474,27 +5862,36 @@ type dontComplainAboutVariadicAfterOptional struct { func NewDontComplainAboutVariadicAfterOptional() DontComplainAboutVariadicAfterOptional { _init_.Initialize() + d := dontComplainAboutVariadicAfterOptional{} _jsii_.Create( "jsii-calc.DontComplainAboutVariadicAfterOptional", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } func (d *dontComplainAboutVariadicAfterOptional) OptionalAndVariadic(optional string, things string) string { var returns string + _jsii_.Invoke( d, "optionalAndVariadic", - []interface{}{optional, things}, - true, + struct { + Optional string + Things string + }{ + optional, + things, + }, &returns, ) + return returns } @@ -5511,41 +5908,45 @@ type doubleTrouble struct { func NewDoubleTrouble() DoubleTrouble { _init_.Initialize() + d := doubleTrouble{} _jsii_.Create( "jsii-calc.DoubleTrouble", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.IFriendlyRandomGenerator"}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } // (deprecated) Say hello! func (d *doubleTrouble) Hello() string { var returns string + _jsii_.Invoke( d, "hello", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // Returns another random number. func (d *doubleTrouble) Next() float64 { var returns float64 + _jsii_.Invoke( d, "next", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -5585,15 +5986,21 @@ func (d *dynamicPropertyBearer) ValueStore() string { func NewDynamicPropertyBearer(valueStore string) DynamicPropertyBearer { _init_.Initialize() + d := dynamicPropertyBearer{} _jsii_.Create( "jsii-calc.DynamicPropertyBearer", - []interface{}{valueStore}, + struct { + ValueStore string + }{ + valueStore, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } @@ -5637,15 +6044,21 @@ func (d *dynamicPropertyBearerChild) OriginalValue() string { func NewDynamicPropertyBearerChild(originalValue string) DynamicPropertyBearerChild { _init_.Initialize() + d := dynamicPropertyBearerChild{} _jsii_.Create( "jsii-calc.DynamicPropertyBearerChild", - []interface{}{originalValue}, + struct { + OriginalValue string + }{ + originalValue, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &d, ) + return &d } @@ -5654,13 +6067,18 @@ func NewDynamicPropertyBearerChild(originalValue string) DynamicPropertyBearerCh // Returns: the old value that was set. func (d *dynamicPropertyBearerChild) OverrideValue(newValue string) string { var returns string + _jsii_.Invoke( d, "overrideValue", - []interface{}{newValue}, - true, + struct { + NewValue string + }{ + newValue, + }, &returns, ) + return returns } @@ -5678,15 +6096,21 @@ type entropy struct { // Creates a new instance of Entropy. func NewEntropy(clock IWallClock) Entropy { _init_.Initialize() + e := entropy{} _jsii_.Create( "jsii-calc.Entropy", - []interface{}{clock}, + struct { + Clock IWallClock + }{ + clock, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &e, ) + return &e } @@ -5695,13 +6119,14 @@ func NewEntropy(clock IWallClock) Entropy { // Returns: the time from the \`WallClock\`. func (e *entropy) Increase() string { var returns string + _jsii_.Invoke( e, "increase", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -5710,13 +6135,18 @@ func (e *entropy) Increase() string { // Returns: \`word\`. func (e *entropy) Repeat(word string) string { var returns string + _jsii_.Invoke( e, "repeat", - []interface{}{word}, - true, + struct { + Word string + }{ + word, + }, &returns, ) + return returns } @@ -5730,27 +6160,31 @@ type enumDispenser struct { func EnumDispenser_RandomIntegerLikeEnum() AllTypesEnum { _init_.Initialize() + var returns AllTypesEnum + _jsii_.StaticInvoke( "jsii-calc.EnumDispenser", "randomIntegerLikeEnum", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func EnumDispenser_RandomStringLikeEnum() StringEnum { _init_.Initialize() + var returns StringEnum + _jsii_.StaticInvoke( "jsii-calc.EnumDispenser", "randomStringLikeEnum", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -5764,15 +6198,17 @@ type eraseUndefinedHashValues struct { func NewEraseUndefinedHashValues() EraseUndefinedHashValues { _init_.Initialize() + e := eraseUndefinedHashValues{} _jsii_.Create( "jsii-calc.EraseUndefinedHashValues", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &e, ) + return &e } @@ -5782,42 +6218,54 @@ func NewEraseUndefinedHashValues() EraseUndefinedHashValues { // are being erased when sending values from native code to JS. func EraseUndefinedHashValues_DoesKeyExist(opts EraseUndefinedHashValuesOptions, key string) bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.EraseUndefinedHashValues", "doesKeyExist", - []interface{}{opts, key}, - true, + struct { + Opts EraseUndefinedHashValuesOptions + Key string + }{ + opts, + key, + }, &returns, ) + return returns } // We expect "prop1" to be erased. func EraseUndefinedHashValues_Prop1IsNull() map[string]interface{} { _init_.Initialize() + var returns map[string]interface{} + _jsii_.StaticInvoke( "jsii-calc.EraseUndefinedHashValues", "prop1IsNull", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // We expect "prop2" to be erased. func EraseUndefinedHashValues_Prop2IsUndefined() map[string]interface{} { _init_.Initialize() + var returns map[string]interface{} + _jsii_.StaticInvoke( "jsii-calc.EraseUndefinedHashValues", "prop2IsUndefined", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -5862,15 +6310,23 @@ func (e *experimentalClass) ReadonlyProperty() string { func NewExperimentalClass(readonlyString string, mutableNumber float64) ExperimentalClass { _init_.Initialize() + e := experimentalClass{} _jsii_.Create( "jsii-calc.ExperimentalClass", - []interface{}{readonlyString, mutableNumber}, + struct { + ReadonlyString string + MutableNumber float64 + }{ + readonlyString, + mutableNumber, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &e, ) + return &e } @@ -5884,13 +6340,10 @@ func (e *experimentalClass) SetMutableProperty(val float64) { // Experimental. func (e *experimentalClass) Method() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( e, "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -5930,15 +6383,21 @@ func (e *exportedBaseClass) Success() bool { func NewExportedBaseClass(success bool) ExportedBaseClass { _init_.Initialize() + e := exportedBaseClass{} _jsii_.Create( "jsii-calc.ExportedBaseClass", - []interface{}{success}, + struct { + Success bool + }{ + success, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &e, ) + return &e } @@ -5982,15 +6441,23 @@ func (e *externalClass) ReadonlyProperty() string { func NewExternalClass(readonlyString string, mutableNumber float64) ExternalClass { _init_.Initialize() + e := externalClass{} _jsii_.Create( "jsii-calc.ExternalClass", - []interface{}{readonlyString, mutableNumber}, + struct { + ReadonlyString string + MutableNumber float64 + }{ + readonlyString, + mutableNumber, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &e, ) + return &e } @@ -6003,13 +6470,10 @@ func (e *externalClass) SetMutableProperty(val float64) { } func (e *externalClass) Method() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( e, "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6049,54 +6513,71 @@ func (g *giveMeStructs) StructLiteral() scopejsiicalclib.StructWithOnlyOptionals func NewGiveMeStructs() GiveMeStructs { _init_.Initialize() + g := giveMeStructs{} _jsii_.Create( "jsii-calc.GiveMeStructs", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &g, ) + return &g } // Accepts a struct of type DerivedStruct and returns a struct of type FirstStruct. func (g *giveMeStructs) DerivedToFirst(derived DerivedStruct) scopejsiicalclib.MyFirstStruct { var returns scopejsiicalclib.MyFirstStruct + _jsii_.Invoke( g, "derivedToFirst", - []interface{}{derived}, - true, + struct { + Derived DerivedStruct + }{ + derived, + }, &returns, ) + return returns } // Returns the boolean from a DerivedStruct struct. func (g *giveMeStructs) ReadDerivedNonPrimitive(derived DerivedStruct) DoubleTrouble { var returns DoubleTrouble + _jsii_.Invoke( g, "readDerivedNonPrimitive", - []interface{}{derived}, - true, + struct { + Derived DerivedStruct + }{ + derived, + }, &returns, ) + return returns } // Returns the "anumber" from a MyFirstStruct struct; func (g *giveMeStructs) ReadFirstNumber(first scopejsiicalclib.MyFirstStruct) float64 { var returns float64 + _jsii_.Invoke( g, "readFirstNumber", - []interface{}{first}, - true, + struct { + First scopejsiicalclib.MyFirstStruct + }{ + first, + }, &returns, ) + return returns } @@ -6117,27 +6598,34 @@ type greetingAugmenter struct { func NewGreetingAugmenter() GreetingAugmenter { _init_.Initialize() + g := greetingAugmenter{} _jsii_.Create( "jsii-calc.GreetingAugmenter", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &g, ) + return &g } func (g *greetingAugmenter) BetterGreeting(friendly scopejsiicalclib.IFriendly) string { var returns string + _jsii_.Invoke( g, "betterGreeting", - []interface{}{friendly}, - true, + struct { + Friendly scopejsiicalclib.IFriendly + }{ + friendly, + }, &returns, ) + return returns } @@ -6154,25 +6642,27 @@ type iAnonymousImplementationProvider struct { func (i *iAnonymousImplementationProvider) ProvideAsClass() Implementation { var returns Implementation + _jsii_.Invoke( i, "provideAsClass", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (i *iAnonymousImplementationProvider) ProvideAsInterface() IAnonymouslyImplementMe { var returns IAnonymouslyImplementMe + _jsii_.Invoke( i, "provideAsInterface", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -6188,13 +6678,14 @@ type iAnonymouslyImplementMe struct { func (i *iAnonymouslyImplementMe) Verb() string { var returns string + _jsii_.Invoke( i, "verb", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -6245,13 +6736,10 @@ type iBell struct { } func (i *iBell) Ring() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "ring", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6266,13 +6754,14 @@ type iBellRinger struct { } func (i *iBellRinger) YourTurn(bell IBell) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "yourTurn", - []interface{}{bell}, - false, - &returns, + struct { + Bell IBell + }{ + bell, + }, ) } @@ -6287,13 +6776,14 @@ type iConcreteBellRinger struct { } func (i *iConcreteBellRinger) YourTurn(bell Bell) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "yourTurn", - []interface{}{bell}, - false, - &returns, + struct { + Bell Bell + }{ + bell, + }, ) } @@ -6311,13 +6801,10 @@ type iDeprecatedInterface struct { } func (i *iDeprecatedInterface) Method() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6353,13 +6840,10 @@ type iExperimentalInterface struct { } func (i *iExperimentalInterface) Method() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6430,13 +6914,10 @@ type iExternalInterface struct { } func (i *iExternalInterface) Method() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6476,25 +6957,27 @@ type iFriendlier struct { func (i *iFriendlier) Farewell() string { var returns string + _jsii_.Invoke( i, "farewell", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (i *iFriendlier) Goodbye() string { var returns string + _jsii_.Invoke( i, "goodbye", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -6511,25 +6994,27 @@ type iFriendlyRandomGenerator struct { func (i *iFriendlyRandomGenerator) Hello() string { var returns string + _jsii_.Invoke( i, "hello", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (i *iFriendlyRandomGenerator) Next() float64 { var returns float64 + _jsii_.Invoke( i, "next", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -6584,13 +7069,10 @@ type iInterfaceWithInternal struct { } func (i *iInterfaceWithInternal) Visible() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "visible", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6605,13 +7087,10 @@ type iInterfaceWithMethods struct { } func (i *iInterfaceWithMethods) DoThings() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "doThings", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6636,13 +7115,16 @@ type iInterfaceWithOptionalMethodArguments struct { } func (i *iInterfaceWithOptionalMethodArguments) Hello(arg1 string, arg2 float64) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "hello", - []interface{}{arg1, arg2}, - false, - &returns, + struct { + Arg1 string + Arg2 float64 + }{ + arg1, + arg2, + }, ) } @@ -6725,24 +7207,18 @@ type ijsii417Derived struct { } func (i *ijsii417Derived) Bar() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "bar", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (i *ijsii417Derived) Baz() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "baz", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6767,13 +7243,10 @@ type ijsii417PublicBaseOfBase struct { } func (i *ijsii417PublicBaseOfBase) Foo() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "foo", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -6898,13 +7371,14 @@ type iObjectWithProperty struct { func (i *iObjectWithProperty) WasSet() bool { var returns bool + _jsii_.Invoke( i, "wasSet", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -6938,13 +7412,14 @@ type iOptionalMethod struct { func (i *iOptionalMethod) Optional() string { var returns string + _jsii_.Invoke( i, "optional", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -6978,13 +7453,14 @@ type iPublicInterface struct { func (i *iPublicInterface) Bye() string { var returns string + _jsii_.Invoke( i, "bye", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -6999,13 +7475,14 @@ type iPublicInterface2 struct { func (i *iPublicInterface2) Ciao() string { var returns string + _jsii_.Invoke( i, "ciao", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7024,13 +7501,14 @@ type iRandomNumberGenerator struct { func (i *iRandomNumberGenerator) Next() float64 { var returns float64 + _jsii_.Invoke( i, "next", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7066,13 +7544,14 @@ type iReturnsNumber struct { func (i *iReturnsNumber) ObtainNumber() scopejsiicalclib.IDoublable { var returns scopejsiicalclib.IDoublable + _jsii_.Invoke( i, "obtainNumber", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7097,13 +7576,10 @@ type iStableInterface struct { } func (i *iStableInterface) Method() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -7137,13 +7613,14 @@ type iStructReturningDelegate struct { func (i *iStructReturningDelegate) ReturnStruct() StructB { var returns StructB + _jsii_.Invoke( i, "returnStruct", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7160,13 +7637,14 @@ type iWallClock struct { func (i *iWallClock) Iso8601Now() string { var returns string + _jsii_.Invoke( i, "iso8601Now", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7193,15 +7671,17 @@ func (i *implementInternalInterface) Prop() string { func NewImplementInternalInterface() ImplementInternalInterface { _init_.Initialize() + i := implementInternalInterface{} _jsii_.Create( "jsii-calc.ImplementInternalInterface", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &i, ) + return &i } @@ -7235,15 +7715,17 @@ func (i *implementation) Value() float64 { func NewImplementation() Implementation { _init_.Initialize() + i := implementation{} _jsii_.Create( "jsii-calc.Implementation", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &i, ) + return &i } @@ -7259,26 +7741,25 @@ type implementsInterfaceWithInternal struct { func NewImplementsInterfaceWithInternal() ImplementsInterfaceWithInternal { _init_.Initialize() + i := implementsInterfaceWithInternal{} _jsii_.Create( "jsii-calc.ImplementsInterfaceWithInternal", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.IInterfaceWithInternal"}, - []_jsii_.Override{}, + nil, // no overrides &i, ) + return &i } func (i *implementsInterfaceWithInternal) Visible() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( i, "visible", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -7293,15 +7774,17 @@ type implementsInterfaceWithInternalSubclass struct { func NewImplementsInterfaceWithInternalSubclass() ImplementsInterfaceWithInternalSubclass { _init_.Initialize() + i := implementsInterfaceWithInternalSubclass{} _jsii_.Create( "jsii-calc.ImplementsInterfaceWithInternalSubclass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &i, ) + return &i } @@ -7328,15 +7811,17 @@ func (i *implementsPrivateInterface) Private() string { func NewImplementsPrivateInterface() ImplementsPrivateInterface { _init_.Initialize() + i := implementsPrivateInterface{} _jsii_.Create( "jsii-calc.ImplementsPrivateInterface", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &i, ) + return &i } @@ -7383,27 +7868,30 @@ type inbetweenClass struct { func NewInbetweenClass() InbetweenClass { _init_.Initialize() + i := inbetweenClass{} _jsii_.Create( "jsii-calc.InbetweenClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.IPublicInterface2"}, - []_jsii_.Override{}, + nil, // no overrides &i, ) + return &i } func (i *inbetweenClass) Ciao() string { var returns string + _jsii_.Invoke( i, "ciao", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7420,53 +7908,61 @@ type interfaceCollections struct { func InterfaceCollections_ListOfInterfaces() []IBell { _init_.Initialize() + var returns []IBell + _jsii_.StaticInvoke( "jsii-calc.InterfaceCollections", "listOfInterfaces", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func InterfaceCollections_ListOfStructs() []StructA { _init_.Initialize() + var returns []StructA + _jsii_.StaticInvoke( "jsii-calc.InterfaceCollections", "listOfStructs", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func InterfaceCollections_MapOfInterfaces() map[string]IBell { _init_.Initialize() + var returns map[string]IBell + _jsii_.StaticInvoke( "jsii-calc.InterfaceCollections", "mapOfInterfaces", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func InterfaceCollections_MapOfStructs() map[string]StructA { _init_.Initialize() + var returns map[string]StructA + _jsii_.StaticInvoke( "jsii-calc.InterfaceCollections", "mapOfStructs", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7481,14 +7977,20 @@ type interfacesMaker struct { func InterfacesMaker_MakeInterfaces(count float64) []scopejsiicalclib.IDoublable { _init_.Initialize() + var returns []scopejsiicalclib.IDoublable + _jsii_.StaticInvoke( "jsii-calc.InterfacesMaker", "makeInterfaces", - []interface{}{count}, - true, + struct { + Count float64 + }{ + count, + }, &returns, ) + return returns } @@ -7507,27 +8009,30 @@ type isomorphism struct { func NewIsomorphism() Isomorphism { _init_.Initialize() + i := isomorphism{} _jsii_.Create( "jsii-calc.Isomorphism", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &i, ) + return &i } func (i *isomorphism) Myself() Isomorphism { var returns Isomorphism + _jsii_.Invoke( i, "myself", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7556,37 +8061,37 @@ func (j *jsii417Derived) Property() string { func NewJsii417Derived(property string) Jsii417Derived { _init_.Initialize() + j := jsii417Derived{} _jsii_.Create( "jsii-calc.JSII417Derived", - []interface{}{property}, + struct { + Property string + }{ + property, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } func (j *jsii417Derived) Bar() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "bar", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *jsii417Derived) Baz() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "baz", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -7613,39 +8118,40 @@ func (j *jsii417PublicBaseOfBase) HasRoot() bool { func NewJsii417PublicBaseOfBase() Jsii417PublicBaseOfBase { _init_.Initialize() + j := jsii417PublicBaseOfBase{} _jsii_.Create( "jsii-calc.JSII417PublicBaseOfBase", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } func Jsii417PublicBaseOfBase_MakeInstance() Jsii417PublicBaseOfBase { _init_.Initialize() + var returns Jsii417PublicBaseOfBase + _jsii_.StaticInvoke( "jsii-calc.JSII417PublicBaseOfBase", "makeInstance", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (j *jsii417PublicBaseOfBase) Foo() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "foo", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -7661,39 +8167,43 @@ type jsObjectLiteralForInterface struct { func NewJsObjectLiteralForInterface() JsObjectLiteralForInterface { _init_.Initialize() + j := jsObjectLiteralForInterface{} _jsii_.Create( "jsii-calc.JSObjectLiteralForInterface", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } func (j *jsObjectLiteralForInterface) GiveMeFriendly() scopejsiicalclib.IFriendly { var returns scopejsiicalclib.IFriendly + _jsii_.Invoke( j, "giveMeFriendly", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (j *jsObjectLiteralForInterface) GiveMeFriendlyGenerator() IFriendlyRandomGenerator { var returns IFriendlyRandomGenerator + _jsii_.Invoke( j, "giveMeFriendlyGenerator", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7708,27 +8218,30 @@ type jsObjectLiteralToNative struct { func NewJsObjectLiteralToNative() JsObjectLiteralToNative { _init_.Initialize() + j := jsObjectLiteralToNative{} _jsii_.Create( "jsii-calc.JSObjectLiteralToNative", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } func (j *jsObjectLiteralToNative) ReturnLiteral() JsObjectLiteralToNativeClass { var returns JsObjectLiteralToNativeClass + _jsii_.Invoke( j, "returnLiteral", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -7767,15 +8280,17 @@ func (j *jsObjectLiteralToNativeClass) PropB() float64 { func NewJsObjectLiteralToNativeClass() JsObjectLiteralToNativeClass { _init_.Initialize() + j := jsObjectLiteralToNativeClass{} _jsii_.Create( "jsii-calc.JSObjectLiteralToNativeClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } @@ -7870,15 +8385,17 @@ func (j *javaReservedWords) While() string { func NewJavaReservedWords() JavaReservedWords { _init_.Initialize() + j := javaReservedWords{} _jsii_.Create( "jsii-calc.JavaReservedWords", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } @@ -7891,574 +8408,418 @@ func (j *javaReservedWords) SetWhile(val string) { } func (j *javaReservedWords) Abstract() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "abstract", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Assert() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "assert", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Boolean() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "boolean", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Break() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "break", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Byte() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "byte", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Case() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "case", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Catch() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "catch", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Char() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "char", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Class() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "class", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Const() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "const", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Continue() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "continue", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Default() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "default", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Do() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "do", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Double() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "double", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Else() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "else", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Enum() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "enum", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Extends() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "extends", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) False() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "false", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Final() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "final", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Finally() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "finally", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Float() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "float", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) For() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "for", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Goto() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "goto", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) If() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "if", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Implements() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "implements", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Import() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "import", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Instanceof() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "instanceof", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Int() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "int", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Interface() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "interface", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Long() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "long", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Native() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "native", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) New() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "new", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Null() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "null", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Package() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "package", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Private() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "private", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Protected() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "protected", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Public() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "public", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Return() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "return", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Short() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "short", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Static() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "static", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Strictfp() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "strictfp", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Super() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "super", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Switch() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "switch", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Synchronized() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "synchronized", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) This() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "this", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Throw() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "throw", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Throws() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "throws", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Transient() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "transient", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) True() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "true", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Try() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "try", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Void() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "void", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (j *javaReservedWords) Volatile() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( j, "volatile", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -8475,15 +8836,17 @@ type jsii487Derived struct { func NewJsii487Derived() Jsii487Derived { _init_.Initialize() + j := jsii487Derived{} _jsii_.Create( "jsii-calc.Jsii487Derived", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.IJsii487External2", "jsii-calc.IJsii487External"}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } @@ -8498,15 +8861,17 @@ type jsii496Derived struct { func NewJsii496Derived() Jsii496Derived { _init_.Initialize() + j := jsii496Derived{} _jsii_.Create( "jsii-calc.Jsii496Derived", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{"jsii-calc.IJsii496"}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } @@ -8521,15 +8886,17 @@ type jsiiAgent struct { func NewJsiiAgent() JsiiAgent { _init_.Initialize() + j := jsiiAgent{} _jsii_.Create( "jsii-calc.JsiiAgent", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &j, ) + return &j } @@ -8557,183 +8924,215 @@ type jsonFormatter struct { func JsonFormatter_AnyArray() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyArray", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyBooleanFalse() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyBooleanFalse", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyBooleanTrue() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyBooleanTrue", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyDate() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyDate", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyEmptyString() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyEmptyString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyFunction() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyFunction", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyHash() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyHash", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyNull() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyNull", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyNumber() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyNumber", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyRef() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyRef", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyString() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyUndefined() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyUndefined", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_AnyZero() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "anyZero", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func JsonFormatter_Stringify(value interface{}) string { _init_.Initialize() + var returns string + _jsii_.StaticInvoke( "jsii-calc.JsonFormatter", "stringify", - []interface{}{value}, - true, + struct { + Value interface{} + }{ + value, + }, &returns, ) + return returns } @@ -8760,15 +9159,21 @@ func (l *levelOne) Props() LevelOneProps { func NewLevelOne(props LevelOneProps) LevelOne { _init_.Initialize() + l := levelOne{} _jsii_.Create( "jsii-calc.LevelOne", - []interface{}{props}, + struct { + Props LevelOneProps + }{ + props, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &l, ) + return &l } @@ -8847,27 +9252,30 @@ func (m *methodNamedProperty) Elite() float64 { func NewMethodNamedProperty() MethodNamedProperty { _init_.Initialize() + m := methodNamedProperty{} _jsii_.Create( "jsii-calc.MethodNamedProperty", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &m, ) + return &m } func (m *methodNamedProperty) Property() string { var returns string + _jsii_.Invoke( m, "property", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -8924,93 +9332,107 @@ func (m *multiply) Rhs() scopejsiicalclib.NumericValue { // Creates a BinaryOperation. func NewMultiply(lhs scopejsiicalclib.NumericValue, rhs scopejsiicalclib.NumericValue) Multiply { _init_.Initialize() + m := multiply{} _jsii_.Create( "jsii-calc.Multiply", - []interface{}{lhs, rhs}, + struct { + Lhs scopejsiicalclib.NumericValue + Rhs scopejsiicalclib.NumericValue + }{ + lhs, + rhs, + }, []_jsii_.FQN{"jsii-calc.IFriendlier", "jsii-calc.IRandomNumberGenerator"}, - []_jsii_.Override{}, + nil, // no overrides &m, ) + return &m } // Say farewell. func (m *multiply) Farewell() string { var returns string + _jsii_.Invoke( m, "farewell", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // Say goodbye. func (m *multiply) Goodbye() string { var returns string + _jsii_.Invoke( m, "goodbye", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // Returns another random number. func (m *multiply) Next() float64 { var returns float64 + _jsii_.Invoke( m, "next", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // (deprecated) String representation of the value. func (m *multiply) ToString() string { var returns string + _jsii_.Invoke( m, "toString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // (deprecated) Say hello! func (m *multiply) Hello() string { var returns string + _jsii_.Invoke( m, "hello", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // Returns: the name of the class (to verify native type names are created for derived classes). func (m *multiply) TypeName() interface{} { var returns interface{} + _jsii_.Invoke( m, "typeName", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9054,80 +9476,91 @@ func (n *negate) Operand() scopejsiicalclib.NumericValue { func NewNegate(operand scopejsiicalclib.NumericValue) Negate { _init_.Initialize() + n := negate{} _jsii_.Create( "jsii-calc.Negate", - []interface{}{operand}, + struct { + Operand scopejsiicalclib.NumericValue + }{ + operand, + }, []_jsii_.FQN{"jsii-calc.IFriendlier"}, - []_jsii_.Override{}, + nil, // no overrides &n, ) + return &n } // Say farewell. func (n *negate) Farewell() string { var returns string + _jsii_.Invoke( n, "farewell", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // Say goodbye. func (n *negate) Goodbye() string { var returns string + _jsii_.Invoke( n, "goodbye", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // (deprecated) Say hello! func (n *negate) Hello() string { var returns string + _jsii_.Invoke( n, "hello", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // (deprecated) String representation of the value. func (n *negate) ToString() string { var returns string + _jsii_.Invoke( n, "toString", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } // Returns: the name of the class (to verify native type names are created for derived classes). func (n *negate) TypeName() interface{} { var returns interface{} + _jsii_.Invoke( n, "typeName", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9141,14 +9574,16 @@ type nestedClassInstance struct { func NestedClassInstance_MakeInstance() submodule.NestedClass { _init_.Initialize() + var returns submodule.NestedClass + _jsii_.StaticInvoke( "jsii-calc.NestedClassInstance", "makeInstance", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9183,15 +9618,17 @@ func (n *nodeStandardLibrary) OsPlatform() string { func NewNodeStandardLibrary() NodeStandardLibrary { _init_.Initialize() + n := nodeStandardLibrary{} _jsii_.Create( "jsii-calc.NodeStandardLibrary", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &n, ) + return &n } @@ -9200,13 +9637,14 @@ func NewNodeStandardLibrary() NodeStandardLibrary { // Returns: "6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50" func (n *nodeStandardLibrary) CryptoSha256() string { var returns string + _jsii_.Invoke( n, "cryptoSha256", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9215,13 +9653,14 @@ func (n *nodeStandardLibrary) CryptoSha256() string { // Returns: "Hello, resource!" func (n *nodeStandardLibrary) FsReadFile() string { var returns string + _jsii_.Invoke( n, "fsReadFile", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9230,13 +9669,14 @@ func (n *nodeStandardLibrary) FsReadFile() string { // Returns: "Hello, resource! SYNC!" func (n *nodeStandardLibrary) FsReadFileSync() string { var returns string + _jsii_.Invoke( n, "fsReadFileSync", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9267,15 +9707,23 @@ func (n *nullShouldBeTreatedAsUndefined) ChangeMeToUndefined() string { func NewNullShouldBeTreatedAsUndefined(_param1 string, optional interface{}) NullShouldBeTreatedAsUndefined { _init_.Initialize() + n := nullShouldBeTreatedAsUndefined{} _jsii_.Create( "jsii-calc.NullShouldBeTreatedAsUndefined", - []interface{}{_param1, optional}, + struct { + Param1 string + Optional interface{} + }{ + _param1, + optional, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &n, ) + return &n } @@ -9288,35 +9736,34 @@ func (n *nullShouldBeTreatedAsUndefined) SetChangeMeToUndefined(val string) { } func (n *nullShouldBeTreatedAsUndefined) GiveMeUndefined(value interface{}) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( n, "giveMeUndefined", - []interface{}{value}, - false, - &returns, + struct { + Value interface{} + }{ + value, + }, ) } func (n *nullShouldBeTreatedAsUndefined) GiveMeUndefinedInsideAnObject(input NullShouldBeTreatedAsUndefinedData) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( n, "giveMeUndefinedInsideAnObject", - []interface{}{input}, - false, - &returns, + struct { + Input NullShouldBeTreatedAsUndefinedData + }{ + input, + }, ) } func (n *nullShouldBeTreatedAsUndefined) VerifyPropertyIsUndefined() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( n, "verifyPropertyIsUndefined", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -9351,15 +9798,21 @@ func (n *numberGenerator) Generator() IRandomNumberGenerator { func NewNumberGenerator(generator IRandomNumberGenerator) NumberGenerator { _init_.Initialize() + n := numberGenerator{} _jsii_.Create( "jsii-calc.NumberGenerator", - []interface{}{generator}, + struct { + Generator IRandomNumberGenerator + }{ + generator, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &n, ) + return &n } @@ -9373,25 +9826,31 @@ func (n *numberGenerator) SetGenerator(val IRandomNumberGenerator) { func (n *numberGenerator) IsSameGenerator(gen IRandomNumberGenerator) bool { var returns bool + _jsii_.Invoke( n, "isSameGenerator", - []interface{}{gen}, - true, + struct { + Gen IRandomNumberGenerator + }{ + gen, + }, &returns, ) + return returns } func (n *numberGenerator) NextTimes100() float64 { var returns float64 + _jsii_.Invoke( n, "nextTimes100", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9408,41 +9867,53 @@ type objectRefsInCollections struct { func NewObjectRefsInCollections() ObjectRefsInCollections { _init_.Initialize() + o := objectRefsInCollections{} _jsii_.Create( "jsii-calc.ObjectRefsInCollections", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } // Returns the sum of all values. func (o *objectRefsInCollections) SumFromArray(values []scopejsiicalclib.NumericValue) float64 { var returns float64 + _jsii_.Invoke( o, "sumFromArray", - []interface{}{values}, - true, + struct { + Values []scopejsiicalclib.NumericValue + }{ + values, + }, &returns, ) + return returns } // Returns the sum of all values in a map. func (o *objectRefsInCollections) SumFromMap(values map[string]scopejsiicalclib.NumericValue) float64 { var returns float64 + _jsii_.Invoke( o, "sumFromMap", - []interface{}{values}, - true, + struct { + Values map[string]scopejsiicalclib.NumericValue + }{ + values, + }, &returns, ) + return returns } @@ -9456,14 +9927,16 @@ type objectWithPropertyProvider struct { func ObjectWithPropertyProvider_Provide() IObjectWithProperty { _init_.Initialize() + var returns IObjectWithProperty + _jsii_.StaticInvoke( "jsii-calc.ObjectWithPropertyProvider", "provide", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9481,15 +9954,17 @@ type old struct { func NewOld() Old { _init_.Initialize() + o := old{} _jsii_.Create( "jsii-calc.Old", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } @@ -9497,13 +9972,10 @@ func NewOld() Old { // Deprecated: Use the new class or the old class whatever you want because // whatever you like is always the best func (o *old) DoAThing() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( o, "doAThing", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -9519,37 +9991,37 @@ type optionalArgumentInvoker struct { func NewOptionalArgumentInvoker(delegate IInterfaceWithOptionalMethodArguments) OptionalArgumentInvoker { _init_.Initialize() + o := optionalArgumentInvoker{} _jsii_.Create( "jsii-calc.OptionalArgumentInvoker", - []interface{}{delegate}, + struct { + Delegate IInterfaceWithOptionalMethodArguments + }{ + delegate, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } func (o *optionalArgumentInvoker) InvokeWithOptional() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( o, "invokeWithOptional", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (o *optionalArgumentInvoker) InvokeWithoutOptional() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( o, "invokeWithoutOptional", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -9597,15 +10069,25 @@ func (o *optionalConstructorArgument) Arg3() string { func NewOptionalConstructorArgument(arg1 float64, arg2 string, arg3 string) OptionalConstructorArgument { _init_.Initialize() + o := optionalConstructorArgument{} _jsii_.Create( "jsii-calc.OptionalConstructorArgument", - []interface{}{arg1, arg2, arg3}, + struct { + Arg1 float64 + Arg2 string + Arg3 string + }{ + arg1, + arg2, + arg3, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } @@ -9646,15 +10128,21 @@ func (o *optionalStructConsumer) ParameterWasUndefined() bool { func NewOptionalStructConsumer(optionalStruct OptionalStruct) OptionalStructConsumer { _init_.Initialize() + o := optionalStructConsumer{} _jsii_.Create( "jsii-calc.OptionalStructConsumer", - []interface{}{optionalStruct}, + struct { + OptionalStruct OptionalStruct + }{ + optionalStruct, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } @@ -9696,15 +10184,17 @@ func (o *overridableProtectedMember) OverrideReadWrite() string { func NewOverridableProtectedMember() OverridableProtectedMember { _init_.Initialize() + o := overridableProtectedMember{} _jsii_.Create( "jsii-calc.OverridableProtectedMember", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } @@ -9718,36 +10208,35 @@ func (o *overridableProtectedMember) SetOverrideReadWrite(val string) { func (o *overridableProtectedMember) OverrideMe() string { var returns string + _jsii_.Invoke( o, "overrideMe", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (o *overridableProtectedMember) SwitchModes() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( o, "switchModes", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (o *overridableProtectedMember) ValueFromProtected() string { var returns string + _jsii_.Invoke( o, "valueFromProtected", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -9762,27 +10251,34 @@ type overrideReturnsObject struct { func NewOverrideReturnsObject() OverrideReturnsObject { _init_.Initialize() + o := overrideReturnsObject{} _jsii_.Create( "jsii-calc.OverrideReturnsObject", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } func (o *overrideReturnsObject) Test(obj IReturnsNumber) float64 { var returns float64 + _jsii_.Invoke( o, "test", - []interface{}{obj}, - true, + struct { + Obj IReturnsNumber + }{ + obj, + }, &returns, ) + return returns } @@ -9802,27 +10298,38 @@ type partiallyInitializedThisConsumer struct { func NewPartiallyInitializedThisConsumer() PartiallyInitializedThisConsumer { _init_.Initialize() + p := partiallyInitializedThisConsumer{} _jsii_.Create( "jsii-calc.PartiallyInitializedThisConsumer", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &p, ) + return &p } func (p *partiallyInitializedThisConsumer) ConsumePartiallyInitializedThis(obj ConstructorPassesThisOut, dt string, ev AllTypesEnum) string { var returns string + _jsii_.Invoke( p, "consumePartiallyInitializedThis", - []interface{}{obj, dt, ev}, - true, + struct { + Obj ConstructorPassesThisOut + Dt string + Ev AllTypesEnum + }{ + obj, + dt, + ev, + }, &returns, ) + return returns } @@ -9837,27 +10344,34 @@ type polymorphism struct { func NewPolymorphism() Polymorphism { _init_.Initialize() + p := polymorphism{} _jsii_.Create( "jsii-calc.Polymorphism", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &p, ) + return &p } func (p *polymorphism) SayHello(friendly scopejsiicalclib.IFriendly) string { var returns string + _jsii_.Invoke( p, "sayHello", - []interface{}{friendly}, - true, + struct { + Friendly scopejsiicalclib.IFriendly + }{ + friendly, + }, &returns, ) + return returns } @@ -9908,15 +10422,23 @@ func (p *power) Pow() scopejsiicalclib.NumericValue { // Creates a Power operation. func NewPower(base scopejsiicalclib.NumericValue, pow scopejsiicalclib.NumericValue) Power { _init_.Initialize() + p := power{} _jsii_.Create( "jsii-calc.Power", - []interface{}{base, pow}, + struct { + Base scopejsiicalclib.NumericValue + Pow scopejsiicalclib.NumericValue + }{ + base, + pow, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &p, ) + return &p } @@ -9954,15 +10476,17 @@ func (p *propertyNamedProperty) YetAnoterOne() bool { func NewPropertyNamedProperty() PropertyNamedProperty { _init_.Initialize() + p := propertyNamedProperty{} _jsii_.Create( "jsii-calc.PropertyNamedProperty", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &p, ) + return &p } @@ -9977,26 +10501,25 @@ type publicClass struct { func NewPublicClass() PublicClass { _init_.Initialize() + p := publicClass{} _jsii_.Create( "jsii-calc.PublicClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &p, ) + return &p } func (p *publicClass) Hello() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "hello", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -10042,367 +10565,273 @@ type pythonReservedWords struct { func NewPythonReservedWords() PythonReservedWords { _init_.Initialize() + p := pythonReservedWords{} _jsii_.Create( "jsii-calc.PythonReservedWords", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &p, ) + return &p } func (p *pythonReservedWords) And() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "and", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) As() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "as", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Assert() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "assert", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Async() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "async", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Await() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "await", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Break() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "break", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Class() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "class", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Continue() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "continue", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Def() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "def", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Del() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "del", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Elif() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "elif", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Else() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "else", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Except() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "except", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Finally() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "finally", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) For() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "for", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) From() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "from", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Global() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "global", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) If() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "if", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Import() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "import", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) In() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "in", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Is() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "is", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Lambda() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "lambda", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Nonlocal() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "nonlocal", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Not() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "not", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Or() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "or", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Pass() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "pass", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Raise() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "raise", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Return() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "return", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Try() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "try", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) While() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "while", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) With() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "with", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (p *pythonReservedWords) Yield() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( p, "yield", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -10432,15 +10861,17 @@ func (r *referenceEnumFromScopedPackage) Foo() scopejsiicalclib.EnumFromScopedMo func NewReferenceEnumFromScopedPackage() ReferenceEnumFromScopedPackage { _init_.Initialize() + r := referenceEnumFromScopedPackage{} _jsii_.Create( "jsii-calc.ReferenceEnumFromScopedPackage", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &r, ) + return &r } @@ -10454,24 +10885,26 @@ func (r *referenceEnumFromScopedPackage) SetFoo(val scopejsiicalclib.EnumFromSco func (r *referenceEnumFromScopedPackage) LoadFoo() scopejsiicalclib.EnumFromScopedModule { var returns scopejsiicalclib.EnumFromScopedModule + _jsii_.Invoke( r, "loadFoo", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (r *referenceEnumFromScopedPackage) SaveFoo(value scopejsiicalclib.EnumFromScopedModule) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( r, "saveFoo", - []interface{}{value}, - false, - &returns, + struct { + Value scopejsiicalclib.EnumFromScopedModule + }{ + value, + }, ) } @@ -10502,15 +10935,17 @@ func (r *returnsPrivateImplementationOfInterface) PrivateImplementation() IPriva func NewReturnsPrivateImplementationOfInterface() ReturnsPrivateImplementationOfInterface { _init_.Initialize() + r := returnsPrivateImplementationOfInterface{} _jsii_.Create( "jsii-calc.ReturnsPrivateImplementationOfInterface", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &r, ) + return &r } @@ -10534,13 +10969,15 @@ type rootStructValidator struct { func RootStructValidator_Validate(struct_ RootStruct) { _init_.Initialize() - var returns interface{} - _jsii_.StaticInvoke( + + _jsii_.StaticInvokeVoid( "jsii-calc.RootStructValidator", "validate", - []interface{}{struct_}, - false, - &returns, + struct { + Struct RootStruct + }{ + struct_, + }, ) } @@ -10557,49 +10994,62 @@ type runtimeTypeChecking struct { func NewRuntimeTypeChecking() RuntimeTypeChecking { _init_.Initialize() + r := runtimeTypeChecking{} _jsii_.Create( "jsii-calc.RuntimeTypeChecking", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &r, ) + return &r } func (r *runtimeTypeChecking) MethodWithDefaultedArguments(arg1 float64, arg2 string, arg3 string) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( r, "methodWithDefaultedArguments", - []interface{}{arg1, arg2, arg3}, - false, - &returns, + struct { + Arg1 float64 + Arg2 string + Arg3 string + }{ + arg1, + arg2, + arg3, + }, ) } func (r *runtimeTypeChecking) MethodWithOptionalAnyArgument(arg interface{}) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( r, "methodWithOptionalAnyArgument", - []interface{}{arg}, - false, - &returns, + struct { + Arg interface{} + }{ + arg, + }, ) } // Used to verify verification of number of method arguments. func (r *runtimeTypeChecking) MethodWithOptionalArguments(arg1 float64, arg2 string, arg3 string) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( r, "methodWithOptionalArguments", - []interface{}{arg1, arg2, arg3}, - false, - &returns, + struct { + Arg1 float64 + Arg2 string + Arg3 string + }{ + arg1, + arg2, + arg3, + }, ) } @@ -10627,39 +11077,43 @@ type singleInstanceTwoTypes struct { func NewSingleInstanceTwoTypes() SingleInstanceTwoTypes { _init_.Initialize() + s := singleInstanceTwoTypes{} _jsii_.Create( "jsii-calc.SingleInstanceTwoTypes", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } func (s *singleInstanceTwoTypes) Interface1() InbetweenClass { var returns InbetweenClass + _jsii_.Invoke( s, "interface1", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (s *singleInstanceTwoTypes) Interface2() IPublicInterface { var returns IPublicInterface + _jsii_.Invoke( s, "interface2", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -10677,13 +11131,18 @@ type singletonInt struct { func (s *singletonInt) IsSingletonInt(value float64) bool { var returns bool + _jsii_.Invoke( s, "isSingletonInt", - []interface{}{value}, - true, + struct { + Value float64 + }{ + value, + }, &returns, ) + return returns } @@ -10708,13 +11167,18 @@ type singletonString struct { func (s *singletonString) IsSingletonString(value string) bool { var returns bool + _jsii_.Invoke( s, "isSingletonString", - []interface{}{value}, - true, + struct { + Value string + }{ + value, + }, &returns, ) + return returns } @@ -10740,41 +11204,47 @@ type someTypeJsii976 struct { func NewSomeTypeJsii976() SomeTypeJsii976 { _init_.Initialize() + s := someTypeJsii976{} _jsii_.Create( "jsii-calc.SomeTypeJsii976", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } func SomeTypeJsii976_ReturnAnonymous() interface{} { _init_.Initialize() + var returns interface{} + _jsii_.StaticInvoke( "jsii-calc.SomeTypeJsii976", "returnAnonymous", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func SomeTypeJsii976_ReturnReturn() IReturnJsii976 { _init_.Initialize() + var returns IReturnJsii976 + _jsii_.StaticInvoke( "jsii-calc.SomeTypeJsii976", "returnReturn", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -10813,15 +11283,23 @@ func (s *stableClass) ReadonlyProperty() string { func NewStableClass(readonlyString string, mutableNumber float64) StableClass { _init_.Initialize() + s := stableClass{} _jsii_.Create( "jsii-calc.StableClass", - []interface{}{readonlyString, mutableNumber}, + struct { + ReadonlyString string + MutableNumber float64 + }{ + readonlyString, + mutableNumber, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } @@ -10834,13 +11312,10 @@ func (s *stableClass) SetMutableProperty(val float64) { } func (s *stableClass) Method() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( s, "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -10868,14 +11343,16 @@ type staticContext struct { func StaticContext_CanAccessStaticContext() bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.StaticContext", "canAccessStaticContext", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -10910,13 +11387,11 @@ type staticHelloChild struct { func StaticHelloChild_Method() { _init_.Initialize() - var returns interface{} - _jsii_.StaticInvoke( + + _jsii_.StaticInvokeVoid( "jsii-calc.StaticHelloChild", "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -10946,27 +11421,27 @@ type staticHelloParent struct { func NewStaticHelloParent() StaticHelloParent { _init_.Initialize() + s := staticHelloParent{} _jsii_.Create( "jsii-calc.StaticHelloParent", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } func StaticHelloParent_Method() { _init_.Initialize() - var returns interface{} - _jsii_.StaticInvoke( + + _jsii_.StaticInvokeVoid( "jsii-calc.StaticHelloParent", "method", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -11004,29 +11479,41 @@ func (s *statics) Value() string { func NewStatics(value string) Statics { _init_.Initialize() + s := statics{} _jsii_.Create( "jsii-calc.Statics", - []interface{}{value}, + struct { + Value string + }{ + value, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } // Jsdocs for static method. func Statics_StaticMethod(name string) string { _init_.Initialize() + var returns string + _jsii_.StaticInvoke( "jsii-calc.Statics", "staticMethod", - []interface{}{name}, - true, + struct { + Name string + }{ + name, + }, &returns, ) + return returns } @@ -11116,13 +11603,14 @@ func Statics_ZooBar() map[string]string { func (s *statics) JustMethod() string { var returns string + _jsii_.Invoke( s, "justMethod", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -11157,15 +11645,17 @@ func (s *stripInternal) YouSeeMe() string { func NewStripInternal() StripInternal { _init_.Initialize() + s := stripInternal{} _jsii_.Create( "jsii-calc.StripInternal", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } @@ -11210,41 +11700,59 @@ type structPassing struct { func NewStructPassing() StructPassing { _init_.Initialize() + s := structPassing{} _jsii_.Create( "jsii-calc.StructPassing", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } func StructPassing_HowManyVarArgsDidIPass(_positional float64, inputs TopLevelStruct) float64 { _init_.Initialize() + var returns float64 + _jsii_.StaticInvoke( "jsii-calc.StructPassing", "howManyVarArgsDidIPass", - []interface{}{_positional, inputs}, - true, + struct { + Positional float64 + Inputs TopLevelStruct + }{ + _positional, + inputs, + }, &returns, ) + return returns } func StructPassing_RoundTrip(_positional float64, input TopLevelStruct) TopLevelStruct { _init_.Initialize() + var returns TopLevelStruct + _jsii_.StaticInvoke( "jsii-calc.StructPassing", "roundTrip", - []interface{}{_positional, input}, - true, + struct { + Positional float64 + Input TopLevelStruct + }{ + _positional, + input, + }, &returns, ) + return returns } @@ -11258,27 +11766,39 @@ type structUnionConsumer struct { func StructUnionConsumer_IsStructA(struct_ interface{}) bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.StructUnionConsumer", "isStructA", - []interface{}{struct_}, - true, + struct { + Struct interface{} + }{ + struct_, + }, &returns, ) + return returns } func StructUnionConsumer_IsStructB(struct_ interface{}) bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.StructUnionConsumer", "isStructB", - []interface{}{struct_}, - true, + struct { + Struct interface{} + }{ + struct_, + }, &returns, ) + return returns } @@ -11325,15 +11845,17 @@ func (s *sum) Parts() []scopejsiicalclib.NumericValue { func NewSum() Sum { _init_.Initialize() + s := sum{} _jsii_.Create( "jsii-calc.Sum", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } @@ -11379,15 +11901,27 @@ func (s *supportsNiceJavaBuilder) Rest() []string { func NewSupportsNiceJavaBuilder(id float64, defaultBar float64, props SupportsNiceJavaBuilderProps, rest string) SupportsNiceJavaBuilder { _init_.Initialize() + s := supportsNiceJavaBuilder{} _jsii_.Create( "jsii-calc.SupportsNiceJavaBuilder", - []interface{}{id, defaultBar, props, rest}, + struct { + Id float64 + DefaultBar float64 + Props SupportsNiceJavaBuilderProps + Rest string + }{ + id, + defaultBar, + props, + rest, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } @@ -11445,15 +11979,23 @@ func (s *supportsNiceJavaBuilderWithRequiredProps) PropId() string { func NewSupportsNiceJavaBuilderWithRequiredProps(id float64, props SupportsNiceJavaBuilderProps) SupportsNiceJavaBuilderWithRequiredProps { _init_.Initialize() + s := supportsNiceJavaBuilderWithRequiredProps{} _jsii_.Create( "jsii-calc.SupportsNiceJavaBuilderWithRequiredProps", - []interface{}{id, props}, + struct { + Id float64 + Props SupportsNiceJavaBuilderProps + }{ + id, + props, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } @@ -11549,15 +12091,17 @@ func (s *syncVirtualMethods) ValueOfOtherProperty() string { func NewSyncVirtualMethods() SyncVirtualMethods { _init_.Initialize() + s := syncVirtualMethods{} _jsii_.Create( "jsii-calc.SyncVirtualMethods", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &s, ) + return &s } @@ -11603,118 +12147,132 @@ func (s *syncVirtualMethods) SetValueOfOtherProperty(val string) { func (s *syncVirtualMethods) CallerIsAsync() float64 { var returns float64 + _jsii_.Invoke( s, "callerIsAsync", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (s *syncVirtualMethods) CallerIsMethod() float64 { var returns float64 + _jsii_.Invoke( s, "callerIsMethod", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (s *syncVirtualMethods) ModifyOtherProperty(value string) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( s, "modifyOtherProperty", - []interface{}{value}, - false, - &returns, + struct { + Value string + }{ + value, + }, ) } func (s *syncVirtualMethods) ModifyValueOfTheProperty(value string) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( s, "modifyValueOfTheProperty", - []interface{}{value}, - false, - &returns, + struct { + Value string + }{ + value, + }, ) } func (s *syncVirtualMethods) ReadA() float64 { var returns float64 + _jsii_.Invoke( s, "readA", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (s *syncVirtualMethods) RetrieveOtherProperty() string { var returns string + _jsii_.Invoke( s, "retrieveOtherProperty", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (s *syncVirtualMethods) RetrieveReadOnlyProperty() string { var returns string + _jsii_.Invoke( s, "retrieveReadOnlyProperty", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (s *syncVirtualMethods) RetrieveValueOfTheProperty() string { var returns string + _jsii_.Invoke( s, "retrieveValueOfTheProperty", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (s *syncVirtualMethods) VirtualMethod(n float64) float64 { var returns float64 + _jsii_.Invoke( s, "virtualMethod", - []interface{}{n}, - true, + struct { + N float64 + }{ + n, + }, &returns, ) + return returns } func (s *syncVirtualMethods) WriteA(value float64) { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( s, "writeA", - []interface{}{value}, - false, - &returns, + struct { + Value float64 + }{ + value, + }, ) } @@ -11729,26 +12287,25 @@ type thrower struct { func NewThrower() Thrower { _init_.Initialize() + t := thrower{} _jsii_.Create( "jsii-calc.Thrower", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &t, ) + return &t } func (t *thrower) ThrowError() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( t, "throwError", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -11775,14 +12332,16 @@ type umaskCheck struct { // This should return 0o644 (-rw-r--r--). func UmaskCheck_Mode() float64 { _init_.Initialize() + var returns float64 + _jsii_.StaticInvoke( "jsii-calc.UmaskCheck", "mode", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -11810,15 +12369,21 @@ func (u *unaryOperation) Operand() scopejsiicalclib.NumericValue { func NewUnaryOperation(operand scopejsiicalclib.NumericValue) UnaryOperation { _init_.Initialize() + u := unaryOperation{} _jsii_.Create( "jsii-calc.UnaryOperation", - []interface{}{operand}, + struct { + Operand scopejsiicalclib.NumericValue + }{ + operand, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &u, ) + return &u } @@ -11851,15 +12416,21 @@ func (u *upcasingReflectable) Entries() []submodule.ReflectableEntry { func NewUpcasingReflectable(delegate map[string]interface{}) UpcasingReflectable { _init_.Initialize() + u := upcasingReflectable{} _jsii_.Create( "jsii-calc.UpcasingReflectable", - []interface{}{delegate}, + struct { + Delegate map[string]interface{} + }{ + delegate, + }, []_jsii_.FQN{"@scope/jsii-calc-lib.submodule.IReflectable"}, - []_jsii_.Override{}, + nil, // no overrides &u, ) + return &u } @@ -11885,27 +12456,30 @@ type useBundledDependency struct { func NewUseBundledDependency() UseBundledDependency { _init_.Initialize() + u := useBundledDependency{} _jsii_.Create( "jsii-calc.UseBundledDependency", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &u, ) + return &u } func (u *useBundledDependency) Value() interface{} { var returns interface{} + _jsii_.Invoke( u, "value", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -11921,27 +12495,30 @@ type useCalcBase struct { func NewUseCalcBase() UseCalcBase { _init_.Initialize() + u := useCalcBase{} _jsii_.Create( "jsii-calc.UseCalcBase", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &u, ) + return &u } func (u *useCalcBase) Hello() scopejsiicalcbase.Base { var returns scopejsiicalcbase.Base + _jsii_.Invoke( u, "hello", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -11970,51 +12547,68 @@ func (u *usesInterfaceWithProperties) Obj() IInterfaceWithProperties { func NewUsesInterfaceWithProperties(obj IInterfaceWithProperties) UsesInterfaceWithProperties { _init_.Initialize() + u := usesInterfaceWithProperties{} _jsii_.Create( "jsii-calc.UsesInterfaceWithProperties", - []interface{}{obj}, + struct { + Obj IInterfaceWithProperties + }{ + obj, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &u, ) + return &u } func (u *usesInterfaceWithProperties) JustRead() string { var returns string + _jsii_.Invoke( u, "justRead", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } func (u *usesInterfaceWithProperties) ReadStringAndNumber(ext IInterfaceWithPropertiesExtension) string { var returns string + _jsii_.Invoke( u, "readStringAndNumber", - []interface{}{ext}, - true, + struct { + Ext IInterfaceWithPropertiesExtension + }{ + ext, + }, &returns, ) + return returns } func (u *usesInterfaceWithProperties) WriteAndRead(value string) string { var returns string + _jsii_.Invoke( u, "writeAndRead", - []interface{}{value}, - true, + struct { + Value string + }{ + value, + }, &returns, ) + return returns } @@ -12029,27 +12623,38 @@ type variadicInvoker struct { func NewVariadicInvoker(method VariadicMethod) VariadicInvoker { _init_.Initialize() + v := variadicInvoker{} _jsii_.Create( "jsii-calc.VariadicInvoker", - []interface{}{method}, + struct { + Method VariadicMethod + }{ + method, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &v, ) + return &v } func (v *variadicInvoker) AsArray(values float64) []float64 { var returns []float64 + _jsii_.Invoke( v, "asArray", - []interface{}{values}, - true, + struct { + Values float64 + }{ + values, + }, &returns, ) + return returns } @@ -12064,27 +12669,40 @@ type variadicMethod struct { func NewVariadicMethod(prefix float64) VariadicMethod { _init_.Initialize() + v := variadicMethod{} _jsii_.Create( "jsii-calc.VariadicMethod", - []interface{}{prefix}, + struct { + Prefix float64 + }{ + prefix, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &v, ) + return &v } func (v *variadicMethod) AsArray(first float64, others float64) []float64 { var returns []float64 + _jsii_.Invoke( v, "asArray", - []interface{}{first, others}, - true, + struct { + First float64 + Others float64 + }{ + first, + others, + }, &returns, ) + return returns } @@ -12103,75 +12721,102 @@ type virtualMethodPlayground struct { func NewVirtualMethodPlayground() VirtualMethodPlayground { _init_.Initialize() + v := virtualMethodPlayground{} _jsii_.Create( "jsii-calc.VirtualMethodPlayground", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &v, ) + return &v } func (v *virtualMethodPlayground) OverrideMeAsync(index float64) float64 { var returns float64 + _jsii_.Invoke( v, "overrideMeAsync", - []interface{}{index}, - true, + struct { + Index float64 + }{ + index, + }, &returns, ) + return returns } func (v *virtualMethodPlayground) OverrideMeSync(index float64) float64 { var returns float64 + _jsii_.Invoke( v, "overrideMeSync", - []interface{}{index}, - true, + struct { + Index float64 + }{ + index, + }, &returns, ) + return returns } func (v *virtualMethodPlayground) ParallelSumAsync(count float64) float64 { var returns float64 + _jsii_.Invoke( v, "parallelSumAsync", - []interface{}{count}, - true, + struct { + Count float64 + }{ + count, + }, &returns, ) + return returns } func (v *virtualMethodPlayground) SerialSumAsync(count float64) float64 { var returns float64 + _jsii_.Invoke( v, "serialSumAsync", - []interface{}{count}, - true, + struct { + Count float64 + }{ + count, + }, &returns, ) + return returns } func (v *virtualMethodPlayground) SumSync(count float64) float64 { var returns float64 + _jsii_.Invoke( v, "sumSync", - []interface{}{count}, - true, + struct { + Count float64 + }{ + count, + }, &returns, ) + return returns } @@ -12204,37 +12849,33 @@ func (v *voidCallback) MethodWasCalled() bool { func NewVoidCallback() VoidCallback { _init_.Initialize() + v := voidCallback{} _jsii_.Create( "jsii-calc.VoidCallback", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &v, ) + return &v } func (v *voidCallback) CallMe() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( v, "callMe", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } func (v *voidCallback) OverrideMe() { - var returns interface{} - _jsii_.Invoke( + _jsii_.InvokeVoid( v, "overrideMe", - []interface{}{}, - false, - &returns, + nil, // no parameters ) } @@ -12261,15 +12902,21 @@ func (w *withPrivatePropertyInConstructor) Success() bool { func NewWithPrivatePropertyInConstructor(privateField string) WithPrivatePropertyInConstructor { _init_.Initialize() + w := withPrivatePropertyInConstructor{} _jsii_.Create( "jsii-calc.WithPrivatePropertyInConstructor", - []interface{}{privateField}, + struct { + PrivateField string + }{ + privateField, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &w, ) + return &w } @@ -12289,6 +12936,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AbstractClass", reflect.TypeOf((*AbstractClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "abstractMethod", GoMethod: "AbstractMethod"}, + _jsii_.MemberProperty{JsiiProperty: "abstractProperty", GoGetter: "AbstractProperty"}, + _jsii_.MemberMethod{JsiiMethod: "nonAbstractMethod", GoMethod: "NonAbstractMethod"}, + _jsii_.MemberProperty{JsiiProperty: "propFromInterface", GoGetter: "PropFromInterface"}, + }, func() interface{} { a := abstractClass{} _jsii_.InitJsiiProxy(&a.abstractClassBase) @@ -12299,6 +12952,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AbstractClassBase", reflect.TypeOf((*AbstractClassBase)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "abstractProperty", GoGetter: "AbstractProperty"}, + }, func() interface{} { return &abstractClassBase{} }, @@ -12306,6 +12962,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AbstractClassReturner", reflect.TypeOf((*AbstractClassReturner)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "giveMeAbstract", GoMethod: "GiveMeAbstract"}, + _jsii_.MemberMethod{JsiiMethod: "giveMeInterface", GoMethod: "GiveMeInterface"}, + _jsii_.MemberProperty{JsiiProperty: "returnAbstractFromProperty", GoGetter: "ReturnAbstractFromProperty"}, + }, func() interface{} { return &abstractClassReturner{} }, @@ -12313,6 +12974,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AbstractSuite", reflect.TypeOf((*AbstractSuite)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "property", GoGetter: "Property"}, + _jsii_.MemberMethod{JsiiMethod: "someMethod", GoMethod: "SomeMethod"}, + _jsii_.MemberMethod{JsiiMethod: "workItAll", GoMethod: "WorkItAll"}, + }, func() interface{} { return &abstractSuite{} }, @@ -12320,6 +12986,14 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Add", reflect.TypeOf((*Add)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + _jsii_.MemberProperty{JsiiProperty: "lhs", GoGetter: "Lhs"}, + _jsii_.MemberProperty{JsiiProperty: "rhs", GoGetter: "Rhs"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { a := add{} _jsii_.InitJsiiProxy(&a.binaryOperation) @@ -12329,6 +13003,30 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AllTypes", reflect.TypeOf((*AllTypes)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "anyArrayProperty", GoGetter: "AnyArrayProperty"}, + _jsii_.MemberMethod{JsiiMethod: "anyIn", GoMethod: "AnyIn"}, + _jsii_.MemberProperty{JsiiProperty: "anyMapProperty", GoGetter: "AnyMapProperty"}, + _jsii_.MemberMethod{JsiiMethod: "anyOut", GoMethod: "AnyOut"}, + _jsii_.MemberProperty{JsiiProperty: "anyProperty", GoGetter: "AnyProperty"}, + _jsii_.MemberProperty{JsiiProperty: "arrayProperty", GoGetter: "ArrayProperty"}, + _jsii_.MemberProperty{JsiiProperty: "booleanProperty", GoGetter: "BooleanProperty"}, + _jsii_.MemberProperty{JsiiProperty: "dateProperty", GoGetter: "DateProperty"}, + _jsii_.MemberMethod{JsiiMethod: "enumMethod", GoMethod: "EnumMethod"}, + _jsii_.MemberProperty{JsiiProperty: "enumProperty", GoGetter: "EnumProperty"}, + _jsii_.MemberProperty{JsiiProperty: "enumPropertyValue", GoGetter: "EnumPropertyValue"}, + _jsii_.MemberProperty{JsiiProperty: "jsonProperty", GoGetter: "JsonProperty"}, + _jsii_.MemberProperty{JsiiProperty: "mapProperty", GoGetter: "MapProperty"}, + _jsii_.MemberProperty{JsiiProperty: "numberProperty", GoGetter: "NumberProperty"}, + _jsii_.MemberProperty{JsiiProperty: "optionalEnumValue", GoGetter: "OptionalEnumValue"}, + _jsii_.MemberProperty{JsiiProperty: "stringProperty", GoGetter: "StringProperty"}, + _jsii_.MemberProperty{JsiiProperty: "unionArrayProperty", GoGetter: "UnionArrayProperty"}, + _jsii_.MemberProperty{JsiiProperty: "unionMapProperty", GoGetter: "UnionMapProperty"}, + _jsii_.MemberProperty{JsiiProperty: "unionProperty", GoGetter: "UnionProperty"}, + _jsii_.MemberProperty{JsiiProperty: "unknownArrayProperty", GoGetter: "UnknownArrayProperty"}, + _jsii_.MemberProperty{JsiiProperty: "unknownMapProperty", GoGetter: "UnknownMapProperty"}, + _jsii_.MemberProperty{JsiiProperty: "unknownProperty", GoGetter: "UnknownProperty"}, + }, func() interface{} { return &allTypes{} }, @@ -12345,6 +13043,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AllowedMethodNames", reflect.TypeOf((*AllowedMethodNames)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "getBar", GoMethod: "GetBar"}, + _jsii_.MemberMethod{JsiiMethod: "getFoo", GoMethod: "GetFoo"}, + _jsii_.MemberMethod{JsiiMethod: "setBar", GoMethod: "SetBar"}, + _jsii_.MemberMethod{JsiiMethod: "setFoo", GoMethod: "SetFoo"}, + }, func() interface{} { return &allowedMethodNames{} }, @@ -12352,6 +13056,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AmbiguousParameters", reflect.TypeOf((*AmbiguousParameters)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "props", GoGetter: "Props"}, + _jsii_.MemberProperty{JsiiProperty: "scope", GoGetter: "Scope"}, + }, func() interface{} { return &ambiguousParameters{} }, @@ -12359,6 +13067,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AnonymousImplementationProvider", reflect.TypeOf((*AnonymousImplementationProvider)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "provideAsClass", GoMethod: "ProvideAsClass"}, + _jsii_.MemberMethod{JsiiMethod: "provideAsInterface", GoMethod: "ProvideAsInterface"}, + }, func() interface{} { a := anonymousImplementationProvider{} _jsii_.InitJsiiProxy(&a.iAnonymousImplementationProvider) @@ -12368,6 +13080,14 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AsyncVirtualMethods", reflect.TypeOf((*AsyncVirtualMethods)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "callMe", GoMethod: "CallMe"}, + _jsii_.MemberMethod{JsiiMethod: "callMe2", GoMethod: "CallMe2"}, + _jsii_.MemberMethod{JsiiMethod: "callMeDoublePromise", GoMethod: "CallMeDoublePromise"}, + _jsii_.MemberMethod{JsiiMethod: "dontOverrideMe", GoMethod: "DontOverrideMe"}, + _jsii_.MemberMethod{JsiiMethod: "overrideMe", GoMethod: "OverrideMe"}, + _jsii_.MemberMethod{JsiiMethod: "overrideMeToo", GoMethod: "OverrideMeToo"}, + }, func() interface{} { return &asyncVirtualMethods{} }, @@ -12375,6 +13095,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.AugmentableClass", reflect.TypeOf((*AugmentableClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "methodOne", GoMethod: "MethodOne"}, + _jsii_.MemberMethod{JsiiMethod: "methodTwo", GoMethod: "MethodTwo"}, + }, func() interface{} { return &augmentableClass{} }, @@ -12382,6 +13106,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.BaseJsii976", reflect.TypeOf((*BaseJsii976)(nil)).Elem(), + nil, // no members func() interface{} { return &baseJsii976{} }, @@ -12389,6 +13114,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Bell", reflect.TypeOf((*Bell)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "ring", GoMethod: "Ring"}, + _jsii_.MemberProperty{JsiiProperty: "rung", GoGetter: "Rung"}, + }, func() interface{} { b := bell{} _jsii_.InitJsiiProxy(&b.iBell) @@ -12398,6 +13127,14 @@ func init() { _jsii_.RegisterClass( "jsii-calc.BinaryOperation", reflect.TypeOf((*BinaryOperation)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + _jsii_.MemberProperty{JsiiProperty: "lhs", GoGetter: "Lhs"}, + _jsii_.MemberProperty{JsiiProperty: "rhs", GoGetter: "Rhs"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { b := binaryOperation{} _jsii_.InitJsiiProxy(&b.Operation) @@ -12408,6 +13145,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.BurriedAnonymousObject", reflect.TypeOf((*BurriedAnonymousObject)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "check", GoMethod: "Check"}, + _jsii_.MemberMethod{JsiiMethod: "giveItBack", GoMethod: "GiveItBack"}, + }, func() interface{} { return &burriedAnonymousObject{} }, @@ -12415,6 +13156,25 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Calculator", reflect.TypeOf((*Calculator)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "add", GoMethod: "Add"}, + _jsii_.MemberProperty{JsiiProperty: "curr", GoGetter: "Curr"}, + _jsii_.MemberProperty{JsiiProperty: "decorationPostfixes", GoGetter: "DecorationPostfixes"}, + _jsii_.MemberProperty{JsiiProperty: "decorationPrefixes", GoGetter: "DecorationPrefixes"}, + _jsii_.MemberProperty{JsiiProperty: "expression", GoGetter: "Expression"}, + _jsii_.MemberProperty{JsiiProperty: "maxValue", GoGetter: "MaxValue"}, + _jsii_.MemberMethod{JsiiMethod: "mul", GoMethod: "Mul"}, + _jsii_.MemberMethod{JsiiMethod: "neg", GoMethod: "Neg"}, + _jsii_.MemberProperty{JsiiProperty: "operationsLog", GoGetter: "OperationsLog"}, + _jsii_.MemberProperty{JsiiProperty: "operationsMap", GoGetter: "OperationsMap"}, + _jsii_.MemberMethod{JsiiMethod: "pow", GoMethod: "Pow"}, + _jsii_.MemberMethod{JsiiMethod: "readUnionValue", GoMethod: "ReadUnionValue"}, + _jsii_.MemberProperty{JsiiProperty: "stringStyle", GoGetter: "StringStyle"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "unionProperty", GoGetter: "UnionProperty"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { c := calculator{} _jsii_.InitJsiiProxy(&c.CompositeOperation) @@ -12432,6 +13192,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ClassThatImplementsTheInternalInterface", reflect.TypeOf((*ClassThatImplementsTheInternalInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "a", GoGetter: "A"}, + _jsii_.MemberProperty{JsiiProperty: "b", GoGetter: "B"}, + _jsii_.MemberProperty{JsiiProperty: "c", GoGetter: "C"}, + _jsii_.MemberProperty{JsiiProperty: "d", GoGetter: "D"}, + }, func() interface{} { c := classThatImplementsTheInternalInterface{} _jsii_.InitJsiiProxy(&c.iNonInternalInterface) @@ -12441,6 +13207,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ClassThatImplementsThePrivateInterface", reflect.TypeOf((*ClassThatImplementsThePrivateInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "a", GoGetter: "A"}, + _jsii_.MemberProperty{JsiiProperty: "b", GoGetter: "B"}, + _jsii_.MemberProperty{JsiiProperty: "c", GoGetter: "C"}, + _jsii_.MemberProperty{JsiiProperty: "e", GoGetter: "E"}, + }, func() interface{} { c := classThatImplementsThePrivateInterface{} _jsii_.InitJsiiProxy(&c.iNonInternalInterface) @@ -12450,6 +13222,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ClassWithCollections", reflect.TypeOf((*ClassWithCollections)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "array", GoGetter: "Array"}, + _jsii_.MemberProperty{JsiiProperty: "map", GoGetter: "Map"}, + }, func() interface{} { return &classWithCollections{} }, @@ -12457,6 +13233,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ClassWithDocs", reflect.TypeOf((*ClassWithDocs)(nil)).Elem(), + nil, // no members func() interface{} { return &classWithDocs{} }, @@ -12464,6 +13241,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ClassWithJavaReservedWords", reflect.TypeOf((*ClassWithJavaReservedWords)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "import", GoMethod: "Import"}, + _jsii_.MemberProperty{JsiiProperty: "int", GoGetter: "Int"}, + }, func() interface{} { return &classWithJavaReservedWords{} }, @@ -12471,6 +13252,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ClassWithMutableObjectLiteralProperty", reflect.TypeOf((*ClassWithMutableObjectLiteralProperty)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "mutableObject", GoGetter: "MutableObject"}, + }, func() interface{} { return &classWithMutableObjectLiteralProperty{} }, @@ -12478,6 +13262,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ClassWithPrivateConstructorAndAutomaticProperties", reflect.TypeOf((*ClassWithPrivateConstructorAndAutomaticProperties)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "readOnlyString", GoGetter: "ReadOnlyString"}, + _jsii_.MemberProperty{JsiiProperty: "readWriteString", GoGetter: "ReadWriteString"}, + }, func() interface{} { c := classWithPrivateConstructorAndAutomaticProperties{} _jsii_.InitJsiiProxy(&c.iInterfaceWithProperties) @@ -12487,6 +13275,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ConfusingToJackson", reflect.TypeOf((*ConfusingToJackson)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "unionProperty", GoGetter: "UnionProperty"}, + }, func() interface{} { return &confusingToJackson{} }, @@ -12498,6 +13289,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ConstructorPassesThisOut", reflect.TypeOf((*ConstructorPassesThisOut)(nil)).Elem(), + nil, // no members func() interface{} { return &constructorPassesThisOut{} }, @@ -12505,6 +13297,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Constructors", reflect.TypeOf((*Constructors)(nil)).Elem(), + nil, // no members func() interface{} { return &constructors{} }, @@ -12512,6 +13305,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ConsumePureInterface", reflect.TypeOf((*ConsumePureInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "workItBaby", GoMethod: "WorkItBaby"}, + }, func() interface{} { return &consumePureInterface{} }, @@ -12519,6 +13315,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ConsumerCanRingBell", reflect.TypeOf((*ConsumerCanRingBell)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "implementedByObjectLiteral", GoMethod: "ImplementedByObjectLiteral"}, + _jsii_.MemberMethod{JsiiMethod: "implementedByPrivateClass", GoMethod: "ImplementedByPrivateClass"}, + _jsii_.MemberMethod{JsiiMethod: "implementedByPublicClass", GoMethod: "ImplementedByPublicClass"}, + _jsii_.MemberMethod{JsiiMethod: "whenTypedAsClass", GoMethod: "WhenTypedAsClass"}, + }, func() interface{} { return &consumerCanRingBell{} }, @@ -12526,6 +13328,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ConsumersOfThisCrazyTypeSystem", reflect.TypeOf((*ConsumersOfThisCrazyTypeSystem)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "consumeAnotherPublicInterface", GoMethod: "ConsumeAnotherPublicInterface"}, + _jsii_.MemberMethod{JsiiMethod: "consumeNonInternalInterface", GoMethod: "ConsumeNonInternalInterface"}, + }, func() interface{} { return &consumersOfThisCrazyTypeSystem{} }, @@ -12533,6 +13339,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DataRenderer", reflect.TypeOf((*DataRenderer)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "render", GoMethod: "Render"}, + _jsii_.MemberMethod{JsiiMethod: "renderArbitrary", GoMethod: "RenderArbitrary"}, + _jsii_.MemberMethod{JsiiMethod: "renderMap", GoMethod: "RenderMap"}, + }, func() interface{} { return &dataRenderer{} }, @@ -12540,6 +13351,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DefaultedConstructorArgument", reflect.TypeOf((*DefaultedConstructorArgument)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "arg1", GoGetter: "Arg1"}, + _jsii_.MemberProperty{JsiiProperty: "arg2", GoGetter: "Arg2"}, + _jsii_.MemberProperty{JsiiProperty: "arg3", GoGetter: "Arg3"}, + }, func() interface{} { return &defaultedConstructorArgument{} }, @@ -12547,6 +13363,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Demonstrate982", reflect.TypeOf((*Demonstrate982)(nil)).Elem(), + nil, // no members func() interface{} { return &demonstrate982{} }, @@ -12554,6 +13371,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DeprecatedClass", reflect.TypeOf((*DeprecatedClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "mutableProperty", GoGetter: "MutableProperty"}, + _jsii_.MemberProperty{JsiiProperty: "readonlyProperty", GoGetter: "ReadonlyProperty"}, + }, func() interface{} { return &deprecatedClass{} }, @@ -12597,6 +13419,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DisappointingCollectionSource", reflect.TypeOf((*DisappointingCollectionSource)(nil)).Elem(), + nil, // no members func() interface{} { return &disappointingCollectionSource{} }, @@ -12604,6 +13427,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DoNotOverridePrivates", reflect.TypeOf((*DoNotOverridePrivates)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "changePrivatePropertyValue", GoMethod: "ChangePrivatePropertyValue"}, + _jsii_.MemberMethod{JsiiMethod: "privateMethodValue", GoMethod: "PrivateMethodValue"}, + _jsii_.MemberMethod{JsiiMethod: "privatePropertyValue", GoMethod: "PrivatePropertyValue"}, + }, func() interface{} { return &doNotOverridePrivates{} }, @@ -12611,6 +13439,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DoNotRecognizeAnyAsOptional", reflect.TypeOf((*DoNotRecognizeAnyAsOptional)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + }, func() interface{} { return &doNotRecognizeAnyAsOptional{} }, @@ -12618,6 +13449,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DocumentedClass", reflect.TypeOf((*DocumentedClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "greet", GoMethod: "Greet"}, + _jsii_.MemberMethod{JsiiMethod: "hola", GoMethod: "Hola"}, + }, func() interface{} { return &documentedClass{} }, @@ -12625,6 +13460,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DontComplainAboutVariadicAfterOptional", reflect.TypeOf((*DontComplainAboutVariadicAfterOptional)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "optionalAndVariadic", GoMethod: "OptionalAndVariadic"}, + }, func() interface{} { return &dontComplainAboutVariadicAfterOptional{} }, @@ -12632,6 +13470,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DoubleTrouble", reflect.TypeOf((*DoubleTrouble)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + _jsii_.MemberMethod{JsiiMethod: "next", GoMethod: "Next"}, + }, func() interface{} { d := doubleTrouble{} _jsii_.InitJsiiProxy(&d.iFriendlyRandomGenerator) @@ -12641,6 +13483,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DynamicPropertyBearer", reflect.TypeOf((*DynamicPropertyBearer)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "dynamicProperty", GoGetter: "DynamicProperty"}, + _jsii_.MemberProperty{JsiiProperty: "valueStore", GoGetter: "ValueStore"}, + }, func() interface{} { return &dynamicPropertyBearer{} }, @@ -12648,6 +13494,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.DynamicPropertyBearerChild", reflect.TypeOf((*DynamicPropertyBearerChild)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "dynamicProperty", GoGetter: "DynamicProperty"}, + _jsii_.MemberProperty{JsiiProperty: "originalValue", GoGetter: "OriginalValue"}, + _jsii_.MemberMethod{JsiiMethod: "overrideValue", GoMethod: "OverrideValue"}, + _jsii_.MemberProperty{JsiiProperty: "valueStore", GoGetter: "ValueStore"}, + }, func() interface{} { d := dynamicPropertyBearerChild{} _jsii_.InitJsiiProxy(&d.dynamicPropertyBearer) @@ -12657,6 +13509,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Entropy", reflect.TypeOf((*Entropy)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "increase", GoMethod: "Increase"}, + _jsii_.MemberMethod{JsiiMethod: "repeat", GoMethod: "Repeat"}, + }, func() interface{} { return &entropy{} }, @@ -12664,6 +13520,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.EnumDispenser", reflect.TypeOf((*EnumDispenser)(nil)).Elem(), + nil, // no members func() interface{} { return &enumDispenser{} }, @@ -12671,6 +13528,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.EraseUndefinedHashValues", reflect.TypeOf((*EraseUndefinedHashValues)(nil)).Elem(), + nil, // no members func() interface{} { return &eraseUndefinedHashValues{} }, @@ -12682,6 +13540,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ExperimentalClass", reflect.TypeOf((*ExperimentalClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "mutableProperty", GoGetter: "MutableProperty"}, + _jsii_.MemberProperty{JsiiProperty: "readonlyProperty", GoGetter: "ReadonlyProperty"}, + }, func() interface{} { return &experimentalClass{} }, @@ -12701,6 +13564,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ExportedBaseClass", reflect.TypeOf((*ExportedBaseClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "success", GoGetter: "Success"}, + }, func() interface{} { return &exportedBaseClass{} }, @@ -12712,6 +13578,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ExternalClass", reflect.TypeOf((*ExternalClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "mutableProperty", GoGetter: "MutableProperty"}, + _jsii_.MemberProperty{JsiiProperty: "readonlyProperty", GoGetter: "ReadonlyProperty"}, + }, func() interface{} { return &externalClass{} }, @@ -12731,6 +13602,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.GiveMeStructs", reflect.TypeOf((*GiveMeStructs)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "derivedToFirst", GoMethod: "DerivedToFirst"}, + _jsii_.MemberMethod{JsiiMethod: "readDerivedNonPrimitive", GoMethod: "ReadDerivedNonPrimitive"}, + _jsii_.MemberMethod{JsiiMethod: "readFirstNumber", GoMethod: "ReadFirstNumber"}, + _jsii_.MemberProperty{JsiiProperty: "structLiteral", GoGetter: "StructLiteral"}, + }, func() interface{} { return &giveMeStructs{} }, @@ -12742,6 +13619,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.GreetingAugmenter", reflect.TypeOf((*GreetingAugmenter)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "betterGreeting", GoMethod: "BetterGreeting"}, + }, func() interface{} { return &greetingAugmenter{} }, @@ -12749,6 +13629,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IAnonymousImplementationProvider", reflect.TypeOf((*IAnonymousImplementationProvider)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "provideAsClass", GoMethod: "ProvideAsClass"}, + _jsii_.MemberMethod{JsiiMethod: "provideAsInterface", GoMethod: "ProvideAsInterface"}, + }, func() interface{} { return &iAnonymousImplementationProvider{} }, @@ -12756,6 +13640,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IAnonymouslyImplementMe", reflect.TypeOf((*IAnonymouslyImplementMe)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + _jsii_.MemberMethod{JsiiMethod: "verb", GoMethod: "Verb"}, + }, func() interface{} { return &iAnonymouslyImplementMe{} }, @@ -12763,6 +13651,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IAnotherPublicInterface", reflect.TypeOf((*IAnotherPublicInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "a", GoGetter: "A"}, + }, func() interface{} { return &iAnotherPublicInterface{} }, @@ -12770,6 +13661,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IBell", reflect.TypeOf((*IBell)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "ring", GoMethod: "Ring"}, + }, func() interface{} { return &iBell{} }, @@ -12777,6 +13671,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IBellRinger", reflect.TypeOf((*IBellRinger)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "yourTurn", GoMethod: "YourTurn"}, + }, func() interface{} { return &iBellRinger{} }, @@ -12784,6 +13681,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IConcreteBellRinger", reflect.TypeOf((*IConcreteBellRinger)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "yourTurn", GoMethod: "YourTurn"}, + }, func() interface{} { return &iConcreteBellRinger{} }, @@ -12791,6 +13691,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IDeprecatedInterface", reflect.TypeOf((*IDeprecatedInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "mutableProperty", GoGetter: "MutableProperty"}, + }, func() interface{} { return &iDeprecatedInterface{} }, @@ -12798,6 +13702,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IExperimentalInterface", reflect.TypeOf((*IExperimentalInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "mutableProperty", GoGetter: "MutableProperty"}, + }, func() interface{} { return &iExperimentalInterface{} }, @@ -12805,6 +13713,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IExtendsPrivateInterface", reflect.TypeOf((*IExtendsPrivateInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "moreThings", GoGetter: "MoreThings"}, + _jsii_.MemberProperty{JsiiProperty: "private", GoGetter: "Private"}, + }, func() interface{} { return &iExtendsPrivateInterface{} }, @@ -12812,6 +13724,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IExternalInterface", reflect.TypeOf((*IExternalInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "mutableProperty", GoGetter: "MutableProperty"}, + }, func() interface{} { return &iExternalInterface{} }, @@ -12819,6 +13735,11 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IFriendlier", reflect.TypeOf((*IFriendlier)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "farewell", GoMethod: "Farewell"}, + _jsii_.MemberMethod{JsiiMethod: "goodbye", GoMethod: "Goodbye"}, + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + }, func() interface{} { i := iFriendlier{} _jsii_.InitJsiiProxy(&i.IFriendly) @@ -12828,6 +13749,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IFriendlyRandomGenerator", reflect.TypeOf((*IFriendlyRandomGenerator)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + _jsii_.MemberMethod{JsiiMethod: "next", GoMethod: "Next"}, + }, func() interface{} { i := iFriendlyRandomGenerator{} _jsii_.InitJsiiProxy(&i.IFriendly) @@ -12838,6 +13763,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IInterfaceImplementedByAbstractClass", reflect.TypeOf((*IInterfaceImplementedByAbstractClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "propFromInterface", GoGetter: "PropFromInterface"}, + }, func() interface{} { return &iInterfaceImplementedByAbstractClass{} }, @@ -12845,6 +13773,11 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IInterfaceThatShouldNotBeADataType", reflect.TypeOf((*IInterfaceThatShouldNotBeADataType)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "doThings", GoMethod: "DoThings"}, + _jsii_.MemberProperty{JsiiProperty: "otherValue", GoGetter: "OtherValue"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { i := iInterfaceThatShouldNotBeADataType{} _jsii_.InitJsiiProxy(&i.iInterfaceWithMethods) @@ -12854,6 +13787,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IInterfaceWithInternal", reflect.TypeOf((*IInterfaceWithInternal)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "visible", GoMethod: "Visible"}, + }, func() interface{} { return &iInterfaceWithInternal{} }, @@ -12861,6 +13797,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IInterfaceWithMethods", reflect.TypeOf((*IInterfaceWithMethods)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "doThings", GoMethod: "DoThings"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { return &iInterfaceWithMethods{} }, @@ -12868,6 +13808,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IInterfaceWithOptionalMethodArguments", reflect.TypeOf((*IInterfaceWithOptionalMethodArguments)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + }, func() interface{} { return &iInterfaceWithOptionalMethodArguments{} }, @@ -12875,6 +13818,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IInterfaceWithProperties", reflect.TypeOf((*IInterfaceWithProperties)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "readOnlyString", GoGetter: "ReadOnlyString"}, + _jsii_.MemberProperty{JsiiProperty: "readWriteString", GoGetter: "ReadWriteString"}, + }, func() interface{} { return &iInterfaceWithProperties{} }, @@ -12882,6 +13829,11 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IInterfaceWithPropertiesExtension", reflect.TypeOf((*IInterfaceWithPropertiesExtension)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "foo", GoGetter: "Foo"}, + _jsii_.MemberProperty{JsiiProperty: "readOnlyString", GoGetter: "ReadOnlyString"}, + _jsii_.MemberProperty{JsiiProperty: "readWriteString", GoGetter: "ReadWriteString"}, + }, func() interface{} { i := iInterfaceWithPropertiesExtension{} _jsii_.InitJsiiProxy(&i.iInterfaceWithProperties) @@ -12891,6 +13843,13 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IJSII417Derived", reflect.TypeOf((*Ijsii417Derived)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "bar", GoMethod: "Bar"}, + _jsii_.MemberMethod{JsiiMethod: "baz", GoMethod: "Baz"}, + _jsii_.MemberMethod{JsiiMethod: "foo", GoMethod: "Foo"}, + _jsii_.MemberProperty{JsiiProperty: "hasRoot", GoGetter: "HasRoot"}, + _jsii_.MemberProperty{JsiiProperty: "property", GoGetter: "Property"}, + }, func() interface{} { i := ijsii417Derived{} _jsii_.InitJsiiProxy(&i.ijsii417PublicBaseOfBase) @@ -12900,6 +13859,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IJSII417PublicBaseOfBase", reflect.TypeOf((*Ijsii417PublicBaseOfBase)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "foo", GoMethod: "Foo"}, + _jsii_.MemberProperty{JsiiProperty: "hasRoot", GoGetter: "HasRoot"}, + }, func() interface{} { return &ijsii417PublicBaseOfBase{} }, @@ -12907,6 +13870,7 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IJsii487External", reflect.TypeOf((*IJsii487External)(nil)).Elem(), + nil, // no members func() interface{} { return &iJsii487External{} }, @@ -12914,6 +13878,7 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IJsii487External2", reflect.TypeOf((*IJsii487External2)(nil)).Elem(), + nil, // no members func() interface{} { return &iJsii487External2{} }, @@ -12921,6 +13886,7 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IJsii496", reflect.TypeOf((*IJsii496)(nil)).Elem(), + nil, // no members func() interface{} { return &iJsii496{} }, @@ -12928,6 +13894,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IMutableObjectLiteral", reflect.TypeOf((*IMutableObjectLiteral)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { return &iMutableObjectLiteral{} }, @@ -12935,6 +13904,11 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.INonInternalInterface", reflect.TypeOf((*INonInternalInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "a", GoGetter: "A"}, + _jsii_.MemberProperty{JsiiProperty: "b", GoGetter: "B"}, + _jsii_.MemberProperty{JsiiProperty: "c", GoGetter: "C"}, + }, func() interface{} { i := iNonInternalInterface{} _jsii_.InitJsiiProxy(&i.iAnotherPublicInterface) @@ -12944,6 +13918,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IObjectWithProperty", reflect.TypeOf((*IObjectWithProperty)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "property", GoGetter: "Property"}, + _jsii_.MemberMethod{JsiiMethod: "wasSet", GoMethod: "WasSet"}, + }, func() interface{} { return &iObjectWithProperty{} }, @@ -12951,6 +13929,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IOptionalMethod", reflect.TypeOf((*IOptionalMethod)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "optional", GoMethod: "Optional"}, + }, func() interface{} { return &iOptionalMethod{} }, @@ -12958,6 +13939,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IPrivatelyImplemented", reflect.TypeOf((*IPrivatelyImplemented)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "success", GoGetter: "Success"}, + }, func() interface{} { return &iPrivatelyImplemented{} }, @@ -12965,6 +13949,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IPublicInterface", reflect.TypeOf((*IPublicInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "bye", GoMethod: "Bye"}, + }, func() interface{} { return &iPublicInterface{} }, @@ -12972,6 +13959,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IPublicInterface2", reflect.TypeOf((*IPublicInterface2)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "ciao", GoMethod: "Ciao"}, + }, func() interface{} { return &iPublicInterface2{} }, @@ -12979,6 +13969,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IRandomNumberGenerator", reflect.TypeOf((*IRandomNumberGenerator)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "next", GoMethod: "Next"}, + }, func() interface{} { return &iRandomNumberGenerator{} }, @@ -12986,6 +13979,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IReturnJsii976", reflect.TypeOf((*IReturnJsii976)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "foo", GoGetter: "Foo"}, + }, func() interface{} { return &iReturnJsii976{} }, @@ -12993,6 +13989,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IReturnsNumber", reflect.TypeOf((*IReturnsNumber)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "numberProp", GoGetter: "NumberProp"}, + _jsii_.MemberMethod{JsiiMethod: "obtainNumber", GoMethod: "ObtainNumber"}, + }, func() interface{} { return &iReturnsNumber{} }, @@ -13000,6 +14000,10 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IStableInterface", reflect.TypeOf((*IStableInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "mutableProperty", GoGetter: "MutableProperty"}, + }, func() interface{} { return &iStableInterface{} }, @@ -13007,6 +14011,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IStructReturningDelegate", reflect.TypeOf((*IStructReturningDelegate)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "returnStruct", GoMethod: "ReturnStruct"}, + }, func() interface{} { return &iStructReturningDelegate{} }, @@ -13014,6 +14021,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.IWallClock", reflect.TypeOf((*IWallClock)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "iso8601Now", GoMethod: "Iso8601Now"}, + }, func() interface{} { return &iWallClock{} }, @@ -13021,6 +14031,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ImplementInternalInterface", reflect.TypeOf((*ImplementInternalInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "prop", GoGetter: "Prop"}, + }, func() interface{} { return &implementInternalInterface{} }, @@ -13028,6 +14041,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Implementation", reflect.TypeOf((*Implementation)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { return &implementation{} }, @@ -13035,6 +14051,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ImplementsInterfaceWithInternal", reflect.TypeOf((*ImplementsInterfaceWithInternal)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "visible", GoMethod: "Visible"}, + }, func() interface{} { i := implementsInterfaceWithInternal{} _jsii_.InitJsiiProxy(&i.iInterfaceWithInternal) @@ -13044,6 +14063,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ImplementsInterfaceWithInternalSubclass", reflect.TypeOf((*ImplementsInterfaceWithInternalSubclass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "visible", GoMethod: "Visible"}, + }, func() interface{} { i := implementsInterfaceWithInternalSubclass{} _jsii_.InitJsiiProxy(&i.implementsInterfaceWithInternal) @@ -13053,6 +14075,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ImplementsPrivateInterface", reflect.TypeOf((*ImplementsPrivateInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "private", GoGetter: "Private"}, + }, func() interface{} { return &implementsPrivateInterface{} }, @@ -13064,6 +14089,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.InbetweenClass", reflect.TypeOf((*InbetweenClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "ciao", GoMethod: "Ciao"}, + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + }, func() interface{} { i := inbetweenClass{} _jsii_.InitJsiiProxy(&i.publicClass) @@ -13074,6 +14103,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.InterfaceCollections", reflect.TypeOf((*InterfaceCollections)(nil)).Elem(), + nil, // no members func() interface{} { return &interfaceCollections{} }, @@ -13081,6 +14111,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.InterfacesMaker", reflect.TypeOf((*InterfacesMaker)(nil)).Elem(), + nil, // no members func() interface{} { return &interfacesMaker{} }, @@ -13088,6 +14119,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Isomorphism", reflect.TypeOf((*Isomorphism)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "myself", GoMethod: "Myself"}, + }, func() interface{} { return &isomorphism{} }, @@ -13095,6 +14129,13 @@ func init() { _jsii_.RegisterClass( "jsii-calc.JSII417Derived", reflect.TypeOf((*Jsii417Derived)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "bar", GoMethod: "Bar"}, + _jsii_.MemberMethod{JsiiMethod: "baz", GoMethod: "Baz"}, + _jsii_.MemberMethod{JsiiMethod: "foo", GoMethod: "Foo"}, + _jsii_.MemberProperty{JsiiProperty: "hasRoot", GoGetter: "HasRoot"}, + _jsii_.MemberProperty{JsiiProperty: "property", GoGetter: "Property"}, + }, func() interface{} { j := jsii417Derived{} _jsii_.InitJsiiProxy(&j.jsii417PublicBaseOfBase) @@ -13104,6 +14145,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.JSII417PublicBaseOfBase", reflect.TypeOf((*Jsii417PublicBaseOfBase)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "foo", GoMethod: "Foo"}, + _jsii_.MemberProperty{JsiiProperty: "hasRoot", GoGetter: "HasRoot"}, + }, func() interface{} { return &jsii417PublicBaseOfBase{} }, @@ -13111,6 +14156,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.JSObjectLiteralForInterface", reflect.TypeOf((*JsObjectLiteralForInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "giveMeFriendly", GoMethod: "GiveMeFriendly"}, + _jsii_.MemberMethod{JsiiMethod: "giveMeFriendlyGenerator", GoMethod: "GiveMeFriendlyGenerator"}, + }, func() interface{} { return &jsObjectLiteralForInterface{} }, @@ -13118,6 +14167,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.JSObjectLiteralToNative", reflect.TypeOf((*JsObjectLiteralToNative)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "returnLiteral", GoMethod: "ReturnLiteral"}, + }, func() interface{} { return &jsObjectLiteralToNative{} }, @@ -13125,6 +14177,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.JSObjectLiteralToNativeClass", reflect.TypeOf((*JsObjectLiteralToNativeClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "propA", GoGetter: "PropA"}, + _jsii_.MemberProperty{JsiiProperty: "propB", GoGetter: "PropB"}, + }, func() interface{} { return &jsObjectLiteralToNativeClass{} }, @@ -13132,6 +14188,61 @@ func init() { _jsii_.RegisterClass( "jsii-calc.JavaReservedWords", reflect.TypeOf((*JavaReservedWords)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "abstract", GoMethod: "Abstract"}, + _jsii_.MemberMethod{JsiiMethod: "assert", GoMethod: "Assert"}, + _jsii_.MemberMethod{JsiiMethod: "boolean", GoMethod: "Boolean"}, + _jsii_.MemberMethod{JsiiMethod: "break", GoMethod: "Break"}, + _jsii_.MemberMethod{JsiiMethod: "byte", GoMethod: "Byte"}, + _jsii_.MemberMethod{JsiiMethod: "case", GoMethod: "Case"}, + _jsii_.MemberMethod{JsiiMethod: "catch", GoMethod: "Catch"}, + _jsii_.MemberMethod{JsiiMethod: "char", GoMethod: "Char"}, + _jsii_.MemberMethod{JsiiMethod: "class", GoMethod: "Class"}, + _jsii_.MemberMethod{JsiiMethod: "const", GoMethod: "Const"}, + _jsii_.MemberMethod{JsiiMethod: "continue", GoMethod: "Continue"}, + _jsii_.MemberMethod{JsiiMethod: "default", GoMethod: "Default"}, + _jsii_.MemberMethod{JsiiMethod: "do", GoMethod: "Do"}, + _jsii_.MemberMethod{JsiiMethod: "double", GoMethod: "Double"}, + _jsii_.MemberMethod{JsiiMethod: "else", GoMethod: "Else"}, + _jsii_.MemberMethod{JsiiMethod: "enum", GoMethod: "Enum"}, + _jsii_.MemberMethod{JsiiMethod: "extends", GoMethod: "Extends"}, + _jsii_.MemberMethod{JsiiMethod: "false", GoMethod: "False"}, + _jsii_.MemberMethod{JsiiMethod: "final", GoMethod: "Final"}, + _jsii_.MemberMethod{JsiiMethod: "finally", GoMethod: "Finally"}, + _jsii_.MemberMethod{JsiiMethod: "float", GoMethod: "Float"}, + _jsii_.MemberMethod{JsiiMethod: "for", GoMethod: "For"}, + _jsii_.MemberMethod{JsiiMethod: "goto", GoMethod: "Goto"}, + _jsii_.MemberMethod{JsiiMethod: "if", GoMethod: "If"}, + _jsii_.MemberMethod{JsiiMethod: "implements", GoMethod: "Implements"}, + _jsii_.MemberMethod{JsiiMethod: "import", GoMethod: "Import"}, + _jsii_.MemberMethod{JsiiMethod: "instanceof", GoMethod: "Instanceof"}, + _jsii_.MemberMethod{JsiiMethod: "int", GoMethod: "Int"}, + _jsii_.MemberMethod{JsiiMethod: "interface", GoMethod: "Interface"}, + _jsii_.MemberMethod{JsiiMethod: "long", GoMethod: "Long"}, + _jsii_.MemberMethod{JsiiMethod: "native", GoMethod: "Native"}, + _jsii_.MemberMethod{JsiiMethod: "new", GoMethod: "New"}, + _jsii_.MemberMethod{JsiiMethod: "null", GoMethod: "Null"}, + _jsii_.MemberMethod{JsiiMethod: "package", GoMethod: "Package"}, + _jsii_.MemberMethod{JsiiMethod: "private", GoMethod: "Private"}, + _jsii_.MemberMethod{JsiiMethod: "protected", GoMethod: "Protected"}, + _jsii_.MemberMethod{JsiiMethod: "public", GoMethod: "Public"}, + _jsii_.MemberMethod{JsiiMethod: "return", GoMethod: "Return"}, + _jsii_.MemberMethod{JsiiMethod: "short", GoMethod: "Short"}, + _jsii_.MemberMethod{JsiiMethod: "static", GoMethod: "Static"}, + _jsii_.MemberMethod{JsiiMethod: "strictfp", GoMethod: "Strictfp"}, + _jsii_.MemberMethod{JsiiMethod: "super", GoMethod: "Super"}, + _jsii_.MemberMethod{JsiiMethod: "switch", GoMethod: "Switch"}, + _jsii_.MemberMethod{JsiiMethod: "synchronized", GoMethod: "Synchronized"}, + _jsii_.MemberMethod{JsiiMethod: "this", GoMethod: "This"}, + _jsii_.MemberMethod{JsiiMethod: "throw", GoMethod: "Throw"}, + _jsii_.MemberMethod{JsiiMethod: "throws", GoMethod: "Throws"}, + _jsii_.MemberMethod{JsiiMethod: "transient", GoMethod: "Transient"}, + _jsii_.MemberMethod{JsiiMethod: "true", GoMethod: "True"}, + _jsii_.MemberMethod{JsiiMethod: "try", GoMethod: "Try"}, + _jsii_.MemberMethod{JsiiMethod: "void", GoMethod: "Void"}, + _jsii_.MemberMethod{JsiiMethod: "volatile", GoMethod: "Volatile"}, + _jsii_.MemberProperty{JsiiProperty: "while", GoGetter: "While"}, + }, func() interface{} { return &javaReservedWords{} }, @@ -13139,6 +14250,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Jsii487Derived", reflect.TypeOf((*Jsii487Derived)(nil)).Elem(), + nil, // no members func() interface{} { j := jsii487Derived{} _jsii_.InitJsiiProxy(&j.iJsii487External) @@ -13149,6 +14261,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Jsii496Derived", reflect.TypeOf((*Jsii496Derived)(nil)).Elem(), + nil, // no members func() interface{} { j := jsii496Derived{} _jsii_.InitJsiiProxy(&j.iJsii496) @@ -13158,6 +14271,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.JsiiAgent", reflect.TypeOf((*JsiiAgent)(nil)).Elem(), + nil, // no members func() interface{} { return &jsiiAgent{} }, @@ -13165,6 +14279,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.JsonFormatter", reflect.TypeOf((*JsonFormatter)(nil)).Elem(), + nil, // no members func() interface{} { return &jsonFormatter{} }, @@ -13172,6 +14287,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.LevelOne", reflect.TypeOf((*LevelOne)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "props", GoGetter: "Props"}, + }, func() interface{} { return &levelOne{} }, @@ -13195,6 +14313,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.MethodNamedProperty", reflect.TypeOf((*MethodNamedProperty)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "elite", GoGetter: "Elite"}, + _jsii_.MemberMethod{JsiiMethod: "property", GoMethod: "Property"}, + }, func() interface{} { return &methodNamedProperty{} }, @@ -13202,6 +14324,17 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Multiply", reflect.TypeOf((*Multiply)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "farewell", GoMethod: "Farewell"}, + _jsii_.MemberMethod{JsiiMethod: "goodbye", GoMethod: "Goodbye"}, + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + _jsii_.MemberProperty{JsiiProperty: "lhs", GoGetter: "Lhs"}, + _jsii_.MemberMethod{JsiiMethod: "next", GoMethod: "Next"}, + _jsii_.MemberProperty{JsiiProperty: "rhs", GoGetter: "Rhs"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { m := multiply{} _jsii_.InitJsiiProxy(&m.binaryOperation) @@ -13213,6 +14346,15 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Negate", reflect.TypeOf((*Negate)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "farewell", GoMethod: "Farewell"}, + _jsii_.MemberMethod{JsiiMethod: "goodbye", GoMethod: "Goodbye"}, + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + _jsii_.MemberProperty{JsiiProperty: "operand", GoGetter: "Operand"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { n := negate{} _jsii_.InitJsiiProxy(&n.unaryOperation) @@ -13223,6 +14365,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.NestedClassInstance", reflect.TypeOf((*NestedClassInstance)(nil)).Elem(), + nil, // no members func() interface{} { return &nestedClassInstance{} }, @@ -13234,6 +14377,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.NodeStandardLibrary", reflect.TypeOf((*NodeStandardLibrary)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "cryptoSha256", GoMethod: "CryptoSha256"}, + _jsii_.MemberMethod{JsiiMethod: "fsReadFile", GoMethod: "FsReadFile"}, + _jsii_.MemberMethod{JsiiMethod: "fsReadFileSync", GoMethod: "FsReadFileSync"}, + _jsii_.MemberProperty{JsiiProperty: "osPlatform", GoGetter: "OsPlatform"}, + }, func() interface{} { return &nodeStandardLibrary{} }, @@ -13241,6 +14390,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.NullShouldBeTreatedAsUndefined", reflect.TypeOf((*NullShouldBeTreatedAsUndefined)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "changeMeToUndefined", GoGetter: "ChangeMeToUndefined"}, + _jsii_.MemberMethod{JsiiMethod: "giveMeUndefined", GoMethod: "GiveMeUndefined"}, + _jsii_.MemberMethod{JsiiMethod: "giveMeUndefinedInsideAnObject", GoMethod: "GiveMeUndefinedInsideAnObject"}, + _jsii_.MemberMethod{JsiiMethod: "verifyPropertyIsUndefined", GoMethod: "VerifyPropertyIsUndefined"}, + }, func() interface{} { return &nullShouldBeTreatedAsUndefined{} }, @@ -13252,6 +14407,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.NumberGenerator", reflect.TypeOf((*NumberGenerator)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "generator", GoGetter: "Generator"}, + _jsii_.MemberMethod{JsiiMethod: "isSameGenerator", GoMethod: "IsSameGenerator"}, + _jsii_.MemberMethod{JsiiMethod: "nextTimes100", GoMethod: "NextTimes100"}, + }, func() interface{} { return &numberGenerator{} }, @@ -13259,6 +14419,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ObjectRefsInCollections", reflect.TypeOf((*ObjectRefsInCollections)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "sumFromArray", GoMethod: "SumFromArray"}, + _jsii_.MemberMethod{JsiiMethod: "sumFromMap", GoMethod: "SumFromMap"}, + }, func() interface{} { return &objectRefsInCollections{} }, @@ -13266,6 +14430,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ObjectWithPropertyProvider", reflect.TypeOf((*ObjectWithPropertyProvider)(nil)).Elem(), + nil, // no members func() interface{} { return &objectWithPropertyProvider{} }, @@ -13273,6 +14438,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Old", reflect.TypeOf((*Old)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "doAThing", GoMethod: "DoAThing"}, + }, func() interface{} { return &old{} }, @@ -13280,6 +14448,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.OptionalArgumentInvoker", reflect.TypeOf((*OptionalArgumentInvoker)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "invokeWithOptional", GoMethod: "InvokeWithOptional"}, + _jsii_.MemberMethod{JsiiMethod: "invokeWithoutOptional", GoMethod: "InvokeWithoutOptional"}, + }, func() interface{} { return &optionalArgumentInvoker{} }, @@ -13287,6 +14459,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.OptionalConstructorArgument", reflect.TypeOf((*OptionalConstructorArgument)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "arg1", GoGetter: "Arg1"}, + _jsii_.MemberProperty{JsiiProperty: "arg2", GoGetter: "Arg2"}, + _jsii_.MemberProperty{JsiiProperty: "arg3", GoGetter: "Arg3"}, + }, func() interface{} { return &optionalConstructorArgument{} }, @@ -13298,6 +14475,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.OptionalStructConsumer", reflect.TypeOf((*OptionalStructConsumer)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "fieldValue", GoGetter: "FieldValue"}, + _jsii_.MemberProperty{JsiiProperty: "parameterWasUndefined", GoGetter: "ParameterWasUndefined"}, + }, func() interface{} { return &optionalStructConsumer{} }, @@ -13305,6 +14486,13 @@ func init() { _jsii_.RegisterClass( "jsii-calc.OverridableProtectedMember", reflect.TypeOf((*OverridableProtectedMember)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "overrideMe", GoMethod: "OverrideMe"}, + _jsii_.MemberProperty{JsiiProperty: "overrideReadOnly", GoGetter: "OverrideReadOnly"}, + _jsii_.MemberProperty{JsiiProperty: "overrideReadWrite", GoGetter: "OverrideReadWrite"}, + _jsii_.MemberMethod{JsiiMethod: "switchModes", GoMethod: "SwitchModes"}, + _jsii_.MemberMethod{JsiiMethod: "valueFromProtected", GoMethod: "ValueFromProtected"}, + }, func() interface{} { return &overridableProtectedMember{} }, @@ -13312,6 +14500,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.OverrideReturnsObject", reflect.TypeOf((*OverrideReturnsObject)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "test", GoMethod: "Test"}, + }, func() interface{} { return &overrideReturnsObject{} }, @@ -13323,6 +14514,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.PartiallyInitializedThisConsumer", reflect.TypeOf((*PartiallyInitializedThisConsumer)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "consumePartiallyInitializedThis", GoMethod: "ConsumePartiallyInitializedThis"}, + }, func() interface{} { return &partiallyInitializedThisConsumer{} }, @@ -13330,6 +14524,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Polymorphism", reflect.TypeOf((*Polymorphism)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "sayHello", GoMethod: "SayHello"}, + }, func() interface{} { return &polymorphism{} }, @@ -13337,6 +14534,17 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Power", reflect.TypeOf((*Power)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "base", GoGetter: "Base"}, + _jsii_.MemberProperty{JsiiProperty: "decorationPostfixes", GoGetter: "DecorationPostfixes"}, + _jsii_.MemberProperty{JsiiProperty: "decorationPrefixes", GoGetter: "DecorationPrefixes"}, + _jsii_.MemberProperty{JsiiProperty: "expression", GoGetter: "Expression"}, + _jsii_.MemberProperty{JsiiProperty: "pow", GoGetter: "Pow"}, + _jsii_.MemberProperty{JsiiProperty: "stringStyle", GoGetter: "StringStyle"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { p := power{} _jsii_.InitJsiiProxy(&p.CompositeOperation) @@ -13346,6 +14554,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.PropertyNamedProperty", reflect.TypeOf((*PropertyNamedProperty)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "property", GoGetter: "Property"}, + _jsii_.MemberProperty{JsiiProperty: "yetAnoterOne", GoGetter: "YetAnoterOne"}, + }, func() interface{} { return &propertyNamedProperty{} }, @@ -13353,6 +14565,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.PublicClass", reflect.TypeOf((*PublicClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + }, func() interface{} { return &publicClass{} }, @@ -13360,6 +14575,40 @@ func init() { _jsii_.RegisterClass( "jsii-calc.PythonReservedWords", reflect.TypeOf((*PythonReservedWords)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "and", GoMethod: "And"}, + _jsii_.MemberMethod{JsiiMethod: "as", GoMethod: "As"}, + _jsii_.MemberMethod{JsiiMethod: "assert", GoMethod: "Assert"}, + _jsii_.MemberMethod{JsiiMethod: "async", GoMethod: "Async"}, + _jsii_.MemberMethod{JsiiMethod: "await", GoMethod: "Await"}, + _jsii_.MemberMethod{JsiiMethod: "break", GoMethod: "Break"}, + _jsii_.MemberMethod{JsiiMethod: "class", GoMethod: "Class"}, + _jsii_.MemberMethod{JsiiMethod: "continue", GoMethod: "Continue"}, + _jsii_.MemberMethod{JsiiMethod: "def", GoMethod: "Def"}, + _jsii_.MemberMethod{JsiiMethod: "del", GoMethod: "Del"}, + _jsii_.MemberMethod{JsiiMethod: "elif", GoMethod: "Elif"}, + _jsii_.MemberMethod{JsiiMethod: "else", GoMethod: "Else"}, + _jsii_.MemberMethod{JsiiMethod: "except", GoMethod: "Except"}, + _jsii_.MemberMethod{JsiiMethod: "finally", GoMethod: "Finally"}, + _jsii_.MemberMethod{JsiiMethod: "for", GoMethod: "For"}, + _jsii_.MemberMethod{JsiiMethod: "from", GoMethod: "From"}, + _jsii_.MemberMethod{JsiiMethod: "global", GoMethod: "Global"}, + _jsii_.MemberMethod{JsiiMethod: "if", GoMethod: "If"}, + _jsii_.MemberMethod{JsiiMethod: "import", GoMethod: "Import"}, + _jsii_.MemberMethod{JsiiMethod: "in", GoMethod: "In"}, + _jsii_.MemberMethod{JsiiMethod: "is", GoMethod: "Is"}, + _jsii_.MemberMethod{JsiiMethod: "lambda", GoMethod: "Lambda"}, + _jsii_.MemberMethod{JsiiMethod: "nonlocal", GoMethod: "Nonlocal"}, + _jsii_.MemberMethod{JsiiMethod: "not", GoMethod: "Not"}, + _jsii_.MemberMethod{JsiiMethod: "or", GoMethod: "Or"}, + _jsii_.MemberMethod{JsiiMethod: "pass", GoMethod: "Pass"}, + _jsii_.MemberMethod{JsiiMethod: "raise", GoMethod: "Raise"}, + _jsii_.MemberMethod{JsiiMethod: "return", GoMethod: "Return"}, + _jsii_.MemberMethod{JsiiMethod: "try", GoMethod: "Try"}, + _jsii_.MemberMethod{JsiiMethod: "while", GoMethod: "While"}, + _jsii_.MemberMethod{JsiiMethod: "with", GoMethod: "With"}, + _jsii_.MemberMethod{JsiiMethod: "yield", GoMethod: "Yield"}, + }, func() interface{} { return &pythonReservedWords{} }, @@ -13367,6 +14616,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ReferenceEnumFromScopedPackage", reflect.TypeOf((*ReferenceEnumFromScopedPackage)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "foo", GoGetter: "Foo"}, + _jsii_.MemberMethod{JsiiMethod: "loadFoo", GoMethod: "LoadFoo"}, + _jsii_.MemberMethod{JsiiMethod: "saveFoo", GoMethod: "SaveFoo"}, + }, func() interface{} { return &referenceEnumFromScopedPackage{} }, @@ -13374,6 +14628,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.ReturnsPrivateImplementationOfInterface", reflect.TypeOf((*ReturnsPrivateImplementationOfInterface)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "privateImplementation", GoGetter: "PrivateImplementation"}, + }, func() interface{} { return &returnsPrivateImplementationOfInterface{} }, @@ -13385,6 +14642,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.RootStructValidator", reflect.TypeOf((*RootStructValidator)(nil)).Elem(), + nil, // no members func() interface{} { return &rootStructValidator{} }, @@ -13392,6 +14650,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.RuntimeTypeChecking", reflect.TypeOf((*RuntimeTypeChecking)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "methodWithDefaultedArguments", GoMethod: "MethodWithDefaultedArguments"}, + _jsii_.MemberMethod{JsiiMethod: "methodWithOptionalAnyArgument", GoMethod: "MethodWithOptionalAnyArgument"}, + _jsii_.MemberMethod{JsiiMethod: "methodWithOptionalArguments", GoMethod: "MethodWithOptionalArguments"}, + }, func() interface{} { return &runtimeTypeChecking{} }, @@ -13403,6 +14666,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.SingleInstanceTwoTypes", reflect.TypeOf((*SingleInstanceTwoTypes)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "interface1", GoMethod: "Interface1"}, + _jsii_.MemberMethod{JsiiMethod: "interface2", GoMethod: "Interface2"}, + }, func() interface{} { return &singleInstanceTwoTypes{} }, @@ -13410,6 +14677,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.SingletonInt", reflect.TypeOf((*SingletonInt)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "isSingletonInt", GoMethod: "IsSingletonInt"}, + }, func() interface{} { return &singletonInt{} }, @@ -13424,6 +14694,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.SingletonString", reflect.TypeOf((*SingletonString)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "isSingletonString", GoMethod: "IsSingletonString"}, + }, func() interface{} { return &singletonString{} }, @@ -13442,6 +14715,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.SomeTypeJsii976", reflect.TypeOf((*SomeTypeJsii976)(nil)).Elem(), + nil, // no members func() interface{} { return &someTypeJsii976{} }, @@ -13449,6 +14723,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.StableClass", reflect.TypeOf((*StableClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "mutableProperty", GoGetter: "MutableProperty"}, + _jsii_.MemberProperty{JsiiProperty: "readonlyProperty", GoGetter: "ReadonlyProperty"}, + }, func() interface{} { return &stableClass{} }, @@ -13468,6 +14747,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.StaticContext", reflect.TypeOf((*StaticContext)(nil)).Elem(), + nil, // no members func() interface{} { return &staticContext{} }, @@ -13475,6 +14755,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.StaticHelloChild", reflect.TypeOf((*StaticHelloChild)(nil)).Elem(), + nil, // no members func() interface{} { s := staticHelloChild{} _jsii_.InitJsiiProxy(&s.staticHelloParent) @@ -13484,6 +14765,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.StaticHelloParent", reflect.TypeOf((*StaticHelloParent)(nil)).Elem(), + nil, // no members func() interface{} { return &staticHelloParent{} }, @@ -13491,6 +14773,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Statics", reflect.TypeOf((*Statics)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "justMethod", GoMethod: "JustMethod"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { return &statics{} }, @@ -13507,6 +14793,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.StripInternal", reflect.TypeOf((*StripInternal)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "youSeeMe", GoGetter: "YouSeeMe"}, + }, func() interface{} { return &stripInternal{} }, @@ -13526,6 +14815,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.StructPassing", reflect.TypeOf((*StructPassing)(nil)).Elem(), + nil, // no members func() interface{} { return &structPassing{} }, @@ -13533,6 +14823,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.StructUnionConsumer", reflect.TypeOf((*StructUnionConsumer)(nil)).Elem(), + nil, // no members func() interface{} { return &structUnionConsumer{} }, @@ -13544,6 +14835,16 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Sum", reflect.TypeOf((*Sum)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "decorationPostfixes", GoGetter: "DecorationPostfixes"}, + _jsii_.MemberProperty{JsiiProperty: "decorationPrefixes", GoGetter: "DecorationPrefixes"}, + _jsii_.MemberProperty{JsiiProperty: "expression", GoGetter: "Expression"}, + _jsii_.MemberProperty{JsiiProperty: "parts", GoGetter: "Parts"}, + _jsii_.MemberProperty{JsiiProperty: "stringStyle", GoGetter: "StringStyle"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { s := sum{} _jsii_.InitJsiiProxy(&s.CompositeOperation) @@ -13553,6 +14854,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.SupportsNiceJavaBuilder", reflect.TypeOf((*SupportsNiceJavaBuilder)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "bar", GoGetter: "Bar"}, + _jsii_.MemberProperty{JsiiProperty: "id", GoGetter: "Id"}, + _jsii_.MemberProperty{JsiiProperty: "propId", GoGetter: "PropId"}, + _jsii_.MemberProperty{JsiiProperty: "rest", GoGetter: "Rest"}, + }, func() interface{} { s := supportsNiceJavaBuilder{} _jsii_.InitJsiiProxy(&s.supportsNiceJavaBuilderWithRequiredProps) @@ -13566,6 +14873,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.SupportsNiceJavaBuilderWithRequiredProps", reflect.TypeOf((*SupportsNiceJavaBuilderWithRequiredProps)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "bar", GoGetter: "Bar"}, + _jsii_.MemberProperty{JsiiProperty: "id", GoGetter: "Id"}, + _jsii_.MemberProperty{JsiiProperty: "propId", GoGetter: "PropId"}, + }, func() interface{} { return &supportsNiceJavaBuilderWithRequiredProps{} }, @@ -13573,6 +14885,24 @@ func init() { _jsii_.RegisterClass( "jsii-calc.SyncVirtualMethods", reflect.TypeOf((*SyncVirtualMethods)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "a", GoGetter: "A"}, + _jsii_.MemberMethod{JsiiMethod: "callerIsAsync", GoMethod: "CallerIsAsync"}, + _jsii_.MemberMethod{JsiiMethod: "callerIsMethod", GoMethod: "CallerIsMethod"}, + _jsii_.MemberProperty{JsiiProperty: "callerIsProperty", GoGetter: "CallerIsProperty"}, + _jsii_.MemberMethod{JsiiMethod: "modifyOtherProperty", GoMethod: "ModifyOtherProperty"}, + _jsii_.MemberMethod{JsiiMethod: "modifyValueOfTheProperty", GoMethod: "ModifyValueOfTheProperty"}, + _jsii_.MemberProperty{JsiiProperty: "otherProperty", GoGetter: "OtherProperty"}, + _jsii_.MemberMethod{JsiiMethod: "readA", GoMethod: "ReadA"}, + _jsii_.MemberProperty{JsiiProperty: "readonlyProperty", GoGetter: "ReadonlyProperty"}, + _jsii_.MemberMethod{JsiiMethod: "retrieveOtherProperty", GoMethod: "RetrieveOtherProperty"}, + _jsii_.MemberMethod{JsiiMethod: "retrieveReadOnlyProperty", GoMethod: "RetrieveReadOnlyProperty"}, + _jsii_.MemberMethod{JsiiMethod: "retrieveValueOfTheProperty", GoMethod: "RetrieveValueOfTheProperty"}, + _jsii_.MemberProperty{JsiiProperty: "theProperty", GoGetter: "TheProperty"}, + _jsii_.MemberProperty{JsiiProperty: "valueOfOtherProperty", GoGetter: "ValueOfOtherProperty"}, + _jsii_.MemberMethod{JsiiMethod: "virtualMethod", GoMethod: "VirtualMethod"}, + _jsii_.MemberMethod{JsiiMethod: "writeA", GoMethod: "WriteA"}, + }, func() interface{} { return &syncVirtualMethods{} }, @@ -13580,6 +14910,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.Thrower", reflect.TypeOf((*Thrower)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "throwError", GoMethod: "ThrowError"}, + }, func() interface{} { return &thrower{} }, @@ -13591,6 +14924,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.UmaskCheck", reflect.TypeOf((*UmaskCheck)(nil)).Elem(), + nil, // no members func() interface{} { return &umaskCheck{} }, @@ -13598,6 +14932,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.UnaryOperation", reflect.TypeOf((*UnaryOperation)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "operand", GoGetter: "Operand"}, + _jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"}, + _jsii_.MemberMethod{JsiiMethod: "typeName", GoMethod: "TypeName"}, + _jsii_.MemberProperty{JsiiProperty: "value", GoGetter: "Value"}, + }, func() interface{} { u := unaryOperation{} _jsii_.InitJsiiProxy(&u.Operation) @@ -13611,6 +14951,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.UpcasingReflectable", reflect.TypeOf((*UpcasingReflectable)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "entries", GoGetter: "Entries"}, + }, func() interface{} { u := upcasingReflectable{} _jsii_.InitJsiiProxy(&u.IReflectable) @@ -13620,6 +14963,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.UseBundledDependency", reflect.TypeOf((*UseBundledDependency)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "value", GoMethod: "Value"}, + }, func() interface{} { return &useBundledDependency{} }, @@ -13627,6 +14973,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.UseCalcBase", reflect.TypeOf((*UseCalcBase)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "hello", GoMethod: "Hello"}, + }, func() interface{} { return &useCalcBase{} }, @@ -13634,6 +14983,12 @@ func init() { _jsii_.RegisterClass( "jsii-calc.UsesInterfaceWithProperties", reflect.TypeOf((*UsesInterfaceWithProperties)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "justRead", GoMethod: "JustRead"}, + _jsii_.MemberProperty{JsiiProperty: "obj", GoGetter: "Obj"}, + _jsii_.MemberMethod{JsiiMethod: "readStringAndNumber", GoMethod: "ReadStringAndNumber"}, + _jsii_.MemberMethod{JsiiMethod: "writeAndRead", GoMethod: "WriteAndRead"}, + }, func() interface{} { return &usesInterfaceWithProperties{} }, @@ -13641,6 +14996,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.VariadicInvoker", reflect.TypeOf((*VariadicInvoker)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "asArray", GoMethod: "AsArray"}, + }, func() interface{} { return &variadicInvoker{} }, @@ -13648,6 +15006,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.VariadicMethod", reflect.TypeOf((*VariadicMethod)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "asArray", GoMethod: "AsArray"}, + }, func() interface{} { return &variadicMethod{} }, @@ -13655,6 +15016,13 @@ func init() { _jsii_.RegisterClass( "jsii-calc.VirtualMethodPlayground", reflect.TypeOf((*VirtualMethodPlayground)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "overrideMeAsync", GoMethod: "OverrideMeAsync"}, + _jsii_.MemberMethod{JsiiMethod: "overrideMeSync", GoMethod: "OverrideMeSync"}, + _jsii_.MemberMethod{JsiiMethod: "parallelSumAsync", GoMethod: "ParallelSumAsync"}, + _jsii_.MemberMethod{JsiiMethod: "serialSumAsync", GoMethod: "SerialSumAsync"}, + _jsii_.MemberMethod{JsiiMethod: "sumSync", GoMethod: "SumSync"}, + }, func() interface{} { return &virtualMethodPlayground{} }, @@ -13662,6 +15030,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.VoidCallback", reflect.TypeOf((*VoidCallback)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "callMe", GoMethod: "CallMe"}, + _jsii_.MemberProperty{JsiiProperty: "methodWasCalled", GoGetter: "MethodWasCalled"}, + _jsii_.MemberMethod{JsiiMethod: "overrideMe", GoMethod: "OverrideMe"}, + }, func() interface{} { return &voidCallback{} }, @@ -13669,203 +15042,11 @@ func init() { _jsii_.RegisterClass( "jsii-calc.WithPrivatePropertyInConstructor", reflect.TypeOf((*WithPrivatePropertyInConstructor)(nil)).Elem(), - func() interface{} { - return &withPrivatePropertyInConstructor{} - }, - ) -} - -`; - -exports[`Generated code for "jsii-calc": /go/jsiicalc/nodirect/nodirect.go 1`] = ` -package nodirect - - - -`; - -exports[`Generated code for "jsii-calc": /go/jsiicalc/nodirect/sub1/sub1.go 1`] = ` -package sub1 - -import ( - _jsii_ "github.com/aws/jsii-runtime-go" - _init_ "github.com/aws/jsii/jsii-calc/go/jsiicalc/v3/jsii" -) - -type TypeFromSub1 interface { - Sub1() string -} - -// The jsii proxy struct for TypeFromSub1 -type typeFromSub1 struct { - _ byte // padding -} - -func NewTypeFromSub1() TypeFromSub1 { - _init_.Initialize() - t := typeFromSub1{} - - _jsii_.Create( - "jsii-calc.nodirect.sub1.TypeFromSub1", - []interface{}{}, - []_jsii_.FQN{}, - []_jsii_.Override{}, - &t, - ) - return &t -} - -func (t *typeFromSub1) Sub1() string { - var returns string - _jsii_.Invoke( - t, - "sub1", - []interface{}{}, - true, - &returns, - ) - return returns -} - - -`; - -exports[`Generated code for "jsii-calc": /go/jsiicalc/nodirect/sub1/sub1.init.go 1`] = ` -package sub1 - -import ( - "reflect" - - _jsii_ "github.com/aws/jsii-runtime-go" -) - -func init() { - _jsii_.RegisterClass( - "jsii-calc.nodirect.sub1.TypeFromSub1", - reflect.TypeOf((*TypeFromSub1)(nil)).Elem(), - func() interface{} { - return &typeFromSub1{} - }, - ) -} - -`; - -exports[`Generated code for "jsii-calc": /go/jsiicalc/nodirect/sub2/sub2.go 1`] = ` -package sub2 - -import ( - _jsii_ "github.com/aws/jsii-runtime-go" - _init_ "github.com/aws/jsii/jsii-calc/go/jsiicalc/v3/jsii" -) - -type TypeFromSub2 interface { - Sub2() string -} - -// The jsii proxy struct for TypeFromSub2 -type typeFromSub2 struct { - _ byte // padding -} - -func NewTypeFromSub2() TypeFromSub2 { - _init_.Initialize() - t := typeFromSub2{} - - _jsii_.Create( - "jsii-calc.nodirect.sub2.TypeFromSub2", - []interface{}{}, - []_jsii_.FQN{}, - []_jsii_.Override{}, - &t, - ) - return &t -} - -func (t *typeFromSub2) Sub2() string { - var returns string - _jsii_.Invoke( - t, - "sub2", - []interface{}{}, - true, - &returns, - ) - return returns -} - - -`; - -exports[`Generated code for "jsii-calc": /go/jsiicalc/nodirect/sub2/sub2.init.go 1`] = ` -package sub2 - -import ( - "reflect" - - _jsii_ "github.com/aws/jsii-runtime-go" -) - -func init() { - _jsii_.RegisterClass( - "jsii-calc.nodirect.sub2.TypeFromSub2", - reflect.TypeOf((*TypeFromSub2)(nil)).Elem(), - func() interface{} { - return &typeFromSub2{} + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "success", GoGetter: "Success"}, }, - ) -} - -`; - -exports[`Generated code for "jsii-calc": /go/jsiicalc/onlystatic/onlystatic.go 1`] = ` -package onlystatic - -import ( - _jsii_ "github.com/aws/jsii-runtime-go" - _init_ "github.com/aws/jsii/jsii-calc/go/jsiicalc/v3/jsii" -) - -// Test for https://github.com/aws/jsii/issues/2617. -type OnlyStaticMethods interface { -} - -// The jsii proxy struct for OnlyStaticMethods -type onlyStaticMethods struct { - _ byte // padding -} - -func OnlyStaticMethods_StaticMethod() string { - _init_.Initialize() - var returns string - _jsii_.StaticInvoke( - "jsii-calc.onlystatic.OnlyStaticMethods", - "staticMethod", - []interface{}{}, - true, - &returns, - ) - return returns -} - - -`; - -exports[`Generated code for "jsii-calc": /go/jsiicalc/onlystatic/onlystatic.init.go 1`] = ` -package onlystatic - -import ( - "reflect" - - _jsii_ "github.com/aws/jsii-runtime-go" -) - -func init() { - _jsii_.RegisterClass( - "jsii-calc.onlystatic.OnlyStaticMethods", - reflect.TypeOf((*OnlyStaticMethods)(nil)).Elem(), func() interface{} { - return &onlyStaticMethods{} + return &withPrivatePropertyInConstructor{} }, ) } @@ -13903,27 +15084,38 @@ func (c *classWithSelf) Self() string { func NewClassWithSelf(self string) ClassWithSelf { _init_.Initialize() + c := classWithSelf{} _jsii_.Create( "jsii-calc.PythonSelf.ClassWithSelf", - []interface{}{self}, + struct { + Self string + }{ + self, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } func (c *classWithSelf) Method(self float64) string { var returns string + _jsii_.Invoke( c, "method", - []interface{}{self}, - true, + struct { + Self float64 + }{ + self, + }, &returns, ) + return returns } @@ -13949,15 +15141,21 @@ func (c *classWithSelfKwarg) Props() StructWithSelf { func NewClassWithSelfKwarg(props StructWithSelf) ClassWithSelfKwarg { _init_.Initialize() + c := classWithSelfKwarg{} _jsii_.Create( "jsii-calc.PythonSelf.ClassWithSelfKwarg", - []interface{}{props}, + struct { + Props StructWithSelf + }{ + props, + }, []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &c, ) + return &c } @@ -13972,13 +15170,18 @@ type iInterfaceWithSelf struct { func (i *iInterfaceWithSelf) Method(self float64) string { var returns string + _jsii_.Invoke( i, "method", - []interface{}{self}, - true, + struct { + Self float64 + }{ + self, + }, &returns, ) + return returns } @@ -14002,6 +15205,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.PythonSelf.ClassWithSelf", reflect.TypeOf((*ClassWithSelf)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + _jsii_.MemberProperty{JsiiProperty: "self", GoGetter: "Self"}, + }, func() interface{} { return &classWithSelf{} }, @@ -14009,6 +15216,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.PythonSelf.ClassWithSelfKwarg", reflect.TypeOf((*ClassWithSelfKwarg)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "props", GoGetter: "Props"}, + }, func() interface{} { return &classWithSelfKwarg{} }, @@ -14016,6 +15226,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.PythonSelf.IInterfaceWithSelf", reflect.TypeOf((*IInterfaceWithSelf)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "method", GoMethod: "Method"}, + }, func() interface{} { return &iInterfaceWithSelf{} }, @@ -14092,15 +15305,17 @@ type innerClass struct { func NewInnerClass() InnerClass { _init_.Initialize() + i := innerClass{} _jsii_.Create( "jsii-calc.submodule.child.InnerClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &i, ) + return &i } @@ -14152,15 +15367,17 @@ func (o *outerClass) InnerClass() InnerClass { func NewOuterClass() OuterClass { _init_.Initialize() + o := outerClass{} _jsii_.Create( "jsii-calc.submodule.child.OuterClass", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &o, ) + return &o } @@ -14210,6 +15427,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.submodule.child.InnerClass", reflect.TypeOf((*InnerClass)(nil)).Elem(), + nil, // no members func() interface{} { return &innerClass{} }, @@ -14221,6 +15439,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.submodule.child.OuterClass", reflect.TypeOf((*OuterClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "innerClass", GoGetter: "InnerClass"}, + }, func() interface{} { return &outerClass{} }, @@ -14265,14 +15486,20 @@ type kwargs struct { func Kwargs_Method(props child.KwargsProps) bool { _init_.Initialize() + var returns bool + _jsii_.StaticInvoke( "jsii-calc.submodule.isolated.Kwargs", "method", - []interface{}{props}, - true, + struct { + Props child.KwargsProps + }{ + props, + }, &returns, ) + return returns } @@ -14292,6 +15519,7 @@ func init() { _jsii_.RegisterClass( "jsii-calc.submodule.isolated.Kwargs", reflect.TypeOf((*Kwargs)(nil)).Elem(), + nil, // no members func() interface{} { return &kwargs{} }, @@ -14342,6 +15570,9 @@ func init() { _jsii_.RegisterInterface( "jsii-calc.submodule.nested_submodule.deeplyNested.INamespaced", reflect.TypeOf((*INamespaced)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "definedAt", GoGetter: "DefinedAt"}, + }, func() interface{} { return &iNamespaced{} }, @@ -14408,6 +15639,10 @@ func init() { _jsii_.RegisterClass( "jsii-calc.submodule.nested_submodule.Namespaced", reflect.TypeOf((*Namespaced)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "definedAt", GoGetter: "DefinedAt"}, + _jsii_.MemberProperty{JsiiProperty: "goodness", GoGetter: "Goodness"}, + }, func() interface{} { n := namespaced{} _jsii_.InitJsiiProxy(&n.INamespaced) @@ -14468,27 +15703,30 @@ type returnsSpecialParameter struct { func NewReturnsSpecialParameter() ReturnsSpecialParameter { _init_.Initialize() + r := returnsSpecialParameter{} _jsii_.Create( "jsii-calc.submodule.returnsparam.ReturnsSpecialParameter", - []interface{}{}, + nil, // no parameters []_jsii_.FQN{}, - []_jsii_.Override{}, + nil, // no overrides &r, ) + return &r } func (r *returnsSpecialParameter) ReturnsSpecialParam() param.SpecialParameter { var returns param.SpecialParameter + _jsii_.Invoke( r, "returnsSpecialParam", - []interface{}{}, - true, + nil, // no parameters &returns, ) + return returns } @@ -14508,6 +15746,9 @@ func init() { _jsii_.RegisterClass( "jsii-calc.submodule.returnsparam.ReturnsSpecialParameter", reflect.TypeOf((*ReturnsSpecialParameter)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberMethod{JsiiMethod: "returnsSpecialParam", GoMethod: "ReturnsSpecialParam"}, + }, func() interface{} { return &returnsSpecialParameter{} }, @@ -14598,15 +15839,21 @@ func (m *myClass) Props() child.SomeStruct { func NewMyClass(props child.SomeStruct) MyClass { _init_.Initialize() + m := myClass{} _jsii_.Create( "jsii-calc.submodule.MyClass", - []interface{}{props}, + struct { + Props child.SomeStruct + }{ + props, + }, []_jsii_.FQN{"jsii-calc.submodule.nested_submodule.deeplyNested.INamespaced"}, - []_jsii_.Override{}, + nil, // no overrides &m, ) + return &m } @@ -14620,13 +15867,18 @@ func (m *myClass) SetAllTypes(val jsiicalc.AllTypes) { func (m *myClass) MethodWithSpecialParam(param param.SpecialParameter) string { var returns string + _jsii_.Invoke( m, "methodWithSpecialParam", - []interface{}{param}, - true, + struct { + Param param.SpecialParameter + }{ + param, + }, &returns, ) + return returns } @@ -14646,6 +15898,14 @@ func init() { _jsii_.RegisterClass( "jsii-calc.submodule.MyClass", reflect.TypeOf((*MyClass)(nil)).Elem(), + []_jsii_.Member{ + _jsii_.MemberProperty{JsiiProperty: "allTypes", GoGetter: "AllTypes"}, + _jsii_.MemberProperty{JsiiProperty: "awesomeness", GoGetter: "Awesomeness"}, + _jsii_.MemberProperty{JsiiProperty: "definedAt", GoGetter: "DefinedAt"}, + _jsii_.MemberProperty{JsiiProperty: "goodness", GoGetter: "Goodness"}, + _jsii_.MemberMethod{JsiiMethod: "methodWithSpecialParam", GoMethod: "MethodWithSpecialParam"}, + _jsii_.MemberProperty{JsiiProperty: "props", GoGetter: "Props"}, + }, func() interface{} { m := myClass{} _jsii_.InitJsiiProxy(&m.INamespaced)