diff options
Diffstat (limited to 'src/google/protobuf/compiler/php/php_generator.cc')
-rw-r--r-- | src/google/protobuf/compiler/php/php_generator.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index cdb2f509..0bfe10c9 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -664,10 +664,18 @@ void GenerateFieldAccessor(const FieldDescriptor* field, bool is_descriptor, // Generate setter. GenerateFieldDocComment(printer, field, is_descriptor, kFieldSetter); - printer->Print( - "public function set^camel_name^($var)\n" - "{\n", - "camel_name", UnderscoresToCamelCase(field->name(), true)); + if (field->type() == FieldDescriptor::TYPE_MESSAGE && !field->is_repeated()) { + printer->Print( + "public function set^camel_name^(^typehint^ $var = null)\n" + "{\n", + "camel_name", UnderscoresToCamelCase(field->name(), true), + "typehint", "\\" + FullClassName(field->message_type(), is_descriptor)); + } else { + printer->Print( + "public function set^camel_name^($var)\n" + "{\n", + "camel_name", UnderscoresToCamelCase(field->name(), true)); + } Indent(printer); |