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