blob: ea7acef9d966592c79c0c5d86e13fe1b3079b249 [file]
// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#import <Foundation/NSObject.h>
typedef struct {} Struct0;
typedef struct {
int64_t a;
} Struct8;
typedef struct {
int64_t a;
int64_t b;
} Struct16;
typedef struct {
int64_t a;
int64_t b;
int64_t c;
} Struct24;
typedef struct {
int64_t a;
int64_t b;
int64_t c;
int64_t d;
} Struct32;
typedef Struct8 (^Struct8Block)(void);
typedef Struct16 (^Struct16Block)(void);
typedef Struct24 (^Struct24Block)(void);
typedef Struct32 (^Struct32Block)(void);
typedef union {
int64_t a;
} Union8;
typedef union {
int64_t a;
Struct16 s;
} Union16;
typedef union {
int64_t a;
Struct24 s;
} Union24;
typedef union {
int64_t a;
Struct32 s;
} Union32;
typedef Union8 (^Union8Block)(void);
typedef Union16 (^Union16Block)(void);
typedef Union24 (^Union24Block)(void);
typedef Union32 (^Union32Block)(void);
@interface SmallStructTester : NSObject
@property Struct8 struct8Property;
@property Struct16 struct16Property;
@property Struct24 struct24Property;
@property Struct32 struct32Property;
@property Union8 union8Property;
@property Union16 union16Property;
@property Union24 union24Property;
@property Union32 union32Property;
- (Struct8)getStruct8Method;
- (Struct16)getStruct16Method;
- (Struct24)getStruct24Method;
- (Struct32)getStruct32Method;
- (Union8)getUnion8Method;
- (Union16)getUnion16Method;
- (Union24)getUnion24Method;
- (Union32)getUnion32Method;
+ (Struct8)callStruct8Block:(Struct8Block)block;
+ (Struct16)callStruct16Block:(Struct16Block)block;
+ (Struct24)callStruct24Block:(Struct24Block)block;
+ (Struct32)callStruct32Block:(Struct32Block)block;
+ (Union8)callUnion8Block:(Union8Block)block;
+ (Union16)callUnion16Block:(Union16Block)block;
+ (Union24)callUnion24Block:(Union24Block)block;
+ (Union32)callUnion32Block:(Union32Block)block;
@end