[ 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 *> * was 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 *> * was 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 *> * was expected), and the code doesn't compile.}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)