[
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)