[ https://issues.apache.org/jira/browse/THRIFT-4521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yan Zhulanow updated THRIFT-4521: --------------------------------- Description: +Source:+ {{struct Node {}} {{ 1: string name;}} {{ 2: list<Node> children;}} +Generated code (partially, used Thrift 0.11.0):+ {{@interface Node : NSObject <TBase, NSCoding, NSCopying>}}{{@property (strong, nonatomic) NSString * name;}} {{ @property (assign, nonatomic) BOOL nameIsSet;}} {{- (void) unsetName;}} {{@property (strong, nonatomic) NSMutableArray<Node> * children;}} {{ @property (assign, nonatomic) BOOL childrenIsSet;}} {{- (void) unsetChildren;}} As you can see, NSMutableArray<Node> is not a valid type (_NSMutableArray<Node *> *_ expected), and the code doesn't compile. was: +Source:+ {{struct Node {}} {{ 1: string name;}} {{ 2: list<Node> children;}} {{ }}} +Generated code (partially, used Thrift 0.11.0):+ {{@interface Node : NSObject <TBase, NSCoding, NSCopying>}}{{@property (strong, nonatomic) NSString * name;}} {{ @property (assign, nonatomic) BOOL nameIsSet;}} {{- (void) unsetName;}} {{@property (strong, nonatomic) NSMutableArray<Node> * children;}} {{ @property (assign, nonatomic) BOOL childrenIsSet;}} {{- (void) unsetChildren;}} As you can see, NSMutableArray<Node> is not a valid type (_NSMutableArray<Node *> *_ expected), and the code doesn't compile. > Cocoa compiler produces invalid code for recursive structs > ---------------------------------------------------------- > > Key: THRIFT-4521 > URL: https://issues.apache.org/jira/browse/THRIFT-4521 > Project: Thrift > Issue Type: Bug > Components: Cocoa - Compiler > Affects Versions: 0.11.0 > Reporter: Yan Zhulanow > Priority: Major > > +Source:+ > {{struct Node {}} > {{ 1: string name;}} > {{ 2: list<Node> children;}} > +Generated code (partially, used Thrift 0.11.0):+ > {{@interface Node : NSObject <TBase, NSCoding, NSCopying>}}{{@property > (strong, nonatomic) NSString * name;}} > {{ @property (assign, nonatomic) BOOL nameIsSet;}} > {{- (void) unsetName;}} > {{@property (strong, nonatomic) NSMutableArray<Node> * children;}} > {{ @property (assign, nonatomic) BOOL childrenIsSet;}} > {{- (void) unsetChildren;}} > As you can see, NSMutableArray<Node> is not a valid type > (_NSMutableArray<Node *> *_ expected), and the code doesn't compile. -- This message was sent by Atlassian JIRA (v7.6.3#76005)