PHP compiler generates syntax error when for enums containing constant "GLOBAL"
-------------------------------------------------------------------------------

                 Key: THRIFT-1209
                 URL: https://issues.apache.org/jira/browse/THRIFT-1209
             Project: Thrift
          Issue Type: Bug
          Components: PHP - Compiler
    Affects Versions: 0.6.1
            Reporter: Nicholas Telford


Reported on IRC:

If an interface calls for an enum that defines a constant that's an invalid 
identifier in PHP (e.g. "GLOBAL") the generated code contains a syntax error.

Example, from the Hive Metastore Thrift interface:

{code}
enum HiveObjectType {
  GLOBAL = 1,
  DATABASE = 2,
  TABLE = 3,
  PARTITION = 4,
  COLUMN = 5,
}
{code}


Generates the following PHP:

{code}
final class metastore_HiveObjectType {
  const GLOBAL = 1;
  const DATABASE = 2;
  const TABLE = 3;
  const PARTITION = 4;
  const COLUMN = 5;
  static public $__names = array(
    1 => 'GLOBAL',
    2 => 'DATABASE',
    3 => 'TABLE',
    4 => 'PARTITION',
    5 => 'COLUMN',
  );
}
{code}

I suggest we prefix enum constants to avoid this situation, although this would 
mean the interface didn't match.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to