You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Benjamin Gould (JIRA)" <ji...@apache.org> on 2016/11/02 02:56:58 UTC

[jira] [Updated] (THRIFT-3956) Java keywords that are legal in IDL can lead to generated code that will not compile

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

Benjamin Gould updated THRIFT-3956:
-----------------------------------
    Description: 
Consider the following IDL, which is legal and leads to successful source code generation using the Java generator:
{noformat}
struct int {
  1: i32 val
}

struct boolean {
  1: bool val
}

struct long {
  1: i64 val
}

struct short {
  1: i16 short
}

struct char {
  1: i16 val
}

struct Primitives {
  1: i32 int,
  2: i64 long,
  3: i16 short,
  4: bool boolean,
  5: i16 char
}
{noformat}
The generated does not compile because the struct names and fields names are reserved keywords in Java, even though they are not reserved words in the Thrift compiler.


> Java keywords that are legal in IDL can lead to generated code that will not compile
> ------------------------------------------------------------------------------------
>
>                 Key: THRIFT-3956
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3956
>             Project: Thrift
>          Issue Type: Bug
>          Components: Java - Compiler
>    Affects Versions: 0.10.0, 0.11.0
>            Reporter: Benjamin Gould
>            Priority: Minor
>
> Consider the following IDL, which is legal and leads to successful source code generation using the Java generator:
> {noformat}
> struct int {
>   1: i32 val
> }
> struct boolean {
>   1: bool val
> }
> struct long {
>   1: i64 val
> }
> struct short {
>   1: i16 short
> }
> struct char {
>   1: i16 val
> }
> struct Primitives {
>   1: i32 int,
>   2: i64 long,
>   3: i16 short,
>   4: bool boolean,
>   5: i16 char
> }
> {noformat}
> The generated does not compile because the struct names and fields names are reserved keywords in Java, even though they are not reserved words in the Thrift compiler.



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