| 
					
				 | 
			
			
				@@ -60,7 +60,8 @@ bool CompareFieldNumbers(const FieldDescriptor* d1, const FieldDescriptor* d2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return d1->number() < d2->number(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-MessageGenerator::MessageGenerator(const Descriptor* descriptor, const Options* options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+MessageGenerator::MessageGenerator(const Descriptor* descriptor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                   const Options* options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     : SourceGeneratorBase(descriptor->file(), options), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       descriptor_(descriptor) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -185,7 +186,8 @@ void MessageGenerator::Generate(io::Printer* printer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     printer->Outdent(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     printer->Print("}\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // TODO: Should we put the oneof .proto comments here? It's unclear exactly where they should go. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // TODO: Should we put the oneof .proto comments here? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // It's unclear exactly where they should go. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     printer->Print( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       vars, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       "private $property_name$OneofCase $name$Case_ = $property_name$OneofCase.None;\n" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -220,7 +222,8 @@ void MessageGenerator::Generate(io::Printer* printer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for (int i = 0; i < descriptor_->nested_type_count(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // Don't generate nested types for maps... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (!IsMapEntryMessage(descriptor_->nested_type(i))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MessageGenerator messageGenerator(descriptor_->nested_type(i), this->options()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MessageGenerator messageGenerator( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            descriptor_->nested_type(i), this->options()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         messageGenerator.Generate(printer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -268,7 +271,8 @@ void MessageGenerator::GenerateCloningCode(io::Printer* printer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Clone just the right field for each oneof 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (int i = 0; i < descriptor_->oneof_decl_count(); ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     vars["name"] = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    vars["property_name"] = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vars["property_name"] = UnderscoresToCamelCase( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        descriptor_->oneof_decl(i)->name(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     printer->Print(vars, "switch (other.$property_name$Case) {\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     printer->Indent(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -449,7 +453,8 @@ void MessageGenerator::GenerateMergingMethods(io::Printer* printer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     uint32 tag = internal::WireFormatLite::MakeTag(field->number(), wt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // Handle both packed and unpacked repeated fields with the same Read*Array call; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // the two generated cases are the packed and unpacked tags. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // TODO(jonskeet): Check that is_packable is equivalent to is_repeated && wt in { VARINT, FIXED32, FIXED64 }. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // TODO(jonskeet): Check that is_packable is equivalent to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // is_repeated && wt in { VARINT, FIXED32, FIXED64 }. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // It looks like it is... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (field->is_packable()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       printer->Print( 
			 |