[ 
https://issues.apache.org/jira/browse/THRIFT-3842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Erickson updated THRIFT-3842:
----------------------------------
    Description: 
This snippet:
{code}
struct Operator {
    1:string displayName
    2:string fieldSuffix
}
const Operator equalTo = {'displayName': '=', 'fieldSuffix': 'eq'}
const Operator notEqualTo = {'displayName': '!=', 'fieldSuffix': 'ne'}
{code}

Produces this Dart code:
{code}
...
static final Operator equalTo = new Operator();
equalTo.displayName = '=';
equalTo.fieldSuffix = 'eq';
...
{code}

But it should produce this Dart code:
{code}
static final Operator equalTo = new Operator()
  ..displayName = '='
  ..fieldSuffix = 'eq';
{code}

  was:
This frugal snippet:
{code}
struct Operator {
    1:string displayName
    2:string fieldSuffix
}
const Operator equalTo = {'displayName': '=', 'fieldSuffix': 'eq'}
const Operator notEqualTo = {'displayName': '!=', 'fieldSuffix': 'ne'}
{code}

Produces this Dart code:
{code}
...
static final Operator equalTo = new Operator();
equalTo.displayName = '=';
equalTo.fieldSuffix = 'eq';
...
{code}

But it should produce this Dart code:
{code}
static final Operator equalTo = new Operator()
  ..displayName = '='
  ..fieldSuffix = 'eq';
{code}


> Dart generates incorrect code for a const struct
> ------------------------------------------------
>
>                 Key: THRIFT-3842
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3842
>             Project: Thrift
>          Issue Type: Bug
>            Reporter: Mark Erickson
>            Assignee: Mark Erickson
>
> This snippet:
> {code}
> struct Operator {
>     1:string displayName
>     2:string fieldSuffix
> }
> const Operator equalTo = {'displayName': '=', 'fieldSuffix': 'eq'}
> const Operator notEqualTo = {'displayName': '!=', 'fieldSuffix': 'ne'}
> {code}
> Produces this Dart code:
> {code}
> ...
> static final Operator equalTo = new Operator();
> equalTo.displayName = '=';
> equalTo.fieldSuffix = 'eq';
> ...
> {code}
> But it should produce this Dart code:
> {code}
> static final Operator equalTo = new Operator()
>   ..displayName = '='
>   ..fieldSuffix = 'eq';
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to