You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Mark Erickson (JIRA)" <ji...@apache.org> on 2016/05/24 19:33:13 UTC

[jira] [Updated] (THRIFT-3842) Dart generates incorrect code for a const struct

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

Mark Erickson updated THRIFT-3842:
----------------------------------
    Description: 
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}

  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 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}



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