@@ -393,6 +393,37 @@ void MessageBuilderGenerator::GenerateCommonBuilderMethods(
393393
394394 GenerateBuildPartial (printer);
395395
396+ // We include these methods only in open source to maintain long term ABI
397+ // compatibility, and there should be no need to include them in Google3.
398+ if (context_->options ().opensource_runtime &&
399+ descriptor_->extension_range_count () > 0 ) {
400+ printer->Print (
401+ " public <Type> Builder setExtension(\n "
402+ " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n "
403+ " $classname$, Type> extension,\n "
404+ " Type value) {\n "
405+ " return super.setExtension(extension, value);\n "
406+ " }\n "
407+ " public <Type> Builder setExtension(\n "
408+ " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n "
409+ " $classname$, java.util.List<Type>> extension,\n "
410+ " int index, Type value) {\n "
411+ " return super.setExtension(extension, index, value);\n "
412+ " }\n "
413+ " public <Type> Builder addExtension(\n "
414+ " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n "
415+ " $classname$, java.util.List<Type>> extension,\n "
416+ " Type value) {\n "
417+ " return super.addExtension(extension, value);\n "
418+ " }\n "
419+ " public <Type> Builder clearExtension(\n "
420+ " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n "
421+ " $classname$, Type> extension) {\n "
422+ " return super.clearExtension(extension);\n "
423+ " }\n " ,
424+ " classname" , name_resolver_->GetImmutableClassName (descriptor_));
425+ }
426+
396427 // -----------------------------------------------------------------
397428
398429 if (context_->HasGeneratedMethods (descriptor_)) {
0 commit comments