[ https://issues.apache.org/jira/browse/THRIFT-5382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer closed THRIFT-5382. ------------------------------ > Netstd default list/set enums values are generated incorrectly in some cases > ---------------------------------------------------------------------------- > > Key: THRIFT-5382 > URL: https://issues.apache.org/jira/browse/THRIFT-5382 > Project: Thrift > Issue Type: Bug > Components: netstd - Compiler > Affects Versions: 0.14.0, 0.15.0, 0.14.1 > Reporter: Thomas Bruggink > Assignee: Thomas Bruggink > Priority: Critical > Fix For: 0.15.0 > > Time Spent: 50m > Remaining Estimate: 0h > > Creating the following 2 thrift files: > Enums.thrift > {code:java} > namespace * enums > enum FoobarEnum { > Val_1 = 0, > Val_2 = 1 > } > {code} > Service.thrift > {code:java} > namespace * service > include "Enums.thrift" > struct RequestModel { > // Breaks > 1: optional set<Thriftxxxx.objs.FoobarEnum> data_1 = [ FoobarEnum.Val_1, > FoobarEnum.Val_2 ], > // Breaks > 2: optional list<Thriftxxxx.objs.FoobarEnum> data_2 = [ FoobarEnum.Val_1, > FoobarEnum.Val_2 ], > // Works > 3: optional Thriftxxxx.objs.FoobarEnum data_3 = FoobarEnum.Val_1 > } > service Test { > void CallMe( > 1 : RequestModel foo, > ) > } > {code} > Will generate a cs file that when compiled throws the following error for 2 > items in the set and 2 items in the list: > > {code:java} > RequestModel.cs(96,24): error CS0103: The name 'FoobarEnum' does not exist in > the current context > {code} > Generated code from the RequestModel looks like this > {code:java} > public RequestModel() > { > this._data_1 = new THashSet<global::Thriftxxxx.objs.FoobarEnum>(); > > this._data_1.Add(FoobarEnum.Val_1); > this._data_1.Add(FoobarEnum.Val_2); > this.__isset.data_1 = true; > this._data_2 = new List<global::Thriftxxxx.objs.FoobarEnum>(); > this._data_2.Add(FoobarEnum.Val_1); > this._data_2.Add(FoobarEnum.Val_2); > this.__isset.data_2 = true; > this._data_3 = global::Thriftxxxx.objs.FoobarEnum.Val_1; > this.__isset.data_3 = true; > } > {code} > The code in the FoobarEnum elements in the Add() methods are missing the > namespace. > -- This message was sent by Atlassian Jira (v8.3.4#803005)