Commit d09ab853 authored by kenton@google.com's avatar kenton@google.com

Allow services with lite runtime when using rpc generator plugin.

parent b3f6a158
...@@ -3720,10 +3720,14 @@ void DescriptorBuilder::ValidateEnumValueOptions( ...@@ -3720,10 +3720,14 @@ void DescriptorBuilder::ValidateEnumValueOptions(
} }
void DescriptorBuilder::ValidateServiceOptions(ServiceDescriptor* service, void DescriptorBuilder::ValidateServiceOptions(ServiceDescriptor* service,
const ServiceDescriptorProto& proto) { const ServiceDescriptorProto& proto) {
if (IsLite(service->file())) { if (IsLite(service->file()) &&
(service->file()->options().cc_generic_services() ||
service->file()->options().java_generic_services())) {
AddError(service->full_name(), proto, AddError(service->full_name(), proto,
DescriptorPool::ErrorCollector::NAME, DescriptorPool::ErrorCollector::NAME,
"Files with optimize_for = LITE_RUNTIME cannot define services."); "Files with optimize_for = LITE_RUNTIME cannot define services "
"unless you set both options cc_generic_services and "
"java_generic_sevices to false.");
} }
VALIDATE_OPTIONS_FROM_ARRAY(service, method, Method); VALIDATE_OPTIONS_FROM_ARRAY(service, method, Method);
......
...@@ -3487,7 +3487,17 @@ TEST_F(ValidationErrorTest, NoLiteServices) { ...@@ -3487,7 +3487,17 @@ TEST_F(ValidationErrorTest, NoLiteServices) {
"service { name: \"Foo\" }", "service { name: \"Foo\" }",
"foo.proto: Foo: NAME: Files with optimize_for = LITE_RUNTIME cannot " "foo.proto: Foo: NAME: Files with optimize_for = LITE_RUNTIME cannot "
"define services.\n"); "define services unless you set both options cc_generic_services and "
"java_generic_sevices to false.\n");
BuildFile(
"name: \"bar.proto\" "
"options {"
" optimize_for: LITE_RUNTIME"
" cc_generic_services: false"
" java_generic_services: false"
"} "
"service { name: \"Foo\" }");
} }
TEST_F(ValidationErrorTest, RollbackAfterError) { TEST_F(ValidationErrorTest, RollbackAfterError) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment