From d8c6193d2c18105b9c130ec5adb030ba0945347d Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Thu, 24 Aug 2017 14:11:37 -0700 Subject: Add mising cmake files in dist --- Makefile.am | 2 ++ 1 file changed, 2 insertions(+) (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index 52d7ce9d..323cc683 100644 --- a/Makefile.am +++ b/Makefile.am @@ -982,8 +982,10 @@ EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \ cmake/libprotoc.cmake \ cmake/protobuf-config-version.cmake.in \ cmake/protobuf-config.cmake.in \ + cmake/protobuf-lite.pc.cmake \ cmake/protobuf-module.cmake.in \ cmake/protobuf-options.cmake \ + cmake/protobuf.pc.cmake \ cmake/protoc.cmake \ cmake/tests.cmake \ editors/README.txt \ -- cgit v1.2.3 From 2807436cd828a526c5c38dd235c0d0d9cdc67b1f Mon Sep 17 00:00:00 2001 From: Paul Yang Date: Wed, 30 Aug 2017 16:50:07 -0700 Subject: change the field number of php_generic_service to fix the conflict with (#3576) internal descriptor.proto --- Makefile.am | 1 + .../src/Google.Protobuf/Reflection/Descriptor.cs | 20 +-- .../Google/Protobuf/Internal/Descriptor.php | 2 +- .../Protobuf/Internal/ExtensionRangeOptions.php | 64 +++++++ php/src/Google/Protobuf/Internal/FileOptions.php | 6 +- src/google/protobuf/descriptor.pb.cc | 196 ++++++++++----------- src/google/protobuf/descriptor.pb.h | 76 ++++---- src/google/protobuf/descriptor.proto | 2 +- 8 files changed, 216 insertions(+), 151 deletions(-) create mode 100644 php/src/Google/Protobuf/Internal/ExtensionRangeOptions.php (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index 323cc683..7831a09e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -619,6 +619,7 @@ php_EXTRA_DIST= \ php/src/Google/Protobuf/Internal/EnumOptions.php \ php/src/Google/Protobuf/Internal/EnumValueDescriptorProto.php \ php/src/Google/Protobuf/Internal/EnumValueOptions.php \ + php/src/Google/Protobuf/Internal/ExtensionRangeOptions.php \ php/src/Google/Protobuf/Internal/FieldDescriptorProto_Label.php \ php/src/Google/Protobuf/Internal/FieldDescriptorProto.php \ php/src/Google/Protobuf/Internal/FieldDescriptor.php \ diff --git a/csharp/src/Google.Protobuf/Reflection/Descriptor.cs b/csharp/src/Google.Protobuf/Reflection/Descriptor.cs index 8311a2c6..b778e058 100644 --- a/csharp/src/Google.Protobuf/Reflection/Descriptor.cs +++ b/csharp/src/Google.Protobuf/Reflection/Descriptor.cs @@ -92,7 +92,7 @@ namespace Google.Protobuf.Reflection { "T3B0aW1pemVNb2RlOgVTUEVFRBISCgpnb19wYWNrYWdlGAsgASgJEiIKE2Nj", "X2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlEiQKFWphdmFfZ2VuZXJp", "Y19zZXJ2aWNlcxgRIAEoCDoFZmFsc2USIgoTcHlfZ2VuZXJpY19zZXJ2aWNl", - "cxgSIAEoCDoFZmFsc2USIwoUcGhwX2dlbmVyaWNfc2VydmljZXMYEyABKAg6", + "cxgSIAEoCDoFZmFsc2USIwoUcGhwX2dlbmVyaWNfc2VydmljZXMYKiABKAg6", "BWZhbHNlEhkKCmRlcHJlY2F0ZWQYFyABKAg6BWZhbHNlEh8KEGNjX2VuYWJs", "ZV9hcmVuYXMYHyABKAg6BWZhbHNlEhkKEW9iamNfY2xhc3NfcHJlZml4GCQg", "ASgJEhgKEGNzaGFycF9uYW1lc3BhY2UYJSABKAkSFAoMc3dpZnRfcHJlZml4", @@ -3135,7 +3135,7 @@ namespace Google.Protobuf.Reflection { } /// Field number for the "php_generic_services" field. - public const int PhpGenericServicesFieldNumber = 19; + public const int PhpGenericServicesFieldNumber = 42; private bool phpGenericServices_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public bool PhpGenericServices { @@ -3366,10 +3366,6 @@ namespace Google.Protobuf.Reflection { output.WriteRawTag(144, 1); output.WriteBool(PyGenericServices); } - if (PhpGenericServices != false) { - output.WriteRawTag(152, 1); - output.WriteBool(PhpGenericServices); - } if (JavaGenerateEqualsAndHash != false) { output.WriteRawTag(160, 1); output.WriteBool(JavaGenerateEqualsAndHash); @@ -3406,6 +3402,10 @@ namespace Google.Protobuf.Reflection { output.WriteRawTag(202, 2); output.WriteString(PhpNamespace); } + if (PhpGenericServices != false) { + output.WriteRawTag(208, 2); + output.WriteBool(PhpGenericServices); + } uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec); } @@ -3572,10 +3572,6 @@ namespace Google.Protobuf.Reflection { PyGenericServices = input.ReadBool(); break; } - case 152: { - PhpGenericServices = input.ReadBool(); - break; - } case 160: { JavaGenerateEqualsAndHash = input.ReadBool(); break; @@ -3612,6 +3608,10 @@ namespace Google.Protobuf.Reflection { PhpNamespace = input.ReadString(); break; } + case 336: { + PhpGenericServices = input.ReadBool(); + break; + } case 7994: { uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec); break; diff --git a/php/src/GPBMetadata/Google/Protobuf/Internal/Descriptor.php b/php/src/GPBMetadata/Google/Protobuf/Internal/Descriptor.php index 60722d00..bb9024f8 100644 --- a/php/src/GPBMetadata/Google/Protobuf/Internal/Descriptor.php +++ b/php/src/GPBMetadata/Google/Protobuf/Internal/Descriptor.php @@ -144,7 +144,7 @@ class Descriptor ->optional('cc_generic_services', \Google\Protobuf\Internal\GPBType::BOOL, 16) ->optional('java_generic_services', \Google\Protobuf\Internal\GPBType::BOOL, 17) ->optional('py_generic_services', \Google\Protobuf\Internal\GPBType::BOOL, 18) - ->optional('php_generic_services', \Google\Protobuf\Internal\GPBType::BOOL, 19) + ->optional('php_generic_services', \Google\Protobuf\Internal\GPBType::BOOL, 42) ->optional('deprecated', \Google\Protobuf\Internal\GPBType::BOOL, 23) ->optional('cc_enable_arenas', \Google\Protobuf\Internal\GPBType::BOOL, 31) ->optional('objc_class_prefix', \Google\Protobuf\Internal\GPBType::STRING, 36) diff --git a/php/src/Google/Protobuf/Internal/ExtensionRangeOptions.php b/php/src/Google/Protobuf/Internal/ExtensionRangeOptions.php new file mode 100644 index 00000000..ee9e38bb --- /dev/null +++ b/php/src/Google/Protobuf/Internal/ExtensionRangeOptions.php @@ -0,0 +1,64 @@ +google.protobuf.ExtensionRangeOptions + */ +class ExtensionRangeOptions extends \Google\Protobuf\Internal\Message +{ + /** + * The parser stores options it doesn't recognize here. See above. + * + * Generated from protobuf field repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + */ + private $uninterpreted_option; + private $has_uninterpreted_option = false; + + public function __construct() { + \GPBMetadata\Google\Protobuf\Internal\Descriptor::initOnce(); + parent::__construct(); + } + + /** + * The parser stores options it doesn't recognize here. See above. + * + * Generated from protobuf field repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getUninterpretedOption() + { + return $this->uninterpreted_option; + } + + /** + * The parser stores options it doesn't recognize here. See above. + * + * Generated from protobuf field repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; + * @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setUninterpretedOption($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); + $this->uninterpreted_option = $arr; + $this->has_uninterpreted_option = true; + + return $this; + } + + public function hasUninterpretedOption() + { + return $this->has_uninterpreted_option; + } + +} + diff --git a/php/src/Google/Protobuf/Internal/FileOptions.php b/php/src/Google/Protobuf/Internal/FileOptions.php index c2dd5e08..ee64e4e0 100644 --- a/php/src/Google/Protobuf/Internal/FileOptions.php +++ b/php/src/Google/Protobuf/Internal/FileOptions.php @@ -109,7 +109,7 @@ class FileOptions extends \Google\Protobuf\Internal\Message private $py_generic_services = false; private $has_py_generic_services = false; /** - * Generated from protobuf field optional bool php_generic_services = 19 [default = false]; + * Generated from protobuf field optional bool php_generic_services = 42 [default = false]; */ private $php_generic_services = false; private $has_php_generic_services = false; @@ -553,7 +553,7 @@ class FileOptions extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field optional bool php_generic_services = 19 [default = false]; + * Generated from protobuf field optional bool php_generic_services = 42 [default = false]; * @return bool */ public function getPhpGenericServices() @@ -562,7 +562,7 @@ class FileOptions extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field optional bool php_generic_services = 19 [default = false]; + * Generated from protobuf field optional bool php_generic_services = 42 [default = false]; * @param bool $var * @return $this */ diff --git a/src/google/protobuf/descriptor.pb.cc b/src/google/protobuf/descriptor.pb.cc index 69c0ab0d..1827b97d 100644 --- a/src/google/protobuf/descriptor.pb.cc +++ b/src/google/protobuf/descriptor.pb.cc @@ -398,17 +398,17 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, uninterpreted_option_), 0, 1, - 8, 9, 10, + 11, 17, 2, - 11, 12, 13, 14, 15, 16, + 8, 3, 4, 5, @@ -812,7 +812,7 @@ void AddDescriptorsImpl() { "_package\030\013 \001(\t\022\"\n\023cc_generic_services\030\020 " "\001(\010:\005false\022$\n\025java_generic_services\030\021 \001(" "\010:\005false\022\"\n\023py_generic_services\030\022 \001(\010:\005f" - "alse\022#\n\024php_generic_services\030\023 \001(\010:\005fals" + "alse\022#\n\024php_generic_services\030* \001(\010:\005fals" "e\022\031\n\ndeprecated\030\027 \001(\010:\005false\022\037\n\020cc_enabl" "e_arenas\030\037 \001(\010:\005false\022\031\n\021objc_class_pref" "ix\030$ \001(\t\022\030\n\020csharp_namespace\030% \001(\t\022\024\n\014sw" @@ -8871,9 +8871,9 @@ FileOptions::FileOptions(const FileOptions& from) if (from.has_php_namespace()) { php_namespace_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.php_namespace_); } - ::memcpy(&java_multiple_files_, &from.java_multiple_files_, + ::memcpy(&cc_enable_arenas_, &from.cc_enable_arenas_, static_cast(reinterpret_cast(&optimize_for_) - - reinterpret_cast(&java_multiple_files_)) + sizeof(optimize_for_)); + reinterpret_cast(&cc_enable_arenas_)) + sizeof(optimize_for_)); // @@protoc_insertion_point(copy_constructor:google.protobuf.FileOptions) } @@ -8887,9 +8887,9 @@ void FileOptions::SharedCtor() { swift_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); php_class_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); php_namespace_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - ::memset(&java_multiple_files_, 0, static_cast( - reinterpret_cast(&cc_enable_arenas_) - - reinterpret_cast(&java_multiple_files_)) + sizeof(cc_enable_arenas_)); + ::memset(&cc_enable_arenas_, 0, static_cast( + reinterpret_cast(&deprecated_) - + reinterpret_cast(&cc_enable_arenas_)) + sizeof(deprecated_)); optimize_for_ = 1; } @@ -8976,12 +8976,12 @@ void FileOptions::Clear() { } } if (cached_has_bits & 65280u) { - ::memset(&java_multiple_files_, 0, static_cast( - reinterpret_cast(&deprecated_) - - reinterpret_cast(&java_multiple_files_)) + sizeof(deprecated_)); + ::memset(&cc_enable_arenas_, 0, static_cast( + reinterpret_cast(&php_generic_services_) - + reinterpret_cast(&cc_enable_arenas_)) + sizeof(php_generic_services_)); } if (cached_has_bits & 196608u) { - cc_enable_arenas_ = false; + deprecated_ = false; optimize_for_ = 1; } _has_bits_.Clear(); @@ -9122,20 +9122,6 @@ bool FileOptions::MergePartialFromCodedStream( break; } - // optional bool php_generic_services = 19 [default = false]; - case 19: { - if (static_cast< ::google::protobuf::uint8>(tag) == - static_cast< ::google::protobuf::uint8>(152u /* 152 & 0xFF */)) { - set_has_php_generic_services(); - DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>( - input, &php_generic_services_))); - } else { - goto handle_unusual; - } - break; - } - // optional bool java_generate_equals_and_hash = 20 [deprecated = true]; case 20: { if (static_cast< ::google::protobuf::uint8>(tag) == @@ -9272,6 +9258,20 @@ bool FileOptions::MergePartialFromCodedStream( break; } + // optional bool php_generic_services = 42 [default = false]; + case 42: { + if (static_cast< ::google::protobuf::uint8>(tag) == + static_cast< ::google::protobuf::uint8>(80u /* 336 & 0xFF */)) { + set_has_php_generic_services(); + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>( + input, &php_generic_services_))); + } else { + goto handle_unusual; + } + break; + } + // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; case 999: { if (static_cast< ::google::protobuf::uint8>(tag) == @@ -9344,7 +9344,7 @@ void FileOptions::SerializeWithCachedSizes( } // optional bool java_multiple_files = 10 [default = false]; - if (cached_has_bits & 0x00000100u) { + if (cached_has_bits & 0x00000200u) { ::google::protobuf::internal::WireFormatLite::WriteBool(10, this->java_multiple_files(), output); } @@ -9359,42 +9359,37 @@ void FileOptions::SerializeWithCachedSizes( } // optional bool cc_generic_services = 16 [default = false]; - if (cached_has_bits & 0x00000800u) { + if (cached_has_bits & 0x00001000u) { ::google::protobuf::internal::WireFormatLite::WriteBool(16, this->cc_generic_services(), output); } // optional bool java_generic_services = 17 [default = false]; - if (cached_has_bits & 0x00001000u) { + if (cached_has_bits & 0x00002000u) { ::google::protobuf::internal::WireFormatLite::WriteBool(17, this->java_generic_services(), output); } // optional bool py_generic_services = 18 [default = false]; - if (cached_has_bits & 0x00002000u) { - ::google::protobuf::internal::WireFormatLite::WriteBool(18, this->py_generic_services(), output); - } - - // optional bool php_generic_services = 19 [default = false]; if (cached_has_bits & 0x00004000u) { - ::google::protobuf::internal::WireFormatLite::WriteBool(19, this->php_generic_services(), output); + ::google::protobuf::internal::WireFormatLite::WriteBool(18, this->py_generic_services(), output); } // optional bool java_generate_equals_and_hash = 20 [deprecated = true]; - if (cached_has_bits & 0x00000200u) { + if (cached_has_bits & 0x00000400u) { ::google::protobuf::internal::WireFormatLite::WriteBool(20, this->java_generate_equals_and_hash(), output); } // optional bool deprecated = 23 [default = false]; - if (cached_has_bits & 0x00008000u) { + if (cached_has_bits & 0x00010000u) { ::google::protobuf::internal::WireFormatLite::WriteBool(23, this->deprecated(), output); } // optional bool java_string_check_utf8 = 27 [default = false]; - if (cached_has_bits & 0x00000400u) { + if (cached_has_bits & 0x00000800u) { ::google::protobuf::internal::WireFormatLite::WriteBool(27, this->java_string_check_utf8(), output); } // optional bool cc_enable_arenas = 31 [default = false]; - if (cached_has_bits & 0x00010000u) { + if (cached_has_bits & 0x00000100u) { ::google::protobuf::internal::WireFormatLite::WriteBool(31, this->cc_enable_arenas(), output); } @@ -9448,6 +9443,11 @@ void FileOptions::SerializeWithCachedSizes( 41, this->php_namespace(), output); } + // optional bool php_generic_services = 42 [default = false]; + if (cached_has_bits & 0x00008000u) { + ::google::protobuf::internal::WireFormatLite::WriteBool(42, this->php_generic_services(), output); + } + // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; for (unsigned int i = 0, n = static_cast(this->uninterpreted_option_size()); i < n; i++) { @@ -9503,7 +9503,7 @@ void FileOptions::SerializeWithCachedSizes( } // optional bool java_multiple_files = 10 [default = false]; - if (cached_has_bits & 0x00000100u) { + if (cached_has_bits & 0x00000200u) { target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(10, this->java_multiple_files(), target); } @@ -9519,42 +9519,37 @@ void FileOptions::SerializeWithCachedSizes( } // optional bool cc_generic_services = 16 [default = false]; - if (cached_has_bits & 0x00000800u) { + if (cached_has_bits & 0x00001000u) { target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(16, this->cc_generic_services(), target); } // optional bool java_generic_services = 17 [default = false]; - if (cached_has_bits & 0x00001000u) { + if (cached_has_bits & 0x00002000u) { target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(17, this->java_generic_services(), target); } // optional bool py_generic_services = 18 [default = false]; - if (cached_has_bits & 0x00002000u) { - target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(18, this->py_generic_services(), target); - } - - // optional bool php_generic_services = 19 [default = false]; if (cached_has_bits & 0x00004000u) { - target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(19, this->php_generic_services(), target); + target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(18, this->py_generic_services(), target); } // optional bool java_generate_equals_and_hash = 20 [deprecated = true]; - if (cached_has_bits & 0x00000200u) { + if (cached_has_bits & 0x00000400u) { target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(20, this->java_generate_equals_and_hash(), target); } // optional bool deprecated = 23 [default = false]; - if (cached_has_bits & 0x00008000u) { + if (cached_has_bits & 0x00010000u) { target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(23, this->deprecated(), target); } // optional bool java_string_check_utf8 = 27 [default = false]; - if (cached_has_bits & 0x00000400u) { + if (cached_has_bits & 0x00000800u) { target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(27, this->java_string_check_utf8(), target); } // optional bool cc_enable_arenas = 31 [default = false]; - if (cached_has_bits & 0x00010000u) { + if (cached_has_bits & 0x00000100u) { target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(31, this->cc_enable_arenas(), target); } @@ -9613,6 +9608,11 @@ void FileOptions::SerializeWithCachedSizes( 41, this->php_namespace(), target); } + // optional bool php_generic_services = 42 [default = false]; + if (cached_has_bits & 0x00008000u) { + target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(42, this->php_generic_services(), target); + } + // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; for (unsigned int i = 0, n = static_cast(this->uninterpreted_option_size()); i < n; i++) { @@ -9714,6 +9714,11 @@ size_t FileOptions::ByteSizeLong() const { } if (_has_bits_[8 / 32] & 65280u) { + // optional bool cc_enable_arenas = 31 [default = false]; + if (has_cc_enable_arenas()) { + total_size += 2 + 1; + } + // optional bool java_multiple_files = 10 [default = false]; if (has_java_multiple_files()) { total_size += 1 + 1; @@ -9744,20 +9749,15 @@ size_t FileOptions::ByteSizeLong() const { total_size += 2 + 1; } - // optional bool php_generic_services = 19 [default = false]; + // optional bool php_generic_services = 42 [default = false]; if (has_php_generic_services()) { total_size += 2 + 1; } - // optional bool deprecated = 23 [default = false]; - if (has_deprecated()) { - total_size += 2 + 1; - } - } if (_has_bits_[16 / 32] & 196608u) { - // optional bool cc_enable_arenas = 31 [default = false]; - if (has_cc_enable_arenas()) { + // optional bool deprecated = 23 [default = false]; + if (has_deprecated()) { total_size += 2 + 1; } @@ -9836,34 +9836,34 @@ void FileOptions::MergeFrom(const FileOptions& from) { } if (cached_has_bits & 65280u) { if (cached_has_bits & 0x00000100u) { - java_multiple_files_ = from.java_multiple_files_; + cc_enable_arenas_ = from.cc_enable_arenas_; } if (cached_has_bits & 0x00000200u) { - java_generate_equals_and_hash_ = from.java_generate_equals_and_hash_; + java_multiple_files_ = from.java_multiple_files_; } if (cached_has_bits & 0x00000400u) { - java_string_check_utf8_ = from.java_string_check_utf8_; + java_generate_equals_and_hash_ = from.java_generate_equals_and_hash_; } if (cached_has_bits & 0x00000800u) { - cc_generic_services_ = from.cc_generic_services_; + java_string_check_utf8_ = from.java_string_check_utf8_; } if (cached_has_bits & 0x00001000u) { - java_generic_services_ = from.java_generic_services_; + cc_generic_services_ = from.cc_generic_services_; } if (cached_has_bits & 0x00002000u) { - py_generic_services_ = from.py_generic_services_; + java_generic_services_ = from.java_generic_services_; } if (cached_has_bits & 0x00004000u) { - php_generic_services_ = from.php_generic_services_; + py_generic_services_ = from.py_generic_services_; } if (cached_has_bits & 0x00008000u) { - deprecated_ = from.deprecated_; + php_generic_services_ = from.php_generic_services_; } _has_bits_[0] |= cached_has_bits; } if (cached_has_bits & 196608u) { if (cached_has_bits & 0x00010000u) { - cc_enable_arenas_ = from.cc_enable_arenas_; + deprecated_ = from.deprecated_; } if (cached_has_bits & 0x00020000u) { optimize_for_ = from.optimize_for_; @@ -9910,6 +9910,7 @@ void FileOptions::InternalSwap(FileOptions* other) { swift_prefix_.Swap(&other->swift_prefix_); php_class_prefix_.Swap(&other->php_class_prefix_); php_namespace_.Swap(&other->php_namespace_); + swap(cc_enable_arenas_, other->cc_enable_arenas_); swap(java_multiple_files_, other->java_multiple_files_); swap(java_generate_equals_and_hash_, other->java_generate_equals_and_hash_); swap(java_string_check_utf8_, other->java_string_check_utf8_); @@ -9918,7 +9919,6 @@ void FileOptions::InternalSwap(FileOptions* other) { swap(py_generic_services_, other->py_generic_services_); swap(php_generic_services_, other->php_generic_services_); swap(deprecated_, other->deprecated_); - swap(cc_enable_arenas_, other->cc_enable_arenas_); swap(optimize_for_, other->optimize_for_); swap(_has_bits_[0], other->_has_bits_[0]); _internal_metadata_.Swap(&other->_internal_metadata_); @@ -10062,13 +10062,13 @@ void FileOptions::set_allocated_java_outer_classname(::std::string* java_outer_c // optional bool java_multiple_files = 10 [default = false]; bool FileOptions::has_java_multiple_files() const { - return (_has_bits_[0] & 0x00000100u) != 0; + return (_has_bits_[0] & 0x00000200u) != 0; } void FileOptions::set_has_java_multiple_files() { - _has_bits_[0] |= 0x00000100u; + _has_bits_[0] |= 0x00000200u; } void FileOptions::clear_has_java_multiple_files() { - _has_bits_[0] &= ~0x00000100u; + _has_bits_[0] &= ~0x00000200u; } void FileOptions::clear_java_multiple_files() { java_multiple_files_ = false; @@ -10086,13 +10086,13 @@ void FileOptions::set_java_multiple_files(bool value) { // optional bool java_generate_equals_and_hash = 20 [deprecated = true]; bool FileOptions::has_java_generate_equals_and_hash() const { - return (_has_bits_[0] & 0x00000200u) != 0; + return (_has_bits_[0] & 0x00000400u) != 0; } void FileOptions::set_has_java_generate_equals_and_hash() { - _has_bits_[0] |= 0x00000200u; + _has_bits_[0] |= 0x00000400u; } void FileOptions::clear_has_java_generate_equals_and_hash() { - _has_bits_[0] &= ~0x00000200u; + _has_bits_[0] &= ~0x00000400u; } void FileOptions::clear_java_generate_equals_and_hash() { java_generate_equals_and_hash_ = false; @@ -10110,13 +10110,13 @@ void FileOptions::set_java_generate_equals_and_hash(bool value) { // optional bool java_string_check_utf8 = 27 [default = false]; bool FileOptions::has_java_string_check_utf8() const { - return (_has_bits_[0] & 0x00000400u) != 0; + return (_has_bits_[0] & 0x00000800u) != 0; } void FileOptions::set_has_java_string_check_utf8() { - _has_bits_[0] |= 0x00000400u; + _has_bits_[0] |= 0x00000800u; } void FileOptions::clear_has_java_string_check_utf8() { - _has_bits_[0] &= ~0x00000400u; + _has_bits_[0] &= ~0x00000800u; } void FileOptions::clear_java_string_check_utf8() { java_string_check_utf8_ = false; @@ -10222,13 +10222,13 @@ void FileOptions::set_allocated_go_package(::std::string* go_package) { // optional bool cc_generic_services = 16 [default = false]; bool FileOptions::has_cc_generic_services() const { - return (_has_bits_[0] & 0x00000800u) != 0; + return (_has_bits_[0] & 0x00001000u) != 0; } void FileOptions::set_has_cc_generic_services() { - _has_bits_[0] |= 0x00000800u; + _has_bits_[0] |= 0x00001000u; } void FileOptions::clear_has_cc_generic_services() { - _has_bits_[0] &= ~0x00000800u; + _has_bits_[0] &= ~0x00001000u; } void FileOptions::clear_cc_generic_services() { cc_generic_services_ = false; @@ -10246,13 +10246,13 @@ void FileOptions::set_cc_generic_services(bool value) { // optional bool java_generic_services = 17 [default = false]; bool FileOptions::has_java_generic_services() const { - return (_has_bits_[0] & 0x00001000u) != 0; + return (_has_bits_[0] & 0x00002000u) != 0; } void FileOptions::set_has_java_generic_services() { - _has_bits_[0] |= 0x00001000u; + _has_bits_[0] |= 0x00002000u; } void FileOptions::clear_has_java_generic_services() { - _has_bits_[0] &= ~0x00001000u; + _has_bits_[0] &= ~0x00002000u; } void FileOptions::clear_java_generic_services() { java_generic_services_ = false; @@ -10270,13 +10270,13 @@ void FileOptions::set_java_generic_services(bool value) { // optional bool py_generic_services = 18 [default = false]; bool FileOptions::has_py_generic_services() const { - return (_has_bits_[0] & 0x00002000u) != 0; + return (_has_bits_[0] & 0x00004000u) != 0; } void FileOptions::set_has_py_generic_services() { - _has_bits_[0] |= 0x00002000u; + _has_bits_[0] |= 0x00004000u; } void FileOptions::clear_has_py_generic_services() { - _has_bits_[0] &= ~0x00002000u; + _has_bits_[0] &= ~0x00004000u; } void FileOptions::clear_py_generic_services() { py_generic_services_ = false; @@ -10292,15 +10292,15 @@ void FileOptions::set_py_generic_services(bool value) { // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.py_generic_services) } -// optional bool php_generic_services = 19 [default = false]; +// optional bool php_generic_services = 42 [default = false]; bool FileOptions::has_php_generic_services() const { - return (_has_bits_[0] & 0x00004000u) != 0; + return (_has_bits_[0] & 0x00008000u) != 0; } void FileOptions::set_has_php_generic_services() { - _has_bits_[0] |= 0x00004000u; + _has_bits_[0] |= 0x00008000u; } void FileOptions::clear_has_php_generic_services() { - _has_bits_[0] &= ~0x00004000u; + _has_bits_[0] &= ~0x00008000u; } void FileOptions::clear_php_generic_services() { php_generic_services_ = false; @@ -10318,13 +10318,13 @@ void FileOptions::set_php_generic_services(bool value) { // optional bool deprecated = 23 [default = false]; bool FileOptions::has_deprecated() const { - return (_has_bits_[0] & 0x00008000u) != 0; + return (_has_bits_[0] & 0x00010000u) != 0; } void FileOptions::set_has_deprecated() { - _has_bits_[0] |= 0x00008000u; + _has_bits_[0] |= 0x00010000u; } void FileOptions::clear_has_deprecated() { - _has_bits_[0] &= ~0x00008000u; + _has_bits_[0] &= ~0x00010000u; } void FileOptions::clear_deprecated() { deprecated_ = false; @@ -10342,13 +10342,13 @@ void FileOptions::set_deprecated(bool value) { // optional bool cc_enable_arenas = 31 [default = false]; bool FileOptions::has_cc_enable_arenas() const { - return (_has_bits_[0] & 0x00010000u) != 0; + return (_has_bits_[0] & 0x00000100u) != 0; } void FileOptions::set_has_cc_enable_arenas() { - _has_bits_[0] |= 0x00010000u; + _has_bits_[0] |= 0x00000100u; } void FileOptions::clear_has_cc_enable_arenas() { - _has_bits_[0] &= ~0x00010000u; + _has_bits_[0] &= ~0x00000100u; } void FileOptions::clear_cc_enable_arenas() { cc_enable_arenas_ = false; diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h index 7ec516ab..c67d748b 100644 --- a/src/google/protobuf/descriptor.pb.h +++ b/src/google/protobuf/descriptor.pb.h @@ -2570,6 +2570,13 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p ::std::string* release_php_namespace(); void set_allocated_php_namespace(::std::string* php_namespace); + // optional bool cc_enable_arenas = 31 [default = false]; + bool has_cc_enable_arenas() const; + void clear_cc_enable_arenas(); + static const int kCcEnableArenasFieldNumber = 31; + bool cc_enable_arenas() const; + void set_cc_enable_arenas(bool value); + // optional bool java_multiple_files = 10 [default = false]; bool has_java_multiple_files() const; void clear_java_multiple_files(); @@ -2612,10 +2619,10 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p bool py_generic_services() const; void set_py_generic_services(bool value); - // optional bool php_generic_services = 19 [default = false]; + // optional bool php_generic_services = 42 [default = false]; bool has_php_generic_services() const; void clear_php_generic_services(); - static const int kPhpGenericServicesFieldNumber = 19; + static const int kPhpGenericServicesFieldNumber = 42; bool php_generic_services() const; void set_php_generic_services(bool value); @@ -2626,13 +2633,6 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p bool deprecated() const; void set_deprecated(bool value); - // optional bool cc_enable_arenas = 31 [default = false]; - bool has_cc_enable_arenas() const; - void clear_cc_enable_arenas(); - static const int kCcEnableArenasFieldNumber = 31; - bool cc_enable_arenas() const; - void set_cc_enable_arenas(bool value); - // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; bool has_optimize_for() const; void clear_optimize_for(); @@ -2694,6 +2694,7 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p ::google::protobuf::internal::ArenaStringPtr swift_prefix_; ::google::protobuf::internal::ArenaStringPtr php_class_prefix_; ::google::protobuf::internal::ArenaStringPtr php_namespace_; + bool cc_enable_arenas_; bool java_multiple_files_; bool java_generate_equals_and_hash_; bool java_string_check_utf8_; @@ -2702,7 +2703,6 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p bool py_generic_services_; bool php_generic_services_; bool deprecated_; - bool cc_enable_arenas_; int optimize_for_; friend struct protobuf_google_2fprotobuf_2fdescriptor_2eproto::TableStruct; }; @@ -7205,13 +7205,13 @@ inline void FileOptions::set_allocated_java_outer_classname(::std::string* java_ // optional bool java_multiple_files = 10 [default = false]; inline bool FileOptions::has_java_multiple_files() const { - return (_has_bits_[0] & 0x00000100u) != 0; + return (_has_bits_[0] & 0x00000200u) != 0; } inline void FileOptions::set_has_java_multiple_files() { - _has_bits_[0] |= 0x00000100u; + _has_bits_[0] |= 0x00000200u; } inline void FileOptions::clear_has_java_multiple_files() { - _has_bits_[0] &= ~0x00000100u; + _has_bits_[0] &= ~0x00000200u; } inline void FileOptions::clear_java_multiple_files() { java_multiple_files_ = false; @@ -7229,13 +7229,13 @@ inline void FileOptions::set_java_multiple_files(bool value) { // optional bool java_generate_equals_and_hash = 20 [deprecated = true]; inline bool FileOptions::has_java_generate_equals_and_hash() const { - return (_has_bits_[0] & 0x00000200u) != 0; + return (_has_bits_[0] & 0x00000400u) != 0; } inline void FileOptions::set_has_java_generate_equals_and_hash() { - _has_bits_[0] |= 0x00000200u; + _has_bits_[0] |= 0x00000400u; } inline void FileOptions::clear_has_java_generate_equals_and_hash() { - _has_bits_[0] &= ~0x00000200u; + _has_bits_[0] &= ~0x00000400u; } inline void FileOptions::clear_java_generate_equals_and_hash() { java_generate_equals_and_hash_ = false; @@ -7253,13 +7253,13 @@ inline void FileOptions::set_java_generate_equals_and_hash(bool value) { // optional bool java_string_check_utf8 = 27 [default = false]; inline bool FileOptions::has_java_string_check_utf8() const { - return (_has_bits_[0] & 0x00000400u) != 0; + return (_has_bits_[0] & 0x00000800u) != 0; } inline void FileOptions::set_has_java_string_check_utf8() { - _has_bits_[0] |= 0x00000400u; + _has_bits_[0] |= 0x00000800u; } inline void FileOptions::clear_has_java_string_check_utf8() { - _has_bits_[0] &= ~0x00000400u; + _has_bits_[0] &= ~0x00000800u; } inline void FileOptions::clear_java_string_check_utf8() { java_string_check_utf8_ = false; @@ -7365,13 +7365,13 @@ inline void FileOptions::set_allocated_go_package(::std::string* go_package) { // optional bool cc_generic_services = 16 [default = false]; inline bool FileOptions::has_cc_generic_services() const { - return (_has_bits_[0] & 0x00000800u) != 0; + return (_has_bits_[0] & 0x00001000u) != 0; } inline void FileOptions::set_has_cc_generic_services() { - _has_bits_[0] |= 0x00000800u; + _has_bits_[0] |= 0x00001000u; } inline void FileOptions::clear_has_cc_generic_services() { - _has_bits_[0] &= ~0x00000800u; + _has_bits_[0] &= ~0x00001000u; } inline void FileOptions::clear_cc_generic_services() { cc_generic_services_ = false; @@ -7389,13 +7389,13 @@ inline void FileOptions::set_cc_generic_services(bool value) { // optional bool java_generic_services = 17 [default = false]; inline bool FileOptions::has_java_generic_services() const { - return (_has_bits_[0] & 0x00001000u) != 0; + return (_has_bits_[0] & 0x00002000u) != 0; } inline void FileOptions::set_has_java_generic_services() { - _has_bits_[0] |= 0x00001000u; + _has_bits_[0] |= 0x00002000u; } inline void FileOptions::clear_has_java_generic_services() { - _has_bits_[0] &= ~0x00001000u; + _has_bits_[0] &= ~0x00002000u; } inline void FileOptions::clear_java_generic_services() { java_generic_services_ = false; @@ -7413,13 +7413,13 @@ inline void FileOptions::set_java_generic_services(bool value) { // optional bool py_generic_services = 18 [default = false]; inline bool FileOptions::has_py_generic_services() const { - return (_has_bits_[0] & 0x00002000u) != 0; + return (_has_bits_[0] & 0x00004000u) != 0; } inline void FileOptions::set_has_py_generic_services() { - _has_bits_[0] |= 0x00002000u; + _has_bits_[0] |= 0x00004000u; } inline void FileOptions::clear_has_py_generic_services() { - _has_bits_[0] &= ~0x00002000u; + _has_bits_[0] &= ~0x00004000u; } inline void FileOptions::clear_py_generic_services() { py_generic_services_ = false; @@ -7435,15 +7435,15 @@ inline void FileOptions::set_py_generic_services(bool value) { // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.py_generic_services) } -// optional bool php_generic_services = 19 [default = false]; +// optional bool php_generic_services = 42 [default = false]; inline bool FileOptions::has_php_generic_services() const { - return (_has_bits_[0] & 0x00004000u) != 0; + return (_has_bits_[0] & 0x00008000u) != 0; } inline void FileOptions::set_has_php_generic_services() { - _has_bits_[0] |= 0x00004000u; + _has_bits_[0] |= 0x00008000u; } inline void FileOptions::clear_has_php_generic_services() { - _has_bits_[0] &= ~0x00004000u; + _has_bits_[0] &= ~0x00008000u; } inline void FileOptions::clear_php_generic_services() { php_generic_services_ = false; @@ -7461,13 +7461,13 @@ inline void FileOptions::set_php_generic_services(bool value) { // optional bool deprecated = 23 [default = false]; inline bool FileOptions::has_deprecated() const { - return (_has_bits_[0] & 0x00008000u) != 0; + return (_has_bits_[0] & 0x00010000u) != 0; } inline void FileOptions::set_has_deprecated() { - _has_bits_[0] |= 0x00008000u; + _has_bits_[0] |= 0x00010000u; } inline void FileOptions::clear_has_deprecated() { - _has_bits_[0] &= ~0x00008000u; + _has_bits_[0] &= ~0x00010000u; } inline void FileOptions::clear_deprecated() { deprecated_ = false; @@ -7485,13 +7485,13 @@ inline void FileOptions::set_deprecated(bool value) { // optional bool cc_enable_arenas = 31 [default = false]; inline bool FileOptions::has_cc_enable_arenas() const { - return (_has_bits_[0] & 0x00010000u) != 0; + return (_has_bits_[0] & 0x00000100u) != 0; } inline void FileOptions::set_has_cc_enable_arenas() { - _has_bits_[0] |= 0x00010000u; + _has_bits_[0] |= 0x00000100u; } inline void FileOptions::clear_has_cc_enable_arenas() { - _has_bits_[0] &= ~0x00010000u; + _has_bits_[0] &= ~0x00000100u; } inline void FileOptions::clear_cc_enable_arenas() { cc_enable_arenas_ = false; diff --git a/src/google/protobuf/descriptor.proto b/src/google/protobuf/descriptor.proto index f1ec5735..4d4fb378 100644 --- a/src/google/protobuf/descriptor.proto +++ b/src/google/protobuf/descriptor.proto @@ -361,7 +361,7 @@ message FileOptions { optional bool cc_generic_services = 16 [default=false]; optional bool java_generic_services = 17 [default=false]; optional bool py_generic_services = 18 [default=false]; - optional bool php_generic_services = 19 [default=false]; + optional bool php_generic_services = 42 [default=false]; // Is this file deprecated? // Depending on the target platform, this can emit Deprecated annotations -- cgit v1.2.3 From e5d000cbb7bcf8fadddfbdb544070e31ce36fa26 Mon Sep 17 00:00:00 2001 From: Bo Yang Date: Fri, 8 Sep 2017 15:11:49 -0700 Subject: Add prefix to php reserved keywords. --- Makefile.am | 4 + php/ext/google/protobuf/def.c | 30 ++- php/src/Google/Protobuf/Internal/GPBUtil.php | 18 +- php/tests/generated_class_test.php | 222 ++++++++++++++++++++++ php/tests/proto/test_reserved_enum_lower.proto | 79 ++++++++ php/tests/proto/test_reserved_enum_upper.proto | 79 ++++++++ php/tests/proto/test_reserved_message_lower.proto | 77 ++++++++ php/tests/proto/test_reserved_message_upper.proto | 77 ++++++++ src/google/protobuf/compiler/php/php_generator.cc | 24 ++- tests.sh | 22 ++- 10 files changed, 615 insertions(+), 17 deletions(-) create mode 100644 php/tests/proto/test_reserved_enum_lower.proto create mode 100644 php/tests/proto/test_reserved_enum_upper.proto create mode 100644 php/tests/proto/test_reserved_message_lower.proto create mode 100644 php/tests/proto/test_reserved_message_upper.proto (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index 7831a09e..f4d09fa0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -686,6 +686,10 @@ php_EXTRA_DIST= \ php/tests/proto/test_no_namespace.proto \ php/tests/proto/test_php_namespace.proto \ php/tests/proto/test_prefix.proto \ + php/tests/proto/test_reserved_enum_lower.proto \ + php/tests/proto/test_reserved_enum_upper.proto \ + php/tests/proto/test_reserved_message_lower.proto \ + php/tests/proto/test_reserved_message_upper.proto \ php/tests/proto/test_service.proto \ php/tests/proto/test_service_namespace.proto \ php/tests/test.sh \ diff --git a/php/ext/google/protobuf/def.c b/php/ext/google/protobuf/def.c index f885c145..d615cb3c 100644 --- a/php/ext/google/protobuf/def.c +++ b/php/ext/google/protobuf/def.c @@ -30,8 +30,23 @@ #include "protobuf.h" -const char* const kReservedNames[] = {"Empty", "ECHO", "ARRAY"}; -const int kReservedNamesSize = 3; +const char *const kReservedNames[] = { + "abstract", "and", "array", "as", "break", + "callable", "case", "catch", "class", "clone", + "const", "continue", "declare", "default", "die", + "do", "echo", "else", "elseif", "empty", + "enddeclare", "endfor", "endforeach", "endif", "endswitch", + "endwhile", "eval", "exit", "extends", "final", + "for", "foreach", "function", "global", "goto", + "if", "implements", "include", "include_once", "instanceof", + "insteadof", "interface", "isset", "list", "namespace", + "new", "or", "print", "private", "protected", + "public", "require", "require_once", "return", "static", + "switch", "throw", "trait", "try", "unset", + "use", "var", "while", "xor", "int", + "float", "bool", "string", "true", "false", + "null", "void", "iterable"}; +const int kReservedNamesSize = 73; // Forward declare. static void descriptor_init_c_instance(Descriptor* intern TSRMLS_DC); @@ -774,12 +789,21 @@ static const char *classname_prefix(const char *classname, return prefix_given; } + char* lower = ALLOC_N(char, strlen(classname) + 1); + i = 0; + while(classname[i]) { + lower[i] = (char)tolower(classname[i]); + i++; + } + lower[i] = 0; + for (i = 0; i < kReservedNamesSize; i++) { - if (strcmp(kReservedNames[i], classname) == 0) { + if (strcmp(kReservedNames[i], lower) == 0) { is_reserved = true; break; } } + FREE(lower); if (is_reserved) { if (package_name != NULL && strcmp("google.protobuf", package_name) == 0) { diff --git a/php/src/Google/Protobuf/Internal/GPBUtil.php b/php/src/Google/Protobuf/Internal/GPBUtil.php index 84e8ecf0..659a4ee3 100644 --- a/php/src/Google/Protobuf/Internal/GPBUtil.php +++ b/php/src/Google/Protobuf/Internal/GPBUtil.php @@ -252,9 +252,23 @@ class GPBUtil return $prefix; } - $reserved_words = array("Empty", "ECHO", "ARRAY"); + $reserved_words = array( + "abstract", "and", "array", "as", "break", "callable", "case", + "catch", "class", "clone", "const", "continue", "declare", + "default", "die", "do", "echo", "else", "elseif", "empty", + "enddeclare", "endfor", "endforeach", "endif", "endswitch", + "endwhile", "eval", "exit", "extends", "final", "for", "foreach", + "function", "global", "goto", "if", "implements", "include", + "include_once", "instanceof", "insteadof", "interface", "isset", + "list", "namespace", "new", "or", "print", "private", "protected", + "public", "require", "require_once", "return", "static", "switch", + "throw", "trait", "try", "unset", "use", "var", "while", "xor", + "int", "float", "bool", "string", "true", "false", "null", "void", + "iterable" + + ); foreach ($reserved_words as $reserved_word) { - if ($classname === $reserved_word) { + if (strtolower($classname) === $reserved_word) { if ($file_proto->getPackage() === "google.protobuf") { return "GPB"; } else { diff --git a/php/tests/generated_class_test.php b/php/tests/generated_class_test.php index 98918bce..c63318a9 100644 --- a/php/tests/generated_class_test.php +++ b/php/tests/generated_class_test.php @@ -691,6 +691,228 @@ class GeneratedClassTest extends TestBase $m = new \Foo\PBEmpty(); $m = new \PrefixEmpty(); $m = new \Foo\PBARRAY(); + + $m = new \Lower\PBabstract(); + $m = new \Lower\PBand(); + $m = new \Lower\PBarray(); + $m = new \Lower\PBas(); + $m = new \Lower\PBbreak(); + $m = new \Lower\PBcallable(); + $m = new \Lower\PBcase(); + $m = new \Lower\PBcatch(); + $m = new \Lower\PBclass(); + $m = new \Lower\PBclone(); + $m = new \Lower\PBconst(); + $m = new \Lower\PBcontinue(); + $m = new \Lower\PBdeclare(); + $m = new \Lower\PBdefault(); + $m = new \Lower\PBdie(); + $m = new \Lower\PBdo(); + $m = new \Lower\PBecho(); + $m = new \Lower\PBelse(); + $m = new \Lower\PBelseif(); + $m = new \Lower\PBempty(); + $m = new \Lower\PBenddeclare(); + $m = new \Lower\PBendfor(); + $m = new \Lower\PBendforeach(); + $m = new \Lower\PBendif(); + $m = new \Lower\PBendswitch(); + $m = new \Lower\PBendwhile(); + $m = new \Lower\PBeval(); + $m = new \Lower\PBexit(); + $m = new \Lower\PBextends(); + $m = new \Lower\PBfinal(); + $m = new \Lower\PBfor(); + $m = new \Lower\PBforeach(); + $m = new \Lower\PBfunction(); + $m = new \Lower\PBglobal(); + $m = new \Lower\PBgoto(); + $m = new \Lower\PBif(); + $m = new \Lower\PBimplements(); + $m = new \Lower\PBinclude(); + $m = new \Lower\PBinclude_once(); + $m = new \Lower\PBinstanceof(); + $m = new \Lower\PBinsteadof(); + $m = new \Lower\PBinterface(); + $m = new \Lower\PBisset(); + $m = new \Lower\PBlist(); + $m = new \Lower\PBnamespace(); + $m = new \Lower\PBnew(); + $m = new \Lower\PBor(); + $m = new \Lower\PBprint(); + $m = new \Lower\PBprivate(); + $m = new \Lower\PBprotected(); + $m = new \Lower\PBpublic(); + $m = new \Lower\PBrequire(); + $m = new \Lower\PBrequire_once(); + $m = new \Lower\PBreturn(); + $m = new \Lower\PBstatic(); + $m = new \Lower\PBswitch(); + $m = new \Lower\PBthrow(); + $m = new \Lower\PBtrait(); + $m = new \Lower\PBtry(); + $m = new \Lower\PBunset(); + $m = new \Lower\PBuse(); + $m = new \Lower\PBvar(); + $m = new \Lower\PBwhile(); + $m = new \Lower\PBxor(); + $m = new \Lower\PBint(); + $m = new \Lower\PBfloat(); + $m = new \Lower\PBbool(); + $m = new \Lower\PBstring(); + $m = new \Lower\PBtrue(); + $m = new \Lower\PBfalse(); + $m = new \Lower\PBnull(); + $m = new \Lower\PBvoid(); + $m = new \Lower\PBiterable(); + + $m = new \Upper\PBABSTRACT(); + $m = new \Upper\PBAND(); + $m = new \Upper\PBARRAY(); + $m = new \Upper\PBAS(); + $m = new \Upper\PBBREAK(); + $m = new \Upper\PBCALLABLE(); + $m = new \Upper\PBCASE(); + $m = new \Upper\PBCATCH(); + $m = new \Upper\PBCLASS(); + $m = new \Upper\PBCLONE(); + $m = new \Upper\PBCONST(); + $m = new \Upper\PBCONTINUE(); + $m = new \Upper\PBDECLARE(); + $m = new \Upper\PBDEFAULT(); + $m = new \Upper\PBDIE(); + $m = new \Upper\PBDO(); + $m = new \Upper\PBECHO(); + $m = new \Upper\PBELSE(); + $m = new \Upper\PBELSEIF(); + $m = new \Upper\PBEMPTY(); + $m = new \Upper\PBENDDECLARE(); + $m = new \Upper\PBENDFOR(); + $m = new \Upper\PBENDFOREACH(); + $m = new \Upper\PBENDIF(); + $m = new \Upper\PBENDSWITCH(); + $m = new \Upper\PBENDWHILE(); + $m = new \Upper\PBEVAL(); + $m = new \Upper\PBEXIT(); + $m = new \Upper\PBEXTENDS(); + $m = new \Upper\PBFINAL(); + $m = new \Upper\PBFOR(); + $m = new \Upper\PBFOREACH(); + $m = new \Upper\PBFUNCTION(); + $m = new \Upper\PBGLOBAL(); + $m = new \Upper\PBGOTO(); + $m = new \Upper\PBIF(); + $m = new \Upper\PBIMPLEMENTS(); + $m = new \Upper\PBINCLUDE(); + $m = new \Upper\PBINCLUDE_ONCE(); + $m = new \Upper\PBINSTANCEOF(); + $m = new \Upper\PBINSTEADOF(); + $m = new \Upper\PBINTERFACE(); + $m = new \Upper\PBISSET(); + $m = new \Upper\PBLIST(); + $m = new \Upper\PBNAMESPACE(); + $m = new \Upper\PBNEW(); + $m = new \Upper\PBOR(); + $m = new \Upper\PBPRINT(); + $m = new \Upper\PBPRIVATE(); + $m = new \Upper\PBPROTECTED(); + $m = new \Upper\PBPUBLIC(); + $m = new \Upper\PBREQUIRE(); + $m = new \Upper\PBREQUIRE_ONCE(); + $m = new \Upper\PBRETURN(); + $m = new \Upper\PBSTATIC(); + $m = new \Upper\PBSWITCH(); + $m = new \Upper\PBTHROW(); + $m = new \Upper\PBTRAIT(); + $m = new \Upper\PBTRY(); + $m = new \Upper\PBUNSET(); + $m = new \Upper\PBUSE(); + $m = new \Upper\PBVAR(); + $m = new \Upper\PBWHILE(); + $m = new \Upper\PBXOR(); + $m = new \Upper\PBINT(); + $m = new \Upper\PBFLOAT(); + $m = new \Upper\PBBOOL(); + $m = new \Upper\PBSTRING(); + $m = new \Upper\PBTRUE(); + $m = new \Upper\PBFALSE(); + $m = new \Upper\PBNULL(); + $m = new \Upper\PBVOID(); + $m = new \Upper\PBITERABLE(); + + $m = \Lower_enum\NotAllowed::PBabstract; + $m = \Lower_enum\NotAllowed::PBand; + $m = \Lower_enum\NotAllowed::PBarray; + $m = \Lower_enum\NotAllowed::PBas; + $m = \Lower_enum\NotAllowed::PBbreak; + $m = \Lower_enum\NotAllowed::PBcallable; + $m = \Lower_enum\NotAllowed::PBcase; + $m = \Lower_enum\NotAllowed::PBcatch; + $m = \Lower_enum\NotAllowed::PBclass; + $m = \Lower_enum\NotAllowed::PBclone; + $m = \Lower_enum\NotAllowed::PBconst; + $m = \Lower_enum\NotAllowed::PBcontinue; + $m = \Lower_enum\NotAllowed::PBdeclare; + $m = \Lower_enum\NotAllowed::PBdefault; + $m = \Lower_enum\NotAllowed::PBdie; + $m = \Lower_enum\NotAllowed::PBdo; + $m = \Lower_enum\NotAllowed::PBecho; + $m = \Lower_enum\NotAllowed::PBelse; + $m = \Lower_enum\NotAllowed::PBelseif; + $m = \Lower_enum\NotAllowed::PBempty; + $m = \Lower_enum\NotAllowed::PBenddeclare; + $m = \Lower_enum\NotAllowed::PBendfor; + $m = \Lower_enum\NotAllowed::PBendforeach; + $m = \Lower_enum\NotAllowed::PBendif; + $m = \Lower_enum\NotAllowed::PBendswitch; + $m = \Lower_enum\NotAllowed::PBendwhile; + $m = \Lower_enum\NotAllowed::PBeval; + $m = \Lower_enum\NotAllowed::PBexit; + $m = \Lower_enum\NotAllowed::PBextends; + $m = \Lower_enum\NotAllowed::PBfinal; + $m = \Lower_enum\NotAllowed::PBfor; + $m = \Lower_enum\NotAllowed::PBforeach; + $m = \Lower_enum\NotAllowed::PBfunction; + $m = \Lower_enum\NotAllowed::PBglobal; + $m = \Lower_enum\NotAllowed::PBgoto; + $m = \Lower_enum\NotAllowed::PBif; + $m = \Lower_enum\NotAllowed::PBimplements; + $m = \Lower_enum\NotAllowed::PBinclude; + $m = \Lower_enum\NotAllowed::PBinclude_once; + $m = \Lower_enum\NotAllowed::PBinstanceof; + $m = \Lower_enum\NotAllowed::PBinsteadof; + $m = \Lower_enum\NotAllowed::PBinterface; + $m = \Lower_enum\NotAllowed::PBisset; + $m = \Lower_enum\NotAllowed::PBlist; + $m = \Lower_enum\NotAllowed::PBnamespace; + $m = \Lower_enum\NotAllowed::PBnew; + $m = \Lower_enum\NotAllowed::PBor; + $m = \Lower_enum\NotAllowed::PBprint; + $m = \Lower_enum\NotAllowed::PBprivate; + $m = \Lower_enum\NotAllowed::PBprotected; + $m = \Lower_enum\NotAllowed::PBpublic; + $m = \Lower_enum\NotAllowed::PBrequire; + $m = \Lower_enum\NotAllowed::PBrequire_once; + $m = \Lower_enum\NotAllowed::PBreturn; + $m = \Lower_enum\NotAllowed::PBstatic; + $m = \Lower_enum\NotAllowed::PBswitch; + $m = \Lower_enum\NotAllowed::PBthrow; + $m = \Lower_enum\NotAllowed::PBtrait; + $m = \Lower_enum\NotAllowed::PBtry; + $m = \Lower_enum\NotAllowed::PBunset; + $m = \Lower_enum\NotAllowed::PBuse; + $m = \Lower_enum\NotAllowed::PBvar; + $m = \Lower_enum\NotAllowed::PBwhile; + $m = \Lower_enum\NotAllowed::PBxor; + $m = \Lower_enum\NotAllowed::PBint; + $m = \Lower_enum\NotAllowed::PBfloat; + $m = \Lower_enum\NotAllowed::PBbool; + $m = \Lower_enum\NotAllowed::PBstring; + $m = \Lower_enum\NotAllowed::PBtrue; + $m = \Lower_enum\NotAllowed::PBfalse; + $m = \Lower_enum\NotAllowed::PBnull; + $m = \Lower_enum\NotAllowed::PBvoid; + $m = \Lower_enum\NotAllowed::PBiterable; } ######################################################### diff --git a/php/tests/proto/test_reserved_enum_lower.proto b/php/tests/proto/test_reserved_enum_lower.proto new file mode 100644 index 00000000..e2144c0c --- /dev/null +++ b/php/tests/proto/test_reserved_enum_lower.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package lower_enum; + +enum NotAllowed { + abstract = 0; + and = 1; + array = 2; + as = 3; + break = 4; + callable = 5; + case = 6; + catch = 7; + class = 8; + clone = 9; + const = 10; + continue = 11; + declare = 12; + default = 13; + die = 14; + do = 15; + echo = 16; + else = 17; + elseif = 18; + empty = 19; + enddeclare = 20; + endfor = 21; + endforeach = 22; + endif = 23; + endswitch = 24; + endwhile = 25; + eval = 26; + exit = 27; + extends = 28; + final = 29; + for = 30; + foreach = 31; + function = 32; + global = 33; + goto = 34; + if = 35; + implements = 36; + include = 37; + include_once = 38; + instanceof = 39; + insteadof = 40; + interface = 41; + isset = 42; + list = 43; + namespace = 44; + new = 45; + or = 46; + print = 47; + private = 48; + protected = 49; + public = 50; + require = 51; + require_once = 52; + return = 53; + static = 54; + switch = 55; + throw = 56; + trait = 57; + try = 58; + unset = 59; + use = 60; + var = 61; + while = 62; + xor = 63; + int = 64; + float = 65; + bool = 66; + string = 67; + true = 68; + false = 69; + null = 70; + void = 71; + iterable = 72; +} diff --git a/php/tests/proto/test_reserved_enum_upper.proto b/php/tests/proto/test_reserved_enum_upper.proto new file mode 100644 index 00000000..a4cc1f4b --- /dev/null +++ b/php/tests/proto/test_reserved_enum_upper.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package upper_enum; + +enum NotAllowed { + ABSTRACT = 0; + AND = 1; + ARRAY = 2; + AS = 3; + BREAK = 4; + CALLABLE = 5; + CASE = 6; + CATCH = 7; + CLASS = 8; + CLONE = 9; + CONST = 10; + CONTINUE = 11; + DECLARE = 12; + DEFAULT = 13; + DIE = 14; + DO = 15; + ECHO = 16; + ELSE = 17; + ELSEIF = 18; + EMPTY = 19; + ENDDECLARE = 20; + ENDFOR = 21; + ENDFOREACH = 22; + ENDIF = 23; + ENDSWITCH = 24; + ENDWHILE = 25; + EVAL = 26; + EXIT = 27; + EXTENDS = 28; + FINAL = 29; + FOR = 30; + FOREACH = 31; + FUNCTION = 32; + GLOBAL = 33; + GOTO = 34; + IF = 35; + IMPLEMENTS = 36; + INCLUDE = 37; + INCLUDE_ONCE = 38; + INSTANCEOF = 39; + INSTEADOF = 40; + INTERFACE = 41; + ISSET = 42; + LIST = 43; + NAMESPACE = 44; + NEW = 45; + OR = 46; + PRINT = 47; + PRIVATE = 48; + PROTECTED = 49; + PUBLIC = 50; + REQUIRE = 51; + REQUIRE_ONCE = 52; + RETURN = 53; + STATIC = 54; + SWITCH = 55; + THROW = 56; + TRAIT = 57; + TRY = 58; + UNSET = 59; + USE = 60; + VAR = 61; + WHILE = 62; + XOR = 63; + INT = 64; + FLOAT = 65; + BOOL = 66; + STRING = 67; + TRUE = 68; + FALSE = 69; + NULL = 70; + VOID = 71; + ITERABLE = 72; +} diff --git a/php/tests/proto/test_reserved_message_lower.proto b/php/tests/proto/test_reserved_message_lower.proto new file mode 100644 index 00000000..ed120808 --- /dev/null +++ b/php/tests/proto/test_reserved_message_lower.proto @@ -0,0 +1,77 @@ +syntax = "proto3"; + +package lower; + +message abstract {} +message and {} +message array {} +message as {} +message break {} +message callable {} +message case {} +message catch {} +message class {} +message clone {} +message const {} +message continue {} +message declare {} +message default {} +message die {} +message do {} +message echo {} +message else {} +message elseif {} +message empty {} +message enddeclare {} +message endfor {} +message endforeach {} +message endif {} +message endswitch {} +message endwhile {} +message eval {} +message exit {} +message extends {} +message final {} +message for {} +message foreach {} +message function {} +message global {} +message goto {} +message if {} +message implements {} +message include {} +message include_once {} +message instanceof {} +message insteadof {} +message interface {} +message isset {} +message list {} +message namespace {} +message new {} +message or {} +message print {} +message private {} +message protected {} +message public {} +message require {} +message require_once {} +message return {} +message static {} +message switch {} +message throw {} +message trait {} +message try {} +message unset {} +message use {} +message var {} +message while {} +message xor {} +message int {} +message float {} +message bool {} +message string {} +message true {} +message false {} +message null {} +message void {} +message iterable {} diff --git a/php/tests/proto/test_reserved_message_upper.proto b/php/tests/proto/test_reserved_message_upper.proto new file mode 100644 index 00000000..2917fd11 --- /dev/null +++ b/php/tests/proto/test_reserved_message_upper.proto @@ -0,0 +1,77 @@ +syntax = "proto3"; + +package upper; + +message ABSTRACT {} +message AND {} +message ARRAY {} +message AS {} +message BREAK {} +message CALLABLE {} +message CASE {} +message CATCH {} +message CLASS {} +message CLONE {} +message CONST {} +message CONTINUE {} +message DECLARE {} +message DEFAULT {} +message DIE {} +message DO {} +message ECHO {} +message ELSE {} +message ELSEIF {} +message EMPTY {} +message ENDDECLARE {} +message ENDFOR {} +message ENDFOREACH {} +message ENDIF {} +message ENDSWITCH {} +message ENDWHILE {} +message EVAL {} +message EXIT {} +message EXTENDS {} +message FINAL {} +message FOR {} +message FOREACH {} +message FUNCTION {} +message GLOBAL {} +message GOTO {} +message IF {} +message IMPLEMENTS {} +message INCLUDE {} +message INCLUDE_ONCE {} +message INSTANCEOF {} +message INSTEADOF {} +message INTERFACE {} +message ISSET {} +message LIST {} +message NAMESPACE {} +message NEW {} +message OR {} +message PRINT {} +message PRIVATE {} +message PROTECTED {} +message PUBLIC {} +message REQUIRE {} +message REQUIRE_ONCE {} +message RETURN {} +message STATIC {} +message SWITCH {} +message THROW {} +message TRAIT {} +message TRY {} +message UNSET {} +message USE {} +message VAR {} +message WHILE {} +message XOR {} +message INT {} +message FLOAT {} +message BOOL {} +message STRING {} +message TRUE {} +message FALSE {} +message NULL {} +message VOID {} +message ITERABLE {} diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index 60e6fce9..fe781df2 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -49,8 +49,23 @@ const std::string kDescriptorMetadataFile = "GPBMetadata/Google/Protobuf/Internal/Descriptor.php"; const std::string kDescriptorDirName = "Google/Protobuf/Internal"; const std::string kDescriptorPackageName = "Google\\Protobuf\\Internal"; -const char* const kReservedNames[] = {"ARRAY", "Empty", "ECHO"}; -const int kReservedNamesSize = 3; +const char* const kReservedNames[] = { + "abstract", "and", "array", "as", "break", + "callable", "case", "catch", "class", "clone", + "const", "continue", "declare", "default", "die", + "do", "echo", "else", "elseif", "empty", + "enddeclare", "endfor", "endforeach", "endif", "endswitch", + "endwhile", "eval", "exit", "extends", "final", + "for", "foreach", "function", "global", "goto", + "if", "implements", "include", "include_once", "instanceof", + "insteadof", "interface", "isset", "list", "namespace", + "new", "or", "print", "private", "protected", + "public", "require", "require_once", "return", "static", + "switch", "throw", "trait", "try", "unset", + "use", "var", "while", "xor", "int", + "float", "bool", "string", "true", "false", + "null", "void", "iterable"}; +const int kReservedNamesSize = 73; const int kFieldSetter = 1; const int kFieldGetter = 2; const int kFieldProperty = 3; @@ -125,8 +140,11 @@ std::string ClassNamePrefix(const string& classname, bool is_reserved = false; + string lower = classname; + transform(lower.begin(), lower.end(), lower.begin(), ::tolower); + for (int i = 0; i < kReservedNamesSize; i++) { - if (classname == kReservedNames[i]) { + if (lower == kReservedNames[i]) { is_reserved = true; break; } diff --git a/tests.sh b/tests.sh index 0bdc1284..a29ba647 100755 --- a/tests.sh +++ b/tests.sh @@ -346,15 +346,19 @@ generate_php_test_proto() { # Generate test file rm -rf generated mkdir generated - ../../src/protoc --php_out=generated \ - proto/test.proto \ - proto/test_include.proto \ - proto/test_no_namespace.proto \ - proto/test_prefix.proto \ - proto/test_php_namespace.proto \ - proto/test_empty_php_namespace.proto \ - proto/test_service.proto \ - proto/test_service_namespace.proto \ + ../../src/protoc --php_out=generated \ + proto/test.proto \ + proto/test_include.proto \ + proto/test_no_namespace.proto \ + proto/test_prefix.proto \ + proto/test_php_namespace.proto \ + proto/test_empty_php_namespace.proto \ + proto/test_reserved_enum_lower.proto \ + proto/test_reserved_enum_upper.proto \ + proto/test_reserved_message_lower.proto \ + proto/test_reserved_message_upper.proto \ + proto/test_service.proto \ + proto/test_service_namespace.proto \ proto/test_descriptors.proto pushd ../../src ./protoc --php_out=../php/tests/generated google/protobuf/empty.proto -- cgit v1.2.3 From f46a01d0c13295eec279b9a17021b38d85b41205 Mon Sep 17 00:00:00 2001 From: Bo Yang Date: Tue, 12 Sep 2017 15:04:34 -0700 Subject: Exclude valid constant name from reserved name. --- Makefile.am | 2 + php/ext/google/protobuf/protobuf.h | 1 + php/tests/generated_class_test.php | 368 +++++++++++++++++---- php/tests/proto/test_reserved_enum_lower.proto | 148 ++++----- php/tests/proto/test_reserved_enum_upper.proto | 148 ++++----- .../proto/test_reserved_enum_value_lower.proto | 79 +++++ .../proto/test_reserved_enum_value_upper.proto | 79 +++++ src/google/protobuf/compiler/php/php_generator.cc | 37 ++- tests.sh | 28 +- 9 files changed, 652 insertions(+), 238 deletions(-) create mode 100644 php/tests/proto/test_reserved_enum_value_lower.proto create mode 100644 php/tests/proto/test_reserved_enum_value_upper.proto (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index f4d09fa0..33236189 100644 --- a/Makefile.am +++ b/Makefile.am @@ -688,6 +688,8 @@ php_EXTRA_DIST= \ php/tests/proto/test_prefix.proto \ php/tests/proto/test_reserved_enum_lower.proto \ php/tests/proto/test_reserved_enum_upper.proto \ + php/tests/proto/test_reserved_enum_value_lower.proto \ + php/tests/proto/test_reserved_enum_value_upper.proto \ php/tests/proto/test_reserved_message_lower.proto \ php/tests/proto/test_reserved_message_upper.proto \ php/tests/proto/test_service.proto \ diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h index 010cb25f..24bccb14 100644 --- a/php/ext/google/protobuf/protobuf.h +++ b/php/ext/google/protobuf/protobuf.h @@ -934,5 +934,6 @@ const zend_class_entry* field_type_class( // Reserved name bool is_reserved_name(const char* name); +bool is_valid_constant_name(const char* name); #endif // __GOOGLE_PROTOBUF_PHP_PROTOBUF_H__ diff --git a/php/tests/generated_class_test.php b/php/tests/generated_class_test.php index c63318a9..53d18ee7 100644 --- a/php/tests/generated_class_test.php +++ b/php/tests/generated_class_test.php @@ -840,79 +840,301 @@ class GeneratedClassTest extends TestBase $m = new \Upper\PBVOID(); $m = new \Upper\PBITERABLE(); - $m = \Lower_enum\NotAllowed::PBabstract; - $m = \Lower_enum\NotAllowed::PBand; - $m = \Lower_enum\NotAllowed::PBarray; - $m = \Lower_enum\NotAllowed::PBas; - $m = \Lower_enum\NotAllowed::PBbreak; - $m = \Lower_enum\NotAllowed::PBcallable; - $m = \Lower_enum\NotAllowed::PBcase; - $m = \Lower_enum\NotAllowed::PBcatch; - $m = \Lower_enum\NotAllowed::PBclass; - $m = \Lower_enum\NotAllowed::PBclone; - $m = \Lower_enum\NotAllowed::PBconst; - $m = \Lower_enum\NotAllowed::PBcontinue; - $m = \Lower_enum\NotAllowed::PBdeclare; - $m = \Lower_enum\NotAllowed::PBdefault; - $m = \Lower_enum\NotAllowed::PBdie; - $m = \Lower_enum\NotAllowed::PBdo; - $m = \Lower_enum\NotAllowed::PBecho; - $m = \Lower_enum\NotAllowed::PBelse; - $m = \Lower_enum\NotAllowed::PBelseif; - $m = \Lower_enum\NotAllowed::PBempty; - $m = \Lower_enum\NotAllowed::PBenddeclare; - $m = \Lower_enum\NotAllowed::PBendfor; - $m = \Lower_enum\NotAllowed::PBendforeach; - $m = \Lower_enum\NotAllowed::PBendif; - $m = \Lower_enum\NotAllowed::PBendswitch; - $m = \Lower_enum\NotAllowed::PBendwhile; - $m = \Lower_enum\NotAllowed::PBeval; - $m = \Lower_enum\NotAllowed::PBexit; - $m = \Lower_enum\NotAllowed::PBextends; - $m = \Lower_enum\NotAllowed::PBfinal; - $m = \Lower_enum\NotAllowed::PBfor; - $m = \Lower_enum\NotAllowed::PBforeach; - $m = \Lower_enum\NotAllowed::PBfunction; - $m = \Lower_enum\NotAllowed::PBglobal; - $m = \Lower_enum\NotAllowed::PBgoto; - $m = \Lower_enum\NotAllowed::PBif; - $m = \Lower_enum\NotAllowed::PBimplements; - $m = \Lower_enum\NotAllowed::PBinclude; - $m = \Lower_enum\NotAllowed::PBinclude_once; - $m = \Lower_enum\NotAllowed::PBinstanceof; - $m = \Lower_enum\NotAllowed::PBinsteadof; - $m = \Lower_enum\NotAllowed::PBinterface; - $m = \Lower_enum\NotAllowed::PBisset; - $m = \Lower_enum\NotAllowed::PBlist; - $m = \Lower_enum\NotAllowed::PBnamespace; - $m = \Lower_enum\NotAllowed::PBnew; - $m = \Lower_enum\NotAllowed::PBor; - $m = \Lower_enum\NotAllowed::PBprint; - $m = \Lower_enum\NotAllowed::PBprivate; - $m = \Lower_enum\NotAllowed::PBprotected; - $m = \Lower_enum\NotAllowed::PBpublic; - $m = \Lower_enum\NotAllowed::PBrequire; - $m = \Lower_enum\NotAllowed::PBrequire_once; - $m = \Lower_enum\NotAllowed::PBreturn; - $m = \Lower_enum\NotAllowed::PBstatic; - $m = \Lower_enum\NotAllowed::PBswitch; - $m = \Lower_enum\NotAllowed::PBthrow; - $m = \Lower_enum\NotAllowed::PBtrait; - $m = \Lower_enum\NotAllowed::PBtry; - $m = \Lower_enum\NotAllowed::PBunset; - $m = \Lower_enum\NotAllowed::PBuse; - $m = \Lower_enum\NotAllowed::PBvar; - $m = \Lower_enum\NotAllowed::PBwhile; - $m = \Lower_enum\NotAllowed::PBxor; - $m = \Lower_enum\NotAllowed::PBint; - $m = \Lower_enum\NotAllowed::PBfloat; - $m = \Lower_enum\NotAllowed::PBbool; - $m = \Lower_enum\NotAllowed::PBstring; - $m = \Lower_enum\NotAllowed::PBtrue; - $m = \Lower_enum\NotAllowed::PBfalse; - $m = \Lower_enum\NotAllowed::PBnull; - $m = \Lower_enum\NotAllowed::PBvoid; - $m = \Lower_enum\NotAllowed::PBiterable; + $m = new \Lower_enum\PBabstract(); + $m = new \Lower_enum\PBand(); + $m = new \Lower_enum\PBarray(); + $m = new \Lower_enum\PBas(); + $m = new \Lower_enum\PBbreak(); + $m = new \Lower_enum\PBcallable(); + $m = new \Lower_enum\PBcase(); + $m = new \Lower_enum\PBcatch(); + $m = new \Lower_enum\PBclass(); + $m = new \Lower_enum\PBclone(); + $m = new \Lower_enum\PBconst(); + $m = new \Lower_enum\PBcontinue(); + $m = new \Lower_enum\PBdeclare(); + $m = new \Lower_enum\PBdefault(); + $m = new \Lower_enum\PBdie(); + $m = new \Lower_enum\PBdo(); + $m = new \Lower_enum\PBecho(); + $m = new \Lower_enum\PBelse(); + $m = new \Lower_enum\PBelseif(); + $m = new \Lower_enum\PBempty(); + $m = new \Lower_enum\PBenddeclare(); + $m = new \Lower_enum\PBendfor(); + $m = new \Lower_enum\PBendforeach(); + $m = new \Lower_enum\PBendif(); + $m = new \Lower_enum\PBendswitch(); + $m = new \Lower_enum\PBendwhile(); + $m = new \Lower_enum\PBeval(); + $m = new \Lower_enum\PBexit(); + $m = new \Lower_enum\PBextends(); + $m = new \Lower_enum\PBfinal(); + $m = new \Lower_enum\PBfor(); + $m = new \Lower_enum\PBforeach(); + $m = new \Lower_enum\PBfunction(); + $m = new \Lower_enum\PBglobal(); + $m = new \Lower_enum\PBgoto(); + $m = new \Lower_enum\PBif(); + $m = new \Lower_enum\PBimplements(); + $m = new \Lower_enum\PBinclude(); + $m = new \Lower_enum\PBinclude_once(); + $m = new \Lower_enum\PBinstanceof(); + $m = new \Lower_enum\PBinsteadof(); + $m = new \Lower_enum\PBinterface(); + $m = new \Lower_enum\PBisset(); + $m = new \Lower_enum\PBlist(); + $m = new \Lower_enum\PBnamespace(); + $m = new \Lower_enum\PBnew(); + $m = new \Lower_enum\PBor(); + $m = new \Lower_enum\PBprint(); + $m = new \Lower_enum\PBprivate(); + $m = new \Lower_enum\PBprotected(); + $m = new \Lower_enum\PBpublic(); + $m = new \Lower_enum\PBrequire(); + $m = new \Lower_enum\PBrequire_once(); + $m = new \Lower_enum\PBreturn(); + $m = new \Lower_enum\PBstatic(); + $m = new \Lower_enum\PBswitch(); + $m = new \Lower_enum\PBthrow(); + $m = new \Lower_enum\PBtrait(); + $m = new \Lower_enum\PBtry(); + $m = new \Lower_enum\PBunset(); + $m = new \Lower_enum\PBuse(); + $m = new \Lower_enum\PBvar(); + $m = new \Lower_enum\PBwhile(); + $m = new \Lower_enum\PBxor(); + $m = new \Lower_enum\PBint(); + $m = new \Lower_enum\PBfloat(); + $m = new \Lower_enum\PBbool(); + $m = new \Lower_enum\PBstring(); + $m = new \Lower_enum\PBtrue(); + $m = new \Lower_enum\PBfalse(); + $m = new \Lower_enum\PBnull(); + $m = new \Lower_enum\PBvoid(); + $m = new \Lower_enum\PBiterable(); + + $m = new \Upper_enum\PBABSTRACT(); + $m = new \Upper_enum\PBAND(); + $m = new \Upper_enum\PBARRAY(); + $m = new \Upper_enum\PBAS(); + $m = new \Upper_enum\PBBREAK(); + $m = new \Upper_enum\PBCALLABLE(); + $m = new \Upper_enum\PBCASE(); + $m = new \Upper_enum\PBCATCH(); + $m = new \Upper_enum\PBCLASS(); + $m = new \Upper_enum\PBCLONE(); + $m = new \Upper_enum\PBCONST(); + $m = new \Upper_enum\PBCONTINUE(); + $m = new \Upper_enum\PBDECLARE(); + $m = new \Upper_enum\PBDEFAULT(); + $m = new \Upper_enum\PBDIE(); + $m = new \Upper_enum\PBDO(); + $m = new \Upper_enum\PBECHO(); + $m = new \Upper_enum\PBELSE(); + $m = new \Upper_enum\PBELSEIF(); + $m = new \Upper_enum\PBEMPTY(); + $m = new \Upper_enum\PBENDDECLARE(); + $m = new \Upper_enum\PBENDFOR(); + $m = new \Upper_enum\PBENDFOREACH(); + $m = new \Upper_enum\PBENDIF(); + $m = new \Upper_enum\PBENDSWITCH(); + $m = new \Upper_enum\PBENDWHILE(); + $m = new \Upper_enum\PBEVAL(); + $m = new \Upper_enum\PBEXIT(); + $m = new \Upper_enum\PBEXTENDS(); + $m = new \Upper_enum\PBFINAL(); + $m = new \Upper_enum\PBFOR(); + $m = new \Upper_enum\PBFOREACH(); + $m = new \Upper_enum\PBFUNCTION(); + $m = new \Upper_enum\PBGLOBAL(); + $m = new \Upper_enum\PBGOTO(); + $m = new \Upper_enum\PBIF(); + $m = new \Upper_enum\PBIMPLEMENTS(); + $m = new \Upper_enum\PBINCLUDE(); + $m = new \Upper_enum\PBINCLUDE_ONCE(); + $m = new \Upper_enum\PBINSTANCEOF(); + $m = new \Upper_enum\PBINSTEADOF(); + $m = new \Upper_enum\PBINTERFACE(); + $m = new \Upper_enum\PBISSET(); + $m = new \Upper_enum\PBLIST(); + $m = new \Upper_enum\PBNAMESPACE(); + $m = new \Upper_enum\PBNEW(); + $m = new \Upper_enum\PBOR(); + $m = new \Upper_enum\PBPRINT(); + $m = new \Upper_enum\PBPRIVATE(); + $m = new \Upper_enum\PBPROTECTED(); + $m = new \Upper_enum\PBPUBLIC(); + $m = new \Upper_enum\PBREQUIRE(); + $m = new \Upper_enum\PBREQUIRE_ONCE(); + $m = new \Upper_enum\PBRETURN(); + $m = new \Upper_enum\PBSTATIC(); + $m = new \Upper_enum\PBSWITCH(); + $m = new \Upper_enum\PBTHROW(); + $m = new \Upper_enum\PBTRAIT(); + $m = new \Upper_enum\PBTRY(); + $m = new \Upper_enum\PBUNSET(); + $m = new \Upper_enum\PBUSE(); + $m = new \Upper_enum\PBVAR(); + $m = new \Upper_enum\PBWHILE(); + $m = new \Upper_enum\PBXOR(); + $m = new \Upper_enum\PBINT(); + $m = new \Upper_enum\PBFLOAT(); + $m = new \Upper_enum\PBBOOL(); + $m = new \Upper_enum\PBSTRING(); + $m = new \Upper_enum\PBTRUE(); + $m = new \Upper_enum\PBFALSE(); + $m = new \Upper_enum\PBNULL(); + $m = new \Upper_enum\PBVOID(); + $m = new \Upper_enum\PBITERABLE(); + + $m = \Lower_enum_value\NotAllowed::PBabstract; + $m = \Lower_enum_value\NotAllowed::PBand; + $m = \Lower_enum_value\NotAllowed::PBarray; + $m = \Lower_enum_value\NotAllowed::PBas; + $m = \Lower_enum_value\NotAllowed::PBbreak; + $m = \Lower_enum_value\NotAllowed::PBcallable; + $m = \Lower_enum_value\NotAllowed::PBcase; + $m = \Lower_enum_value\NotAllowed::PBcatch; + $m = \Lower_enum_value\NotAllowed::PBclass; + $m = \Lower_enum_value\NotAllowed::PBclone; + $m = \Lower_enum_value\NotAllowed::PBconst; + $m = \Lower_enum_value\NotAllowed::PBcontinue; + $m = \Lower_enum_value\NotAllowed::PBdeclare; + $m = \Lower_enum_value\NotAllowed::PBdefault; + $m = \Lower_enum_value\NotAllowed::PBdie; + $m = \Lower_enum_value\NotAllowed::PBdo; + $m = \Lower_enum_value\NotAllowed::PBecho; + $m = \Lower_enum_value\NotAllowed::PBelse; + $m = \Lower_enum_value\NotAllowed::PBelseif; + $m = \Lower_enum_value\NotAllowed::PBempty; + $m = \Lower_enum_value\NotAllowed::PBenddeclare; + $m = \Lower_enum_value\NotAllowed::PBendfor; + $m = \Lower_enum_value\NotAllowed::PBendforeach; + $m = \Lower_enum_value\NotAllowed::PBendif; + $m = \Lower_enum_value\NotAllowed::PBendswitch; + $m = \Lower_enum_value\NotAllowed::PBendwhile; + $m = \Lower_enum_value\NotAllowed::PBeval; + $m = \Lower_enum_value\NotAllowed::PBexit; + $m = \Lower_enum_value\NotAllowed::PBextends; + $m = \Lower_enum_value\NotAllowed::PBfinal; + $m = \Lower_enum_value\NotAllowed::PBfor; + $m = \Lower_enum_value\NotAllowed::PBforeach; + $m = \Lower_enum_value\NotAllowed::PBfunction; + $m = \Lower_enum_value\NotAllowed::PBglobal; + $m = \Lower_enum_value\NotAllowed::PBgoto; + $m = \Lower_enum_value\NotAllowed::PBif; + $m = \Lower_enum_value\NotAllowed::PBimplements; + $m = \Lower_enum_value\NotAllowed::PBinclude; + $m = \Lower_enum_value\NotAllowed::PBinclude_once; + $m = \Lower_enum_value\NotAllowed::PBinstanceof; + $m = \Lower_enum_value\NotAllowed::PBinsteadof; + $m = \Lower_enum_value\NotAllowed::PBinterface; + $m = \Lower_enum_value\NotAllowed::PBisset; + $m = \Lower_enum_value\NotAllowed::PBlist; + $m = \Lower_enum_value\NotAllowed::PBnamespace; + $m = \Lower_enum_value\NotAllowed::PBnew; + $m = \Lower_enum_value\NotAllowed::PBor; + $m = \Lower_enum_value\NotAllowed::PBprint; + $m = \Lower_enum_value\NotAllowed::PBprivate; + $m = \Lower_enum_value\NotAllowed::PBprotected; + $m = \Lower_enum_value\NotAllowed::PBpublic; + $m = \Lower_enum_value\NotAllowed::PBrequire; + $m = \Lower_enum_value\NotAllowed::PBrequire_once; + $m = \Lower_enum_value\NotAllowed::PBreturn; + $m = \Lower_enum_value\NotAllowed::PBstatic; + $m = \Lower_enum_value\NotAllowed::PBswitch; + $m = \Lower_enum_value\NotAllowed::PBthrow; + $m = \Lower_enum_value\NotAllowed::PBtrait; + $m = \Lower_enum_value\NotAllowed::PBtry; + $m = \Lower_enum_value\NotAllowed::PBunset; + $m = \Lower_enum_value\NotAllowed::PBuse; + $m = \Lower_enum_value\NotAllowed::PBvar; + $m = \Lower_enum_value\NotAllowed::PBwhile; + $m = \Lower_enum_value\NotAllowed::PBxor; + $m = \Lower_enum_value\NotAllowed::int; + $m = \Lower_enum_value\NotAllowed::float; + $m = \Lower_enum_value\NotAllowed::bool; + $m = \Lower_enum_value\NotAllowed::string; + $m = \Lower_enum_value\NotAllowed::true; + $m = \Lower_enum_value\NotAllowed::false; + $m = \Lower_enum_value\NotAllowed::null; + $m = \Lower_enum_value\NotAllowed::void; + $m = \Lower_enum_value\NotAllowed::iterable; + + $m = \Upper_enum_value\NotAllowed::PBABSTRACT; + $m = \Upper_enum_value\NotAllowed::PBAND; + $m = \Upper_enum_value\NotAllowed::PBARRAY; + $m = \Upper_enum_value\NotAllowed::PBAS; + $m = \Upper_enum_value\NotAllowed::PBBREAK; + $m = \Upper_enum_value\NotAllowed::PBCALLABLE; + $m = \Upper_enum_value\NotAllowed::PBCASE; + $m = \Upper_enum_value\NotAllowed::PBCATCH; + $m = \Upper_enum_value\NotAllowed::PBCLASS; + $m = \Upper_enum_value\NotAllowed::PBCLONE; + $m = \Upper_enum_value\NotAllowed::PBCONST; + $m = \Upper_enum_value\NotAllowed::PBCONTINUE; + $m = \Upper_enum_value\NotAllowed::PBDECLARE; + $m = \Upper_enum_value\NotAllowed::PBDEFAULT; + $m = \Upper_enum_value\NotAllowed::PBDIE; + $m = \Upper_enum_value\NotAllowed::PBDO; + $m = \Upper_enum_value\NotAllowed::PBECHO; + $m = \Upper_enum_value\NotAllowed::PBELSE; + $m = \Upper_enum_value\NotAllowed::PBELSEIF; + $m = \Upper_enum_value\NotAllowed::PBEMPTY; + $m = \Upper_enum_value\NotAllowed::PBENDDECLARE; + $m = \Upper_enum_value\NotAllowed::PBENDFOR; + $m = \Upper_enum_value\NotAllowed::PBENDFOREACH; + $m = \Upper_enum_value\NotAllowed::PBENDIF; + $m = \Upper_enum_value\NotAllowed::PBENDSWITCH; + $m = \Upper_enum_value\NotAllowed::PBENDWHILE; + $m = \Upper_enum_value\NotAllowed::PBEVAL; + $m = \Upper_enum_value\NotAllowed::PBEXIT; + $m = \Upper_enum_value\NotAllowed::PBEXTENDS; + $m = \Upper_enum_value\NotAllowed::PBFINAL; + $m = \Upper_enum_value\NotAllowed::PBFOR; + $m = \Upper_enum_value\NotAllowed::PBFOREACH; + $m = \Upper_enum_value\NotAllowed::PBFUNCTION; + $m = \Upper_enum_value\NotAllowed::PBGLOBAL; + $m = \Upper_enum_value\NotAllowed::PBGOTO; + $m = \Upper_enum_value\NotAllowed::PBIF; + $m = \Upper_enum_value\NotAllowed::PBIMPLEMENTS; + $m = \Upper_enum_value\NotAllowed::PBINCLUDE; + $m = \Upper_enum_value\NotAllowed::PBINCLUDE_ONCE; + $m = \Upper_enum_value\NotAllowed::PBINSTANCEOF; + $m = \Upper_enum_value\NotAllowed::PBINSTEADOF; + $m = \Upper_enum_value\NotAllowed::PBINTERFACE; + $m = \Upper_enum_value\NotAllowed::PBISSET; + $m = \Upper_enum_value\NotAllowed::PBLIST; + $m = \Upper_enum_value\NotAllowed::PBNAMESPACE; + $m = \Upper_enum_value\NotAllowed::PBNEW; + $m = \Upper_enum_value\NotAllowed::PBOR; + $m = \Upper_enum_value\NotAllowed::PBPRINT; + $m = \Upper_enum_value\NotAllowed::PBPRIVATE; + $m = \Upper_enum_value\NotAllowed::PBPROTECTED; + $m = \Upper_enum_value\NotAllowed::PBPUBLIC; + $m = \Upper_enum_value\NotAllowed::PBREQUIRE; + $m = \Upper_enum_value\NotAllowed::PBREQUIRE_ONCE; + $m = \Upper_enum_value\NotAllowed::PBRETURN; + $m = \Upper_enum_value\NotAllowed::PBSTATIC; + $m = \Upper_enum_value\NotAllowed::PBSWITCH; + $m = \Upper_enum_value\NotAllowed::PBTHROW; + $m = \Upper_enum_value\NotAllowed::PBTRAIT; + $m = \Upper_enum_value\NotAllowed::PBTRY; + $m = \Upper_enum_value\NotAllowed::PBUNSET; + $m = \Upper_enum_value\NotAllowed::PBUSE; + $m = \Upper_enum_value\NotAllowed::PBVAR; + $m = \Upper_enum_value\NotAllowed::PBWHILE; + $m = \Upper_enum_value\NotAllowed::PBXOR; + $m = \Upper_enum_value\NotAllowed::INT; + $m = \Upper_enum_value\NotAllowed::FLOAT; + $m = \Upper_enum_value\NotAllowed::BOOL; + $m = \Upper_enum_value\NotAllowed::STRING; + $m = \Upper_enum_value\NotAllowed::TRUE; + $m = \Upper_enum_value\NotAllowed::FALSE; + $m = \Upper_enum_value\NotAllowed::NULL; + $m = \Upper_enum_value\NotAllowed::VOID; + $m = \Upper_enum_value\NotAllowed::ITERABLE; } ######################################################### diff --git a/php/tests/proto/test_reserved_enum_lower.proto b/php/tests/proto/test_reserved_enum_lower.proto index e2144c0c..d2daeaff 100644 --- a/php/tests/proto/test_reserved_enum_lower.proto +++ b/php/tests/proto/test_reserved_enum_lower.proto @@ -2,78 +2,76 @@ syntax = "proto3"; package lower_enum; -enum NotAllowed { - abstract = 0; - and = 1; - array = 2; - as = 3; - break = 4; - callable = 5; - case = 6; - catch = 7; - class = 8; - clone = 9; - const = 10; - continue = 11; - declare = 12; - default = 13; - die = 14; - do = 15; - echo = 16; - else = 17; - elseif = 18; - empty = 19; - enddeclare = 20; - endfor = 21; - endforeach = 22; - endif = 23; - endswitch = 24; - endwhile = 25; - eval = 26; - exit = 27; - extends = 28; - final = 29; - for = 30; - foreach = 31; - function = 32; - global = 33; - goto = 34; - if = 35; - implements = 36; - include = 37; - include_once = 38; - instanceof = 39; - insteadof = 40; - interface = 41; - isset = 42; - list = 43; - namespace = 44; - new = 45; - or = 46; - print = 47; - private = 48; - protected = 49; - public = 50; - require = 51; - require_once = 52; - return = 53; - static = 54; - switch = 55; - throw = 56; - trait = 57; - try = 58; - unset = 59; - use = 60; - var = 61; - while = 62; - xor = 63; - int = 64; - float = 65; - bool = 66; - string = 67; - true = 68; - false = 69; - null = 70; - void = 71; - iterable = 72; -} +enum abstract { ZERO1 = 0; } +enum and { ZERO2 = 0; } +enum array { ZERO3 = 0; } +enum as { ZERO4 = 0; } +enum break { ZERO5 = 0; } +enum callable { ZERO6 = 0; } +enum case { ZERO7 = 0; } +enum catch { ZERO8 = 0; } +enum class { ZERO9 = 0; } +enum clone { ZERO10 = 0; } +enum const { ZERO11 = 0; } +enum continue { ZERO12 = 0; } +enum declare { ZERO13 = 0; } +enum default { ZERO14 = 0; } +enum die { ZERO15 = 0; } +enum do { ZERO16 = 0; } +enum echo { ZERO17 = 0; } +enum else { ZERO18 = 0; } +enum elseif { ZERO19 = 0; } +enum empty { ZERO20 = 0; } +enum enddeclare { ZERO21 = 0; } +enum endfor { ZERO22 = 0; } +enum endforeach { ZERO23 = 0; } +enum endif { ZERO24 = 0; } +enum endswitch { ZERO25 = 0; } +enum endwhile { ZERO26 = 0; } +enum eval { ZERO27 = 0; } +enum exit { ZERO28 = 0; } +enum extends { ZERO29 = 0; } +enum final { ZERO30 = 0; } +enum for { ZERO31 = 0; } +enum foreach { ZERO32 = 0; } +enum function { ZERO33 = 0; } +enum global { ZERO34 = 0; } +enum goto { ZERO35 = 0; } +enum if { ZERO36 = 0; } +enum implements { ZERO37 = 0; } +enum include { ZERO38 = 0; } +enum include_once { ZERO39 = 0; } +enum instanceof { ZERO40 = 0; } +enum insteadof { ZERO41 = 0; } +enum interface { ZERO42 = 0; } +enum isset { ZERO43 = 0; } +enum list { ZERO44 = 0; } +enum namespace { ZERO45 = 0; } +enum new { ZERO46 = 0; } +enum or { ZERO47 = 0; } +enum print { ZERO48 = 0; } +enum private { ZERO49 = 0; } +enum protected { ZERO50 = 0; } +enum public { ZERO51 = 0; } +enum require { ZERO52 = 0; } +enum require_once { ZERO53 = 0; } +enum return { ZERO54 = 0; } +enum static { ZERO55 = 0; } +enum switch { ZERO56 = 0; } +enum throw { ZERO57 = 0; } +enum trait { ZERO58 = 0; } +enum try { ZERO59 = 0; } +enum unset { ZERO60 = 0; } +enum use { ZERO61 = 0; } +enum var { ZERO62 = 0; } +enum while { ZERO63 = 0; } +enum xor { ZERO64 = 0; } +enum int { ZERO65 = 0; } +enum float { ZERO66 = 0; } +enum bool { ZERO67 = 0; } +enum string { ZERO68 = 0; } +enum true { ZERO69 = 0; } +enum false { ZERO70 = 0; } +enum null { ZERO71 = 0; } +enum void { ZERO72 = 0; } +enum iterable { ZERO73 = 0; } diff --git a/php/tests/proto/test_reserved_enum_upper.proto b/php/tests/proto/test_reserved_enum_upper.proto index a4cc1f4b..a396fea3 100644 --- a/php/tests/proto/test_reserved_enum_upper.proto +++ b/php/tests/proto/test_reserved_enum_upper.proto @@ -2,78 +2,76 @@ syntax = "proto3"; package upper_enum; -enum NotAllowed { - ABSTRACT = 0; - AND = 1; - ARRAY = 2; - AS = 3; - BREAK = 4; - CALLABLE = 5; - CASE = 6; - CATCH = 7; - CLASS = 8; - CLONE = 9; - CONST = 10; - CONTINUE = 11; - DECLARE = 12; - DEFAULT = 13; - DIE = 14; - DO = 15; - ECHO = 16; - ELSE = 17; - ELSEIF = 18; - EMPTY = 19; - ENDDECLARE = 20; - ENDFOR = 21; - ENDFOREACH = 22; - ENDIF = 23; - ENDSWITCH = 24; - ENDWHILE = 25; - EVAL = 26; - EXIT = 27; - EXTENDS = 28; - FINAL = 29; - FOR = 30; - FOREACH = 31; - FUNCTION = 32; - GLOBAL = 33; - GOTO = 34; - IF = 35; - IMPLEMENTS = 36; - INCLUDE = 37; - INCLUDE_ONCE = 38; - INSTANCEOF = 39; - INSTEADOF = 40; - INTERFACE = 41; - ISSET = 42; - LIST = 43; - NAMESPACE = 44; - NEW = 45; - OR = 46; - PRINT = 47; - PRIVATE = 48; - PROTECTED = 49; - PUBLIC = 50; - REQUIRE = 51; - REQUIRE_ONCE = 52; - RETURN = 53; - STATIC = 54; - SWITCH = 55; - THROW = 56; - TRAIT = 57; - TRY = 58; - UNSET = 59; - USE = 60; - VAR = 61; - WHILE = 62; - XOR = 63; - INT = 64; - FLOAT = 65; - BOOL = 66; - STRING = 67; - TRUE = 68; - FALSE = 69; - NULL = 70; - VOID = 71; - ITERABLE = 72; -} +enum ABSTRACT { ZERO1 = 0; } +enum AND { ZERO2 = 0; } +enum ARRAY { ZERO3 = 0; } +enum AS { ZERO4 = 0; } +enum BREAK { ZERO5 = 0; } +enum CALLABLE { ZERO6 = 0; } +enum CASE { ZERO7 = 0; } +enum CATCH { ZERO8 = 0; } +enum CLASS { ZERO9 = 0; } +enum CLONE { ZERO10 = 0; } +enum CONST { ZERO11 = 0; } +enum CONTINUE { ZERO12 = 0; } +enum DECLARE { ZERO13 = 0; } +enum DEFAULT { ZERO14 = 0; } +enum DIE { ZERO15 = 0; } +enum DO { ZERO16 = 0; } +enum ECHO { ZERO17 = 0; } +enum ELSE { ZERO18 = 0; } +enum ELSEIF { ZERO19 = 0; } +enum EMPTY { ZERO20 = 0; } +enum ENDDECLARE { ZERO21 = 0; } +enum ENDFOR { ZERO22 = 0; } +enum ENDFOREACH { ZERO23 = 0; } +enum ENDIF { ZERO24 = 0; } +enum ENDSWITCH { ZERO25 = 0; } +enum ENDWHILE { ZERO26 = 0; } +enum EVAL { ZERO27 = 0; } +enum EXIT { ZERO28 = 0; } +enum EXTENDS { ZERO29 = 0; } +enum FINAL { ZERO30 = 0; } +enum FOR { ZERO31 = 0; } +enum FOREACH { ZERO32 = 0; } +enum FUNCTION { ZERO33 = 0; } +enum GLOBAL { ZERO34 = 0; } +enum GOTO { ZERO35 = 0; } +enum IF { ZERO36 = 0; } +enum IMPLEMENTS { ZERO37 = 0; } +enum INCLUDE { ZERO38 = 0; } +enum INCLUDE_ONCE { ZERO39 = 0; } +enum INSTANCEOF { ZERO40 = 0; } +enum INSTEADOF { ZERO41 = 0; } +enum INTERFACE { ZERO42 = 0; } +enum ISSET { ZERO43 = 0; } +enum LIST { ZERO44 = 0; } +enum NAMESPACE { ZERO45 = 0; } +enum NEW { ZERO46 = 0; } +enum OR { ZERO47 = 0; } +enum PRINT { ZERO48 = 0; } +enum PRIVATE { ZERO49 = 0; } +enum PROTECTED { ZERO50 = 0; } +enum PUBLIC { ZERO51 = 0; } +enum REQUIRE { ZERO52 = 0; } +enum REQUIRE_ONCE { ZERO53 = 0; } +enum RETURN { ZERO54 = 0; } +enum STATIC { ZERO55 = 0; } +enum SWITCH { ZERO56 = 0; } +enum THROW { ZERO57 = 0; } +enum TRAIT { ZERO58 = 0; } +enum TRY { ZERO59 = 0; } +enum UNSET { ZERO60 = 0; } +enum USE { ZERO61 = 0; } +enum VAR { ZERO62 = 0; } +enum WHILE { ZERO63 = 0; } +enum XOR { ZERO64 = 0; } +enum INT { ZERO65 = 0; } +enum FLOAT { ZERO66 = 0; } +enum BOOL { ZERO67 = 0; } +enum STRING { ZERO68 = 0; } +enum TRUE { ZERO69 = 0; } +enum FALSE { ZERO70 = 0; } +enum NULL { ZERO71 = 0; } +enum VOID { ZERO72 = 0; } +enum ITERABLE { ZERO73 = 0; } diff --git a/php/tests/proto/test_reserved_enum_value_lower.proto b/php/tests/proto/test_reserved_enum_value_lower.proto new file mode 100644 index 00000000..96da319e --- /dev/null +++ b/php/tests/proto/test_reserved_enum_value_lower.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package lower_enum_value; + +enum NotAllowed { + abstract = 0; + and = 1; + array = 2; + as = 3; + break = 4; + callable = 5; + case = 6; + catch = 7; + class = 8; + clone = 9; + const = 10; + continue = 11; + declare = 12; + default = 13; + die = 14; + do = 15; + echo = 16; + else = 17; + elseif = 18; + empty = 19; + enddeclare = 20; + endfor = 21; + endforeach = 22; + endif = 23; + endswitch = 24; + endwhile = 25; + eval = 26; + exit = 27; + extends = 28; + final = 29; + for = 30; + foreach = 31; + function = 32; + global = 33; + goto = 34; + if = 35; + implements = 36; + include = 37; + include_once = 38; + instanceof = 39; + insteadof = 40; + interface = 41; + isset = 42; + list = 43; + namespace = 44; + new = 45; + or = 46; + print = 47; + private = 48; + protected = 49; + public = 50; + require = 51; + require_once = 52; + return = 53; + static = 54; + switch = 55; + throw = 56; + trait = 57; + try = 58; + unset = 59; + use = 60; + var = 61; + while = 62; + xor = 63; + int = 64; + float = 65; + bool = 66; + string = 67; + true = 68; + false = 69; + null = 70; + void = 71; + iterable = 72; +} diff --git a/php/tests/proto/test_reserved_enum_value_upper.proto b/php/tests/proto/test_reserved_enum_value_upper.proto new file mode 100644 index 00000000..b026a858 --- /dev/null +++ b/php/tests/proto/test_reserved_enum_value_upper.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package upper_enum_value; + +enum NotAllowed { + ABSTRACT = 0; + AND = 1; + ARRAY = 2; + AS = 3; + BREAK = 4; + CALLABLE = 5; + CASE = 6; + CATCH = 7; + CLASS = 8; + CLONE = 9; + CONST = 10; + CONTINUE = 11; + DECLARE = 12; + DEFAULT = 13; + DIE = 14; + DO = 15; + ECHO = 16; + ELSE = 17; + ELSEIF = 18; + EMPTY = 19; + ENDDECLARE = 20; + ENDFOR = 21; + ENDFOREACH = 22; + ENDIF = 23; + ENDSWITCH = 24; + ENDWHILE = 25; + EVAL = 26; + EXIT = 27; + EXTENDS = 28; + FINAL = 29; + FOR = 30; + FOREACH = 31; + FUNCTION = 32; + GLOBAL = 33; + GOTO = 34; + IF = 35; + IMPLEMENTS = 36; + INCLUDE = 37; + INCLUDE_ONCE = 38; + INSTANCEOF = 39; + INSTEADOF = 40; + INTERFACE = 41; + ISSET = 42; + LIST = 43; + NAMESPACE = 44; + NEW = 45; + OR = 46; + PRINT = 47; + PRIVATE = 48; + PROTECTED = 49; + PUBLIC = 50; + REQUIRE = 51; + REQUIRE_ONCE = 52; + RETURN = 53; + STATIC = 54; + SWITCH = 55; + THROW = 56; + TRAIT = 57; + TRY = 58; + UNSET = 59; + USE = 60; + VAR = 61; + WHILE = 62; + XOR = 63; + INT = 64; + FLOAT = 65; + BOOL = 66; + STRING = 67; + TRUE = 68; + FALSE = 69; + NULL = 70; + VOID = 71; + ITERABLE = 72; +} diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index fe781df2..b73062de 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -65,7 +65,12 @@ const char* const kReservedNames[] = { "use", "var", "while", "xor", "int", "float", "bool", "string", "true", "false", "null", "void", "iterable"}; +const char* const kValidConstantNames[] = { + "int", "float", "bool", "string", "true", + "false", "null", "void", "iterable", +}; const int kReservedNamesSize = 73; +const int kValidConstantNamesSize = 9; const int kFieldSetter = 1; const int kFieldGetter = 2; const int kFieldProperty = 3; @@ -161,6 +166,34 @@ std::string ClassNamePrefix(const string& classname, return ""; } +std::string ClassNamePrefix(const string& classname, + const EnumValueDescriptor* desc) { + bool is_reserved = false; + + string lower = classname; + transform(lower.begin(), lower.end(), lower.begin(), ::tolower); + + for (int i = 0; i < kReservedNamesSize; i++) { + if (lower == kReservedNames[i]) { + is_reserved = true; + break; + } + } + + for (int i = 0; i < kValidConstantNamesSize; i++) { + if (lower == kValidConstantNames[i]) { + is_reserved = false; + break; + } + } + + if (is_reserved) { + return "PB"; + } + + return ""; +} + template std::string NamespacedName(const string& classname, const DescriptorType* desc, bool is_descriptor) { @@ -696,7 +729,7 @@ void GenerateEnumToPool(const EnumDescriptor* en, io::Printer* printer) { const EnumValueDescriptor* value = en->value(i); printer->Print( "->value(\"^name^\", ^number^)\n", - "name", ClassNamePrefix(value->name(), en) + value->name(), + "name", ClassNamePrefix(value->name(), value) + value->name(), "number", IntToString(value->number())); } printer->Print("->finalizeToPool();\n\n"); @@ -999,7 +1032,7 @@ void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en, const EnumValueDescriptor* value = en->value(i); GenerateEnumValueDocComment(&printer, value); printer.Print("const ^name^ = ^number^;\n", - "name", ClassNamePrefix(value->name(), en) + value->name(), + "name", ClassNamePrefix(value->name(), value) + value->name(), "number", IntToString(value->number())); } diff --git a/tests.sh b/tests.sh index a29ba647..d74acb12 100755 --- a/tests.sh +++ b/tests.sh @@ -346,19 +346,21 @@ generate_php_test_proto() { # Generate test file rm -rf generated mkdir generated - ../../src/protoc --php_out=generated \ - proto/test.proto \ - proto/test_include.proto \ - proto/test_no_namespace.proto \ - proto/test_prefix.proto \ - proto/test_php_namespace.proto \ - proto/test_empty_php_namespace.proto \ - proto/test_reserved_enum_lower.proto \ - proto/test_reserved_enum_upper.proto \ - proto/test_reserved_message_lower.proto \ - proto/test_reserved_message_upper.proto \ - proto/test_service.proto \ - proto/test_service_namespace.proto \ + ../../src/protoc --php_out=generated \ + proto/test.proto \ + proto/test_include.proto \ + proto/test_no_namespace.proto \ + proto/test_prefix.proto \ + proto/test_php_namespace.proto \ + proto/test_empty_php_namespace.proto \ + proto/test_reserved_enum_lower.proto \ + proto/test_reserved_enum_upper.proto \ + proto/test_reserved_enum_value_lower.proto \ + proto/test_reserved_enum_value_upper.proto \ + proto/test_reserved_message_lower.proto \ + proto/test_reserved_message_upper.proto \ + proto/test_service.proto \ + proto/test_service_namespace.proto \ proto/test_descriptors.proto pushd ../../src ./protoc --php_out=../php/tests/generated google/protobuf/empty.proto -- cgit v1.2.3