2
0
mirror of synced 2025-02-23 23:08:14 +00:00
mobile/bind/testdata/issue12328.objc.m.golden
Elias Naur e66540375e bind: generate ObjC initializers
For functions on the form

New<T>... (...) *T

or

New<T>... (...) (*T, error)

generate corresponding initializers. The name of an initializer is
the function name where "New<T>" is replaced by "init".

If no functions match for a type *T, generate a default (empty)
initializer that returns new(T). The default initializer mirrors
the default constructor in Java.

Fixes golang/go#20254.

Change-Id: I3c317418fa517d3f2de3f67f400867285b11ea4f
Reviewed-on: https://go-review.googlesource.com/52012
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2017-08-11 20:43:43 +00:00

62 lines
1.2 KiB
Plaintext

// Objective-C API for talking to issue12328 Go package.
// gobind -lang=objc issue12328
//
// File is generated by gobind. Do not edit.
#include <Foundation/Foundation.h>
#include "seq.h"
#include "_cgo_export.h"
#include "Issue12328.objc.h"
@implementation Issue12328T {
}
- (instancetype)initWithRef:(id)ref {
self = [super init];
if (self) { __ref = ref; }
return self;
}
- (instancetype)init {
self = [super init];
if (self) {
__ref = go_seq_from_refnum(new_issue12328_T());
}
return self;
}
- (NSError*)err {
int32_t refnum = go_seq_go_to_refnum(self._ref);
int32_t r0 = proxyissue12328_T_Err_Get(refnum);
Universeerror* _r0 = nil;
GoSeqRef* _r0_ref = go_seq_from_refnum(r0);
if (_r0_ref != NULL) {
_r0 = _r0_ref.obj;
if (_r0 == nil) {
_r0 = [[Universeerror alloc] initWithRef:_r0_ref];
}
}
return _r0;
}
- (void)setErr:(NSError*)v {
int32_t refnum = go_seq_go_to_refnum(self._ref);
int32_t _v;
if ([v conformsToProtocol:@protocol(goSeqRefInterface)]) {
id<goSeqRefInterface> v_proxy = (id<goSeqRefInterface>)(v);
_v = go_seq_go_to_refnum(v_proxy._ref);
} else {
_v = go_seq_to_refnum(v);
}
proxyissue12328_T_Err_Set(refnum, _v);
}
@end
__attribute__((constructor)) static void init() {
init_seq();
}