Эх сурвалжийг харах

A few performance tweaks of the ICodedOutputStream interface/implementation

csharptest 14 жил өмнө
parent
commit
c671a4b317
31 өөрчлөгдсөн 1604 нэмэгдсэн , 1285 устгасан
  1. 15 15
      src/AddressBook/AddressBookProtos.cs
  2. 112 23
      src/ProtoBench/Program.cs
  3. 1 0
      src/ProtoBench/ProtoBench.csproj
  4. 2 1
      src/ProtoBench/app.config
  5. 3 3
      src/ProtoGen/EnumFieldGenerator.cs
  6. 5 5
      src/ProtoGen/MessageFieldGenerator.cs
  7. 3 3
      src/ProtoGen/PrimitiveFieldGenerator.cs
  8. 9 9
      src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
  9. 42 42
      src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
  10. 5 5
      src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
  11. 112 112
      src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs
  12. 175 175
      src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
  13. 3 3
      src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
  14. 3 3
      src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
  15. 17 17
      src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
  16. 3 3
      src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
  17. 6 6
      src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
  18. 158 158
      src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
  19. 11 11
      src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs
  20. 23 23
      src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
  21. 311 84
      src/ProtocolBuffers/CodedOutputStream.cs
  22. 48 48
      src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
  23. 147 147
      src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
  24. 2 1
      src/ProtocolBuffers/ICodedOutputStream.cs
  25. 22 22
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
  26. 39 39
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
  27. 3 3
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
  28. 3 3
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
  29. 5 5
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
  30. 158 158
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
  31. 158 158
      src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs

+ 15 - 15
src/AddressBook/AddressBookProtos.cs

@@ -154,10 +154,10 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
         
         public override void WriteTo(pb::ICodedOutputStream output) {
           int size = SerializedSize;
-          if (HasNumber) {
+          if (hasNumber) {
             output.WriteString(1, "number", Number);
           }
-          if (HasType) {
+          if (hasType) {
             output.WriteEnum(2, "type", (int) Type, Type.ToString());
           }
           UnknownFields.WriteTo(output);
@@ -170,10 +170,10 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
             if (size != -1) return size;
             
             size = 0;
-            if (HasNumber) {
+            if (hasNumber) {
               size += pb::CodedOutputStream.ComputeStringSize(1, Number);
             }
-            if (HasType) {
+            if (hasType) {
               size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);
             }
             size += UnknownFields.SerializedSize;
@@ -334,7 +334,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
           
           
           public bool HasNumber {
-            get { return result.HasNumber; }
+            get { return result.hasNumber; }
           }
           public string Number {
             get { return result.Number; }
@@ -353,7 +353,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
           }
           
           public bool HasType {
-           get { return result.HasType; }
+           get { return result.hasType; }
           }
           public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType Type {
             get { return result.Type; }
@@ -433,13 +433,13 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasName) {
+      if (hasName) {
         output.WriteString(1, "name", Name);
       }
-      if (HasId) {
+      if (hasId) {
         output.WriteInt32(2, "id", Id);
       }
-      if (HasEmail) {
+      if (hasEmail) {
         output.WriteString(3, "email", Email);
       }
       if (phone_.Count > 0) {
@@ -455,13 +455,13 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
         if (size != -1) return size;
         
         size = 0;
-        if (HasName) {
+        if (hasName) {
           size += pb::CodedOutputStream.ComputeStringSize(1, Name);
         }
-        if (HasId) {
+        if (hasId) {
           size += pb::CodedOutputStream.ComputeInt32Size(2, Id);
         }
-        if (HasEmail) {
+        if (hasEmail) {
           size += pb::CodedOutputStream.ComputeStringSize(3, Email);
         }
         foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber element in PhoneList) {
@@ -632,7 +632,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
       
       
       public bool HasName {
-        get { return result.HasName; }
+        get { return result.hasName; }
       }
       public string Name {
         get { return result.Name; }
@@ -651,7 +651,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
       }
       
       public bool HasId {
-        get { return result.HasId; }
+        get { return result.hasId; }
       }
       public int Id {
         get { return result.Id; }
@@ -669,7 +669,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
       }
       
       public bool HasEmail {
-        get { return result.HasEmail; }
+        get { return result.hasEmail; }
       }
       public string Email {
         get { return result.Email; }

+ 112 - 23
src/ProtoBench/Program.cs

@@ -35,8 +35,10 @@
 #endregion
 
 using System;
+using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
+using System.Threading;
 
 namespace Google.ProtocolBuffers.ProtoBench
 {
@@ -45,20 +47,37 @@ namespace Google.ProtocolBuffers.ProtoBench
     /// </summary>
     public sealed class Program
     {
-        private static readonly TimeSpan MinSampleTime = TimeSpan.FromSeconds(2);
-        private static readonly TimeSpan TargetTime = TimeSpan.FromSeconds(30);
-
+        private static TimeSpan MinSampleTime = TimeSpan.FromSeconds(2);
+        private static TimeSpan TargetTime = TimeSpan.FromSeconds(30);
+        private static bool FastTest = false;
+        private static bool Verbose = false;
         // Avoid a .NET 3.5 dependency
         private delegate void Action();
 
+        private delegate void BenchmarkTest(string name, long dataSize, Action action);
+
+        private static BenchmarkTest RunBenchmark;
+
         public static int Main(string[] args)
         {
+            List<string> temp = new List<string>(args);
+
+            FastTest = temp.Remove("/fast") || temp.Remove("-fast");
+            Verbose = temp.Remove("/verbose") || temp.Remove("-verbose");
+            
+            RunBenchmark = BenchmarkV1;
+            if (temp.Remove("/v2") || temp.Remove("-v2"))
+                RunBenchmark = BenchmarkV2;
+
+            args = temp.ToArray();
+
+
+
             if (args.Length < 2 || (args.Length%2) != 0)
             {
-                Console.Error.WriteLine("Usage: ProtoBench <descriptor type name> <input data>");
+                Console.Error.WriteLine("Usage: ProtoBench [/fast] <descriptor type name> <input data>");
                 Console.Error.WriteLine("The descriptor type name is the fully-qualified message name,");
-                Console.Error.WriteLine(
-                    "including assembly - e.g. Google.ProtocolBuffers.BenchmarkProtos.Message1,ProtoBench");
+                Console.Error.WriteLine("including assembly - e.g. Google.ProtocolBuffers.BenchmarkProtos.Message1,ProtoBench");
                 Console.Error.WriteLine("(You can specify multiple pairs of descriptor type name and input data.)");
                 return 1;
             }
@@ -94,31 +113,27 @@ namespace Google.ProtocolBuffers.ProtoBench
                 ByteString inputString = ByteString.CopyFrom(inputData);
                 IMessage sampleMessage =
                     defaultMessage.WeakCreateBuilderForType().WeakMergeFrom(inputString).WeakBuild();
-                Benchmark("Serialize to byte string", inputData.Length, () => sampleMessage.ToByteString());
-                Benchmark("Serialize to byte array", inputData.Length, () => sampleMessage.ToByteArray());
-                Benchmark("Serialize to memory stream", inputData.Length,
+                if(!FastTest) RunBenchmark("Serialize to byte string", inputData.Length, () => sampleMessage.ToByteString());
+                RunBenchmark("Serialize to byte array", inputData.Length, () => sampleMessage.ToByteArray());
+                if (!FastTest) RunBenchmark("Serialize to memory stream", inputData.Length,
                           () => sampleMessage.WriteTo(new MemoryStream()));
-                Benchmark("Deserialize from byte string", inputData.Length,
+                if (!FastTest) RunBenchmark("Deserialize from byte string", inputData.Length,
                           () => defaultMessage.WeakCreateBuilderForType()
                                     .WeakMergeFrom(inputString)
                                     .WeakBuild()
                     );
-                Benchmark("Deserialize from byte array", inputData.Length,
+                RunBenchmark("Deserialize from byte array", inputData.Length,
                           () => defaultMessage.WeakCreateBuilderForType()
                                     .WeakMergeFrom(CodedInputStream.CreateInstance(inputData))
                                     .WeakBuild()
                     );
-                Benchmark("Deserialize from memory stream", inputData.Length, () =>
-                                                                                  {
-                                                                                      inputStream.Position = 0;
-                                                                                      defaultMessage.
-                                                                                          WeakCreateBuilderForType()
-                                                                                          .WeakMergeFrom(
-                                                                                              CodedInputStream.
-                                                                                                  CreateInstance(
-                                                                                                      inputStream))
-                                                                                          .WeakBuild();
-                                                                                  });
+                if (!FastTest) RunBenchmark("Deserialize from memory stream", inputData.Length, 
+                    () => {
+                      inputStream.Position = 0;
+                      defaultMessage.WeakCreateBuilderForType().WeakMergeFrom(
+                              CodedInputStream.CreateInstance(inputStream))
+                          .WeakBuild();
+                  });
                 Console.WriteLine();
                 return true;
             }
@@ -131,7 +146,79 @@ namespace Google.ProtocolBuffers.ProtoBench
             }
         }
 
-        private static void Benchmark(string name, long dataSize, Action action)
+        private static void BenchmarkV2(string name, long dataSize, Action action)
+        {
+            TimeSpan elapsed = TimeSpan.Zero;
+            long runs = 0;
+            long totalCount = 0;
+            double best = double.MinValue, worst = double.MaxValue;
+
+            ThreadStart threadProc = 
+                delegate()
+                    {
+                        action();
+                        // Run it progressively more times until we've got a reasonable sample
+
+                        int iterations = 100;
+                        elapsed = TimeAction(action, iterations);
+                        while (elapsed.TotalMilliseconds < 1000)
+                        {
+                            elapsed += TimeAction(action, iterations);
+                            iterations *= 2;
+                        }
+
+                        TimeSpan target = TimeSpan.FromSeconds(1);
+
+                        elapsed = TimeAction(action, iterations);
+                        iterations = (int)((target.Ticks * iterations) / (double)elapsed.Ticks);
+                        elapsed = TimeAction(action, iterations);
+                        iterations = (int)((target.Ticks * iterations) / (double)elapsed.Ticks);
+                        elapsed = TimeAction(action, iterations);
+                        iterations = (int)((target.Ticks * iterations) / (double)elapsed.Ticks);
+
+                        double first = (iterations * dataSize) / (elapsed.TotalSeconds * 1024 * 1024);
+                        if (Verbose) Console.WriteLine("Round ---: Count = {1,6}, Bps = {2,8:f3}", 0, iterations, first);
+                        elapsed = TimeSpan.Zero;
+                        int max = FastTest ? 30 : 100;
+
+                        while (runs < max)
+                        {
+                            TimeSpan cycle = TimeAction(action, iterations);
+                            // Accumulate and scale for next cycle.
+                            
+                            double bps = (iterations * dataSize) / (cycle.TotalSeconds * 1024 * 1024);
+                            if (Verbose) Console.WriteLine("Round {0,3}: Count = {1,6}, Bps = {2,8:f3}", runs, iterations, bps);
+                            if (runs == 0 && bps > first * 1.1)
+                            {
+                                if (Verbose) Console.WriteLine("Warming up...");
+                                iterations = (int)((target.Ticks * iterations) / (double)cycle.Ticks);
+                                first = bps;
+                                continue;//still warming up...
+                            }
+
+                            best = Math.Max(best, bps);
+                            worst = Math.Min(worst, bps);
+
+                            runs++;
+                            elapsed += cycle;
+                            totalCount += iterations;
+                            iterations = (int) ((target.Ticks*totalCount)/(double) elapsed.Ticks);
+                        }
+                    };
+
+            Thread work = new Thread(threadProc);
+            work.Name = "Worker";
+            work.Priority = ThreadPriority.Highest;
+            work.SetApartmentState(ApartmentState.STA);
+            work.Start();
+            work.Join();
+
+            Console.WriteLine("{0}: averages {1} per {2:f3}s for {3} runs; avg: {4:f3}mbps; best: {5:f3}mbps; worst: {6:f3}mbps",
+                              name, totalCount / runs, elapsed.TotalSeconds / runs, runs,
+                              (totalCount * dataSize) / (elapsed.TotalSeconds * 1024 * 1024), best, worst);
+        }
+
+        private static void BenchmarkV1(string name, long dataSize, Action action)
         {
             // Make sure it's JITted
             action();
@@ -156,7 +243,9 @@ namespace Google.ProtocolBuffers.ProtoBench
         private static TimeSpan TimeAction(Action action, int iterations)
         {
             GC.Collect();
+            GC.GetTotalMemory(true);
             GC.WaitForPendingFinalizers();
+
             Stopwatch sw = Stopwatch.StartNew();
             for (int i = 0; i < iterations; i++)
             {

+ 1 - 0
src/ProtoBench/ProtoBench.csproj

@@ -66,6 +66,7 @@
     <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
       <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
       <Name>ProtocolBuffers</Name>
+      <Private>True</Private>
     </ProjectReference>
   </ItemGroup>
   <ItemGroup>

+ 2 - 1
src/ProtoBench/app.config

@@ -1,3 +1,4 @@
 <?xml version="1.0"?>
 <configuration>
-	<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
+	<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
+</configuration>

+ 3 - 3
src/ProtoGen/EnumFieldGenerator.cs

@@ -61,7 +61,7 @@ namespace Google.ProtocolBuffers.ProtoGen
         public void GenerateBuilderMembers(TextGenerator writer)
         {
             writer.WriteLine("public bool Has{0} {{", PropertyName);
-            writer.WriteLine(" get {{ return result.Has{0}; }}", PropertyName);
+            writer.WriteLine(" get {{ return result.has{0}; }}", PropertyName);
             writer.WriteLine("}");
             AddClsComplianceCheck(writer);
             writer.WriteLine("public {0} {1} {{", TypeName, PropertyName);
@@ -125,14 +125,14 @@ namespace Google.ProtocolBuffers.ProtoGen
 
         public void GenerateSerializationCode(TextGenerator writer)
         {
-            writer.WriteLine("if (Has{0}) {{", PropertyName);
+            writer.WriteLine("if (has{0}) {{", PropertyName);
             writer.WriteLine("  output.WriteEnum({0}, \"{2}\", (int) {1}, {1}.ToString());", Number, PropertyName, Descriptor.Name);
             writer.WriteLine("}");
         }
 
         public void GenerateSerializedSizeCode(TextGenerator writer)
         {
-            writer.WriteLine("if (Has{0}) {{", PropertyName);
+            writer.WriteLine("if (has{0}) {{", PropertyName);
             writer.WriteLine("  size += pb::CodedOutputStream.ComputeEnumSize({0}, (int) {1});", Number, PropertyName);
             writer.WriteLine("}");
         }

+ 5 - 5
src/ProtoGen/MessageFieldGenerator.cs

@@ -60,7 +60,7 @@ namespace Google.ProtocolBuffers.ProtoGen
         public void GenerateBuilderMembers(TextGenerator writer)
         {
             writer.WriteLine("public bool Has{0} {{", PropertyName);
-            writer.WriteLine(" get {{ return result.Has{0}; }}", PropertyName);
+            writer.WriteLine(" get {{ return result.has{0}; }}", PropertyName);
             writer.WriteLine("}");
             writer.WriteLine("public {0} {1} {{", TypeName, PropertyName);
             writer.WriteLine("  get {{ return result.{0}; }}", PropertyName);
@@ -80,7 +80,7 @@ namespace Google.ProtocolBuffers.ProtoGen
             writer.WriteLine("}");
             writer.WriteLine("public Builder Merge{0}({1} value) {{", PropertyName, TypeName);
             AddNullCheck(writer);
-            writer.WriteLine("  if (result.Has{0} &&", PropertyName);
+            writer.WriteLine("  if (result.has{0} &&", PropertyName);
             writer.WriteLine("      result.{0}_ != {1}) {{", Name, DefaultValue);
             writer.WriteLine("      result.{0}_ = {1}.CreateBuilder(result.{0}_).MergeFrom(value).BuildPartial();", Name,
                              TypeName);
@@ -112,7 +112,7 @@ namespace Google.ProtocolBuffers.ProtoGen
         public void GenerateParsingCode(TextGenerator writer)
         {
             writer.WriteLine("{0}.Builder subBuilder = {0}.CreateBuilder();", TypeName);
-            writer.WriteLine("if (Has{0}) {{", PropertyName);
+            writer.WriteLine("if (result.has{0}) {{", PropertyName);
             writer.WriteLine("  subBuilder.MergeFrom({0});", PropertyName);
             writer.WriteLine("}");
             if (Descriptor.FieldType == FieldType.Group)
@@ -128,14 +128,14 @@ namespace Google.ProtocolBuffers.ProtoGen
 
         public void GenerateSerializationCode(TextGenerator writer)
         {
-            writer.WriteLine("if (Has{0}) {{", PropertyName);
+            writer.WriteLine("if (has{0}) {{", PropertyName);
             writer.WriteLine("  output.Write{0}({1}, \"{3}\", {2});", MessageOrGroup, Number, PropertyName, Descriptor.Name);
             writer.WriteLine("}");
         }
 
         public void GenerateSerializedSizeCode(TextGenerator writer)
         {
-            writer.WriteLine("if (Has{0}) {{", PropertyName);
+            writer.WriteLine("if (has{0}) {{", PropertyName);
             writer.WriteLine("  size += pb::CodedOutputStream.Compute{0}Size({1}, {2});",
                              MessageOrGroup, Number, PropertyName);
             writer.WriteLine("}");

+ 3 - 3
src/ProtoGen/PrimitiveFieldGenerator.cs

@@ -62,7 +62,7 @@ namespace Google.ProtocolBuffers.ProtoGen
         public void GenerateBuilderMembers(TextGenerator writer)
         {
             writer.WriteLine("public bool Has{0} {{", PropertyName);
-            writer.WriteLine("  get {{ return result.Has{0}; }}", PropertyName);
+            writer.WriteLine("  get {{ return result.has{0}; }}", PropertyName);
             writer.WriteLine("}");
             AddClsComplianceCheck(writer);
             writer.WriteLine("public {0} {1} {{", TypeName, PropertyName);
@@ -102,14 +102,14 @@ namespace Google.ProtocolBuffers.ProtoGen
 
         public void GenerateSerializationCode(TextGenerator writer)
         {
-            writer.WriteLine("if (Has{0}) {{", PropertyName);
+            writer.WriteLine("if (has{0}) {{", PropertyName);
             writer.WriteLine("  output.Write{0}({1}, \"{3}\", {2});", CapitalizedTypeName, Number, PropertyName, Descriptor.Name);
             writer.WriteLine("}");
         }
 
         public void GenerateSerializedSizeCode(TextGenerator writer)
         {
-            writer.WriteLine("if (Has{0}) {{", PropertyName);
+            writer.WriteLine("if (has{0}) {{", PropertyName);
             writer.WriteLine("  size += pb::CodedOutputStream.Compute{0}Size({1}, {2});",
                              CapitalizedTypeName, Number, PropertyName);
             writer.WriteLine("}");

+ 9 - 9
src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs

@@ -117,13 +117,13 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasNormal) {
+      if (hasNormal) {
         output.WriteString(1, "normal", Normal);
       }
-      if (HasOptionsMessage_) {
+      if (hasOptionsMessage_) {
         output.WriteString(2, "options_message", OptionsMessage_);
       }
-      if (HasCustomName) {
+      if (hasCustomName) {
         output.WriteString(3, "customized", CustomName);
       }
       UnknownFields.WriteTo(output);
@@ -136,13 +136,13 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasNormal) {
+        if (hasNormal) {
           size += pb::CodedOutputStream.ComputeStringSize(1, Normal);
         }
-        if (HasOptionsMessage_) {
+        if (hasOptionsMessage_) {
           size += pb::CodedOutputStream.ComputeStringSize(2, OptionsMessage_);
         }
-        if (HasCustomName) {
+        if (hasCustomName) {
           size += pb::CodedOutputStream.ComputeStringSize(3, CustomName);
         }
         size += UnknownFields.SerializedSize;
@@ -302,7 +302,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasNormal {
-        get { return result.HasNormal; }
+        get { return result.hasNormal; }
       }
       public string Normal {
         get { return result.Normal; }
@@ -321,7 +321,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasOptionsMessage_ {
-        get { return result.HasOptionsMessage_; }
+        get { return result.hasOptionsMessage_; }
       }
       public string OptionsMessage_ {
         get { return result.OptionsMessage_; }
@@ -340,7 +340,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasCustomName {
-        get { return result.HasCustomName; }
+        get { return result.hasCustomName; }
       }
       public string CustomName {
         get { return result.CustomName; }

+ 42 - 42
src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs

@@ -452,7 +452,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasField1) {
+      if (hasField1) {
         output.WriteString(1, "field1", Field1);
       }
       UnknownFields.WriteTo(output);
@@ -465,7 +465,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasField1) {
+        if (hasField1) {
           size += pb::CodedOutputStream.ComputeStringSize(1, Field1);
         }
         size += UnknownFields.SerializedSize;
@@ -611,7 +611,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasField1 {
-        get { return result.HasField1; }
+        get { return result.hasField1; }
       }
       public string Field1 {
         get { return result.Field1; }
@@ -2361,13 +2361,13 @@ namespace Google.ProtocolBuffers.TestProtos {
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
       pb::ExtendableMessage<ComplexOptionType1, ComplexOptionType1.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
-      if (HasFoo) {
+      if (hasFoo) {
         output.WriteInt32(1, "foo", Foo);
       }
-      if (HasFoo2) {
+      if (hasFoo2) {
         output.WriteInt32(2, "foo2", Foo2);
       }
-      if (HasFoo3) {
+      if (hasFoo3) {
         output.WriteInt32(3, "foo3", Foo3);
       }
       extensionWriter.WriteUntil(536870912, output);
@@ -2381,13 +2381,13 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasFoo) {
+        if (hasFoo) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, Foo);
         }
-        if (HasFoo2) {
+        if (hasFoo2) {
           size += pb::CodedOutputStream.ComputeInt32Size(2, Foo2);
         }
-        if (HasFoo3) {
+        if (hasFoo3) {
           size += pb::CodedOutputStream.ComputeInt32Size(3, Foo3);
         }
         size += ExtensionsSerializedSize;
@@ -2549,7 +2549,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasFoo {
-        get { return result.HasFoo; }
+        get { return result.hasFoo; }
       }
       public int Foo {
         get { return result.Foo; }
@@ -2567,7 +2567,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasFoo2 {
-        get { return result.HasFoo2; }
+        get { return result.hasFoo2; }
       }
       public int Foo2 {
         get { return result.Foo2; }
@@ -2585,7 +2585,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasFoo3 {
-        get { return result.HasFoo3; }
+        get { return result.hasFoo3; }
       }
       public int Foo3 {
         get { return result.Foo3; }
@@ -2682,7 +2682,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         public override void WriteTo(pb::ICodedOutputStream output) {
           int size = SerializedSize;
-          if (HasWaldo) {
+          if (hasWaldo) {
             output.WriteInt32(1, "waldo", Waldo);
           }
           UnknownFields.WriteTo(output);
@@ -2695,7 +2695,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             if (size != -1) return size;
             
             size = 0;
-            if (HasWaldo) {
+            if (hasWaldo) {
               size += pb::CodedOutputStream.ComputeInt32Size(1, Waldo);
             }
             size += UnknownFields.SerializedSize;
@@ -2841,7 +2841,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasWaldo {
-            get { return result.HasWaldo; }
+            get { return result.hasWaldo; }
           }
           public int Waldo {
             get { return result.Waldo; }
@@ -2909,13 +2909,13 @@ namespace Google.ProtocolBuffers.TestProtos {
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
       pb::ExtendableMessage<ComplexOptionType2, ComplexOptionType2.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
-      if (HasBar) {
+      if (hasBar) {
         output.WriteMessage(1, "bar", Bar);
       }
-      if (HasBaz) {
+      if (hasBaz) {
         output.WriteInt32(2, "baz", Baz);
       }
-      if (HasFred) {
+      if (hasFred) {
         output.WriteMessage(3, "fred", Fred);
       }
       extensionWriter.WriteUntil(536870912, output);
@@ -2929,13 +2929,13 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasBar) {
+        if (hasBar) {
           size += pb::CodedOutputStream.ComputeMessageSize(1, Bar);
         }
-        if (HasBaz) {
+        if (hasBaz) {
           size += pb::CodedOutputStream.ComputeInt32Size(2, Baz);
         }
-        if (HasFred) {
+        if (hasFred) {
           size += pb::CodedOutputStream.ComputeMessageSize(3, Fred);
         }
         size += ExtensionsSerializedSize;
@@ -3076,7 +3076,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             }
             case 10: {
               global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.CreateBuilder();
-              if (HasBar) {
+              if (result.hasBar) {
                 subBuilder.MergeFrom(Bar);
               }
               input.ReadMessage(subBuilder, extensionRegistry);
@@ -3089,7 +3089,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             }
             case 26: {
               global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.CreateBuilder();
-              if (HasFred) {
+              if (result.hasFred) {
                 subBuilder.MergeFrom(Fred);
               }
               input.ReadMessage(subBuilder, extensionRegistry);
@@ -3107,7 +3107,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasBar {
-       get { return result.HasBar; }
+       get { return result.hasBar; }
       }
       public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 Bar {
         get { return result.Bar; }
@@ -3127,7 +3127,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeBar(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasBar &&
+        if (result.hasBar &&
             result.bar_ != global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance) {
             result.bar_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.CreateBuilder(result.bar_).MergeFrom(value).BuildPartial();
         } else {
@@ -3143,7 +3143,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasBaz {
-        get { return result.HasBaz; }
+        get { return result.hasBaz; }
       }
       public int Baz {
         get { return result.Baz; }
@@ -3161,7 +3161,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasFred {
-       get { return result.HasFred; }
+       get { return result.hasFred; }
       }
       public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 Fred {
         get { return result.Fred; }
@@ -3181,7 +3181,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeFred(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasFred &&
+        if (result.hasFred &&
             result.fred_ != global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance) {
             result.fred_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.CreateBuilder(result.fred_).MergeFrom(value).BuildPartial();
         } else {
@@ -3274,7 +3274,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         public override void WriteTo(pb::ICodedOutputStream output) {
           int size = SerializedSize;
-          if (HasPlugh) {
+          if (hasPlugh) {
             output.WriteInt32(3, "plugh", Plugh);
           }
           UnknownFields.WriteTo(output);
@@ -3287,7 +3287,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             if (size != -1) return size;
             
             size = 0;
-            if (HasPlugh) {
+            if (hasPlugh) {
               size += pb::CodedOutputStream.ComputeInt32Size(3, Plugh);
             }
             size += UnknownFields.SerializedSize;
@@ -3433,7 +3433,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasPlugh {
-            get { return result.HasPlugh; }
+            get { return result.hasPlugh; }
           }
           public int Plugh {
             get { return result.Plugh; }
@@ -3486,10 +3486,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasQux) {
+      if (hasQux) {
         output.WriteInt32(1, "qux", Qux);
       }
-      if (HasComplexOptionType5) {
+      if (hasComplexOptionType5) {
         output.WriteGroup(2, "complexoptiontype5", ComplexOptionType5);
       }
       UnknownFields.WriteTo(output);
@@ -3502,10 +3502,10 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasQux) {
+        if (hasQux) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, Qux);
         }
-        if (HasComplexOptionType5) {
+        if (hasComplexOptionType5) {
           size += pb::CodedOutputStream.ComputeGroupSize(2, ComplexOptionType5);
         }
         size += UnknownFields.SerializedSize;
@@ -3645,7 +3645,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             }
             case 19: {
               global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.CreateBuilder();
-              if (HasComplexOptionType5) {
+              if (result.hasComplexOptionType5) {
                 subBuilder.MergeFrom(ComplexOptionType5);
               }
               input.ReadGroup(2, subBuilder, extensionRegistry);
@@ -3663,7 +3663,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasQux {
-        get { return result.HasQux; }
+        get { return result.hasQux; }
       }
       public int Qux {
         get { return result.Qux; }
@@ -3681,7 +3681,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasComplexOptionType5 {
-       get { return result.HasComplexOptionType5; }
+       get { return result.hasComplexOptionType5; }
       }
       public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 ComplexOptionType5 {
         get { return result.ComplexOptionType5; }
@@ -3701,7 +3701,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeComplexOptionType5(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasComplexOptionType5 &&
+        if (result.hasComplexOptionType5 &&
             result.complexOptionType5_ != global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance) {
             result.complexOptionType5_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.CreateBuilder(result.complexOptionType5_).MergeFrom(value).BuildPartial();
         } else {
@@ -3764,7 +3764,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasXyzzy) {
+      if (hasXyzzy) {
         output.WriteInt32(7593951, "xyzzy", Xyzzy);
       }
       UnknownFields.WriteTo(output);
@@ -3777,7 +3777,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasXyzzy) {
+        if (hasXyzzy) {
           size += pb::CodedOutputStream.ComputeInt32Size(7593951, Xyzzy);
         }
         size += UnknownFields.SerializedSize;
@@ -3923,7 +3923,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasXyzzy {
-        get { return result.HasXyzzy; }
+        get { return result.hasXyzzy; }
       }
       public int Xyzzy {
         get { return result.Xyzzy; }

+ 5 - 5
src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs

@@ -119,7 +119,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasOptionalMessage) {
+      if (hasOptionalMessage) {
         output.WriteMessage(1, "optional_message", OptionalMessage);
       }
       if (repeatedMessage_.Count > 0) {
@@ -135,7 +135,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasOptionalMessage) {
+        if (hasOptionalMessage) {
           size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalMessage);
         }
         foreach (global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize element in RepeatedMessageList) {
@@ -275,7 +275,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             }
             case 10: {
               global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.CreateBuilder();
-              if (HasOptionalMessage) {
+              if (result.hasOptionalMessage) {
                 subBuilder.MergeFrom(OptionalMessage);
               }
               input.ReadMessage(subBuilder, extensionRegistry);
@@ -297,7 +297,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasOptionalMessage {
-       get { return result.HasOptionalMessage; }
+       get { return result.hasOptionalMessage; }
       }
       public global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize OptionalMessage {
         get { return result.OptionalMessage; }
@@ -317,7 +317,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasOptionalMessage &&
+        if (result.hasOptionalMessage &&
             result.optionalMessage_ != global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.DefaultInstance) {
             result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.CreateBuilder(result.optionalMessage_).MergeFrom(value).BuildPartial();
         } else {

+ 112 - 112
src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs

@@ -651,7 +651,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasField1 {
-        get { return result.HasField1; }
+        get { return result.hasField1; }
       }
       public string Field1 {
         get { return result.Field1; }
@@ -670,7 +670,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField9 {
-        get { return result.HasField9; }
+        get { return result.hasField9; }
       }
       public string Field9 {
         get { return result.Field9; }
@@ -689,7 +689,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField18 {
-        get { return result.HasField18; }
+        get { return result.hasField18; }
       }
       public string Field18 {
         get { return result.Field18; }
@@ -708,7 +708,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField80 {
-        get { return result.HasField80; }
+        get { return result.hasField80; }
       }
       public bool Field80 {
         get { return result.Field80; }
@@ -726,7 +726,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField81 {
-        get { return result.HasField81; }
+        get { return result.hasField81; }
       }
       public bool Field81 {
         get { return result.Field81; }
@@ -744,7 +744,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField2 {
-        get { return result.HasField2; }
+        get { return result.hasField2; }
       }
       public int Field2 {
         get { return result.Field2; }
@@ -762,7 +762,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField3 {
-        get { return result.HasField3; }
+        get { return result.hasField3; }
       }
       public int Field3 {
         get { return result.Field3; }
@@ -780,7 +780,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField280 {
-        get { return result.HasField280; }
+        get { return result.hasField280; }
       }
       public int Field280 {
         get { return result.Field280; }
@@ -798,7 +798,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField6 {
-        get { return result.HasField6; }
+        get { return result.hasField6; }
       }
       public int Field6 {
         get { return result.Field6; }
@@ -816,7 +816,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField22 {
-        get { return result.HasField22; }
+        get { return result.hasField22; }
       }
       public long Field22 {
         get { return result.Field22; }
@@ -834,7 +834,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField4 {
-        get { return result.HasField4; }
+        get { return result.hasField4; }
       }
       public string Field4 {
         get { return result.Field4; }
@@ -884,7 +884,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField59 {
-        get { return result.HasField59; }
+        get { return result.hasField59; }
       }
       public bool Field59 {
         get { return result.Field59; }
@@ -902,7 +902,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField7 {
-        get { return result.HasField7; }
+        get { return result.hasField7; }
       }
       public string Field7 {
         get { return result.Field7; }
@@ -921,7 +921,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField16 {
-        get { return result.HasField16; }
+        get { return result.hasField16; }
       }
       public int Field16 {
         get { return result.Field16; }
@@ -939,7 +939,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField130 {
-        get { return result.HasField130; }
+        get { return result.hasField130; }
       }
       public int Field130 {
         get { return result.Field130; }
@@ -957,7 +957,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField12 {
-        get { return result.HasField12; }
+        get { return result.hasField12; }
       }
       public bool Field12 {
         get { return result.Field12; }
@@ -975,7 +975,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField17 {
-        get { return result.HasField17; }
+        get { return result.hasField17; }
       }
       public bool Field17 {
         get { return result.Field17; }
@@ -993,7 +993,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField13 {
-        get { return result.HasField13; }
+        get { return result.hasField13; }
       }
       public bool Field13 {
         get { return result.Field13; }
@@ -1011,7 +1011,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField14 {
-        get { return result.HasField14; }
+        get { return result.hasField14; }
       }
       public bool Field14 {
         get { return result.Field14; }
@@ -1029,7 +1029,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField104 {
-        get { return result.HasField104; }
+        get { return result.hasField104; }
       }
       public int Field104 {
         get { return result.Field104; }
@@ -1047,7 +1047,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField100 {
-        get { return result.HasField100; }
+        get { return result.hasField100; }
       }
       public int Field100 {
         get { return result.Field100; }
@@ -1065,7 +1065,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField101 {
-        get { return result.HasField101; }
+        get { return result.hasField101; }
       }
       public int Field101 {
         get { return result.Field101; }
@@ -1083,7 +1083,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField102 {
-        get { return result.HasField102; }
+        get { return result.hasField102; }
       }
       public string Field102 {
         get { return result.Field102; }
@@ -1102,7 +1102,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField103 {
-        get { return result.HasField103; }
+        get { return result.hasField103; }
       }
       public string Field103 {
         get { return result.Field103; }
@@ -1121,7 +1121,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField29 {
-        get { return result.HasField29; }
+        get { return result.hasField29; }
       }
       public int Field29 {
         get { return result.Field29; }
@@ -1139,7 +1139,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField30 {
-        get { return result.HasField30; }
+        get { return result.hasField30; }
       }
       public bool Field30 {
         get { return result.Field30; }
@@ -1157,7 +1157,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField60 {
-        get { return result.HasField60; }
+        get { return result.hasField60; }
       }
       public int Field60 {
         get { return result.Field60; }
@@ -1175,7 +1175,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField271 {
-        get { return result.HasField271; }
+        get { return result.hasField271; }
       }
       public int Field271 {
         get { return result.Field271; }
@@ -1193,7 +1193,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField272 {
-        get { return result.HasField272; }
+        get { return result.hasField272; }
       }
       public int Field272 {
         get { return result.Field272; }
@@ -1211,7 +1211,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField150 {
-        get { return result.HasField150; }
+        get { return result.hasField150; }
       }
       public int Field150 {
         get { return result.Field150; }
@@ -1229,7 +1229,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField23 {
-        get { return result.HasField23; }
+        get { return result.hasField23; }
       }
       public int Field23 {
         get { return result.Field23; }
@@ -1247,7 +1247,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField24 {
-        get { return result.HasField24; }
+        get { return result.hasField24; }
       }
       public bool Field24 {
         get { return result.Field24; }
@@ -1265,7 +1265,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField25 {
-        get { return result.HasField25; }
+        get { return result.hasField25; }
       }
       public int Field25 {
         get { return result.Field25; }
@@ -1283,7 +1283,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField15 {
-       get { return result.HasField15; }
+       get { return result.hasField15; }
       }
       public global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage Field15 {
         get { return result.Field15; }
@@ -1303,7 +1303,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeField15(global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasField15 &&
+        if (result.hasField15 &&
             result.field15_ != global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance) {
             result.field15_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.CreateBuilder(result.field15_).MergeFrom(value).BuildPartial();
         } else {
@@ -1319,7 +1319,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField78 {
-        get { return result.HasField78; }
+        get { return result.hasField78; }
       }
       public bool Field78 {
         get { return result.Field78; }
@@ -1337,7 +1337,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField67 {
-        get { return result.HasField67; }
+        get { return result.hasField67; }
       }
       public int Field67 {
         get { return result.Field67; }
@@ -1355,7 +1355,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField68 {
-        get { return result.HasField68; }
+        get { return result.hasField68; }
       }
       public int Field68 {
         get { return result.Field68; }
@@ -1373,7 +1373,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField128 {
-        get { return result.HasField128; }
+        get { return result.hasField128; }
       }
       public int Field128 {
         get { return result.Field128; }
@@ -1391,7 +1391,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField129 {
-        get { return result.HasField129; }
+        get { return result.hasField129; }
       }
       public string Field129 {
         get { return result.Field129; }
@@ -1410,7 +1410,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField131 {
-        get { return result.HasField131; }
+        get { return result.hasField131; }
       }
       public int Field131 {
         get { return result.Field131; }
@@ -1741,7 +1741,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasField1 {
-        get { return result.HasField1; }
+        get { return result.hasField1; }
       }
       public int Field1 {
         get { return result.Field1; }
@@ -1759,7 +1759,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField2 {
-        get { return result.HasField2; }
+        get { return result.hasField2; }
       }
       public int Field2 {
         get { return result.Field2; }
@@ -1777,7 +1777,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField3 {
-        get { return result.HasField3; }
+        get { return result.hasField3; }
       }
       public int Field3 {
         get { return result.Field3; }
@@ -1795,7 +1795,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField15 {
-        get { return result.HasField15; }
+        get { return result.hasField15; }
       }
       public string Field15 {
         get { return result.Field15; }
@@ -1814,7 +1814,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField12 {
-        get { return result.HasField12; }
+        get { return result.hasField12; }
       }
       public bool Field12 {
         get { return result.Field12; }
@@ -1832,7 +1832,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField13 {
-        get { return result.HasField13; }
+        get { return result.hasField13; }
       }
       public long Field13 {
         get { return result.Field13; }
@@ -1850,7 +1850,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField14 {
-        get { return result.HasField14; }
+        get { return result.hasField14; }
       }
       public long Field14 {
         get { return result.Field14; }
@@ -1868,7 +1868,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField16 {
-        get { return result.HasField16; }
+        get { return result.hasField16; }
       }
       public int Field16 {
         get { return result.Field16; }
@@ -1886,7 +1886,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField19 {
-        get { return result.HasField19; }
+        get { return result.hasField19; }
       }
       public int Field19 {
         get { return result.Field19; }
@@ -1904,7 +1904,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField20 {
-        get { return result.HasField20; }
+        get { return result.hasField20; }
       }
       public bool Field20 {
         get { return result.Field20; }
@@ -1922,7 +1922,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField28 {
-        get { return result.HasField28; }
+        get { return result.hasField28; }
       }
       public bool Field28 {
         get { return result.Field28; }
@@ -1940,7 +1940,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField21 {
-        get { return result.HasField21; }
+        get { return result.hasField21; }
       }
       [global::System.CLSCompliant(false)]
       public ulong Field21 {
@@ -1960,7 +1960,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField22 {
-        get { return result.HasField22; }
+        get { return result.hasField22; }
       }
       public int Field22 {
         get { return result.Field22; }
@@ -1978,7 +1978,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField23 {
-        get { return result.HasField23; }
+        get { return result.hasField23; }
       }
       public bool Field23 {
         get { return result.Field23; }
@@ -1996,7 +1996,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField206 {
-        get { return result.HasField206; }
+        get { return result.hasField206; }
       }
       public bool Field206 {
         get { return result.Field206; }
@@ -2014,7 +2014,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField203 {
-        get { return result.HasField203; }
+        get { return result.hasField203; }
       }
       [global::System.CLSCompliant(false)]
       public uint Field203 {
@@ -2034,7 +2034,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField204 {
-        get { return result.HasField204; }
+        get { return result.hasField204; }
       }
       public int Field204 {
         get { return result.Field204; }
@@ -2052,7 +2052,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField205 {
-        get { return result.HasField205; }
+        get { return result.hasField205; }
       }
       public string Field205 {
         get { return result.Field205; }
@@ -2071,7 +2071,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField207 {
-        get { return result.HasField207; }
+        get { return result.hasField207; }
       }
       [global::System.CLSCompliant(false)]
       public ulong Field207 {
@@ -2091,7 +2091,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField300 {
-        get { return result.HasField300; }
+        get { return result.hasField300; }
       }
       [global::System.CLSCompliant(false)]
       public ulong Field300 {
@@ -2420,7 +2420,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasField11 {
-            get { return result.HasField11; }
+            get { return result.hasField11; }
           }
           public float Field11 {
             get { return result.Field11; }
@@ -2438,7 +2438,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField26 {
-            get { return result.HasField26; }
+            get { return result.hasField26; }
           }
           public float Field26 {
             get { return result.Field26; }
@@ -2456,7 +2456,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField12 {
-            get { return result.HasField12; }
+            get { return result.hasField12; }
           }
           public string Field12 {
             get { return result.Field12; }
@@ -2475,7 +2475,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField13 {
-            get { return result.HasField13; }
+            get { return result.hasField13; }
           }
           public string Field13 {
             get { return result.Field13; }
@@ -2522,7 +2522,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField15 {
-            get { return result.HasField15; }
+            get { return result.hasField15; }
           }
           [global::System.CLSCompliant(false)]
           public ulong Field15 {
@@ -2542,7 +2542,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField5 {
-            get { return result.HasField5; }
+            get { return result.hasField5; }
           }
           public int Field5 {
             get { return result.Field5; }
@@ -2560,7 +2560,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField27 {
-            get { return result.HasField27; }
+            get { return result.hasField27; }
           }
           public string Field27 {
             get { return result.Field27; }
@@ -2579,7 +2579,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField28 {
-            get { return result.HasField28; }
+            get { return result.hasField28; }
           }
           public int Field28 {
             get { return result.Field28; }
@@ -2597,7 +2597,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField29 {
-            get { return result.HasField29; }
+            get { return result.hasField29; }
           }
           public string Field29 {
             get { return result.Field29; }
@@ -2616,7 +2616,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField16 {
-            get { return result.HasField16; }
+            get { return result.hasField16; }
           }
           public string Field16 {
             get { return result.Field16; }
@@ -2689,7 +2689,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField20 {
-            get { return result.HasField20; }
+            get { return result.hasField20; }
           }
           public int Field20 {
             get { return result.Field20; }
@@ -2707,7 +2707,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField24 {
-            get { return result.HasField24; }
+            get { return result.hasField24; }
           }
           public string Field24 {
             get { return result.Field24; }
@@ -2726,7 +2726,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasField31 {
-           get { return result.HasField31; }
+           get { return result.hasField31; }
           }
           public global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage Field31 {
             get { return result.Field31; }
@@ -2746,7 +2746,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           public Builder MergeField31(global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage value) {
             pb::ThrowHelper.ThrowIfNull(value, "value");
-            if (result.HasField31 &&
+            if (result.hasField31 &&
                 result.field31_ != global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance) {
                 result.field31_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.CreateBuilder(result.field31_).MergeFrom(value).BuildPartial();
             } else {
@@ -3161,7 +3161,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasField1 {
-        get { return result.HasField1; }
+        get { return result.hasField1; }
       }
       public string Field1 {
         get { return result.Field1; }
@@ -3180,7 +3180,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField3 {
-        get { return result.HasField3; }
+        get { return result.hasField3; }
       }
       public long Field3 {
         get { return result.Field3; }
@@ -3198,7 +3198,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField4 {
-        get { return result.HasField4; }
+        get { return result.hasField4; }
       }
       public long Field4 {
         get { return result.Field4; }
@@ -3216,7 +3216,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField30 {
-        get { return result.HasField30; }
+        get { return result.hasField30; }
       }
       public long Field30 {
         get { return result.Field30; }
@@ -3234,7 +3234,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField75 {
-        get { return result.HasField75; }
+        get { return result.hasField75; }
       }
       public bool Field75 {
         get { return result.Field75; }
@@ -3252,7 +3252,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField6 {
-        get { return result.HasField6; }
+        get { return result.hasField6; }
       }
       public string Field6 {
         get { return result.Field6; }
@@ -3271,7 +3271,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField2 {
-        get { return result.HasField2; }
+        get { return result.hasField2; }
       }
       public pb::ByteString Field2 {
         get { return result.Field2; }
@@ -3290,7 +3290,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField21 {
-        get { return result.HasField21; }
+        get { return result.hasField21; }
       }
       public int Field21 {
         get { return result.Field21; }
@@ -3308,7 +3308,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField71 {
-        get { return result.HasField71; }
+        get { return result.hasField71; }
       }
       public int Field71 {
         get { return result.Field71; }
@@ -3326,7 +3326,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField25 {
-        get { return result.HasField25; }
+        get { return result.hasField25; }
       }
       public float Field25 {
         get { return result.Field25; }
@@ -3344,7 +3344,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField109 {
-        get { return result.HasField109; }
+        get { return result.hasField109; }
       }
       public int Field109 {
         get { return result.Field109; }
@@ -3362,7 +3362,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField210 {
-        get { return result.HasField210; }
+        get { return result.hasField210; }
       }
       public int Field210 {
         get { return result.Field210; }
@@ -3380,7 +3380,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField211 {
-        get { return result.HasField211; }
+        get { return result.hasField211; }
       }
       public int Field211 {
         get { return result.Field211; }
@@ -3398,7 +3398,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField212 {
-        get { return result.HasField212; }
+        get { return result.hasField212; }
       }
       public int Field212 {
         get { return result.Field212; }
@@ -3416,7 +3416,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField213 {
-        get { return result.HasField213; }
+        get { return result.hasField213; }
       }
       public int Field213 {
         get { return result.Field213; }
@@ -3434,7 +3434,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField216 {
-        get { return result.HasField216; }
+        get { return result.hasField216; }
       }
       public int Field216 {
         get { return result.Field216; }
@@ -3452,7 +3452,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField217 {
-        get { return result.HasField217; }
+        get { return result.hasField217; }
       }
       public int Field217 {
         get { return result.Field217; }
@@ -3470,7 +3470,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField218 {
-        get { return result.HasField218; }
+        get { return result.hasField218; }
       }
       public int Field218 {
         get { return result.Field218; }
@@ -3488,7 +3488,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField220 {
-        get { return result.HasField220; }
+        get { return result.hasField220; }
       }
       public int Field220 {
         get { return result.Field220; }
@@ -3506,7 +3506,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField221 {
-        get { return result.HasField221; }
+        get { return result.hasField221; }
       }
       public int Field221 {
         get { return result.Field221; }
@@ -3524,7 +3524,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField222 {
-        get { return result.HasField222; }
+        get { return result.hasField222; }
       }
       public float Field222 {
         get { return result.Field222; }
@@ -3542,7 +3542,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField63 {
-        get { return result.HasField63; }
+        get { return result.hasField63; }
       }
       public int Field63 {
         get { return result.Field63; }
@@ -3626,7 +3626,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField131 {
-        get { return result.HasField131; }
+        get { return result.hasField131; }
       }
       public long Field131 {
         get { return result.Field131; }
@@ -3672,7 +3672,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField129 {
-        get { return result.HasField129; }
+        get { return result.hasField129; }
       }
       public int Field129 {
         get { return result.Field129; }
@@ -3716,7 +3716,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField205 {
-        get { return result.HasField205; }
+        get { return result.hasField205; }
       }
       public bool Field205 {
         get { return result.Field205; }
@@ -3734,7 +3734,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField206 {
-        get { return result.HasField206; }
+        get { return result.hasField206; }
       }
       public bool Field206 {
         get { return result.Field206; }
@@ -3971,7 +3971,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasField1 {
-        get { return result.HasField1; }
+        get { return result.hasField1; }
       }
       public float Field1 {
         get { return result.Field1; }
@@ -3989,7 +3989,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField2 {
-        get { return result.HasField2; }
+        get { return result.hasField2; }
       }
       public float Field2 {
         get { return result.Field2; }
@@ -4007,7 +4007,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField3 {
-        get { return result.HasField3; }
+        get { return result.hasField3; }
       }
       public float Field3 {
         get { return result.Field3; }
@@ -4025,7 +4025,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField4 {
-        get { return result.HasField4; }
+        get { return result.hasField4; }
       }
       public bool Field4 {
         get { return result.Field4; }
@@ -4043,7 +4043,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField5 {
-        get { return result.HasField5; }
+        get { return result.hasField5; }
       }
       public bool Field5 {
         get { return result.Field5; }
@@ -4061,7 +4061,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField6 {
-        get { return result.HasField6; }
+        get { return result.hasField6; }
       }
       public bool Field6 {
         get { return result.Field6; }
@@ -4079,7 +4079,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField7 {
-        get { return result.HasField7; }
+        get { return result.hasField7; }
       }
       public bool Field7 {
         get { return result.Field7; }
@@ -4097,7 +4097,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField8 {
-        get { return result.HasField8; }
+        get { return result.hasField8; }
       }
       public float Field8 {
         get { return result.Field8; }
@@ -4115,7 +4115,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField9 {
-        get { return result.HasField9; }
+        get { return result.hasField9; }
       }
       public bool Field9 {
         get { return result.Field9; }
@@ -4133,7 +4133,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField10 {
-        get { return result.HasField10; }
+        get { return result.hasField10; }
       }
       public float Field10 {
         get { return result.Field10; }
@@ -4151,7 +4151,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasField11 {
-        get { return result.HasField11; }
+        get { return result.hasField11; }
       }
       public long Field11 {
         get { return result.Field11; }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 175 - 175
src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs


+ 3 - 3
src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs

@@ -72,7 +72,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasD) {
+      if (hasD) {
         output.WriteInt32(1, "d", D);
       }
     }
@@ -84,7 +84,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasD) {
+        if (hasD) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, D);
         }
         memoizedSerializedSize = size;
@@ -233,7 +233,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasD {
-        get { return result.HasD; }
+        get { return result.hasD; }
       }
       public int D {
         get { return result.D; }

+ 3 - 3
src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs

@@ -108,7 +108,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasD) {
+      if (hasD) {
         output.WriteInt32(1, "d", D);
       }
       UnknownFields.WriteTo(output);
@@ -121,7 +121,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasD) {
+        if (hasD) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, D);
         }
         size += UnknownFields.SerializedSize;
@@ -267,7 +267,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasD {
-        get { return result.HasD; }
+        get { return result.hasD; }
       }
       public int D {
         get { return result.D; }

+ 17 - 17
src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs

@@ -328,7 +328,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasMessageSet) {
+      if (hasMessageSet) {
         output.WriteMessage(1, "message_set", MessageSet);
       }
       UnknownFields.WriteTo(output);
@@ -341,7 +341,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasMessageSet) {
+        if (hasMessageSet) {
           size += pb::CodedOutputStream.ComputeMessageSize(1, MessageSet);
         }
         size += UnknownFields.SerializedSize;
@@ -474,7 +474,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             }
             case 10: {
               global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder();
-              if (HasMessageSet) {
+              if (result.hasMessageSet) {
                 subBuilder.MergeFrom(MessageSet);
               }
               input.ReadMessage(subBuilder, extensionRegistry);
@@ -492,7 +492,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasMessageSet {
-       get { return result.HasMessageSet; }
+       get { return result.hasMessageSet; }
       }
       public global::Google.ProtocolBuffers.TestProtos.TestMessageSet MessageSet {
         get { return result.MessageSet; }
@@ -512,7 +512,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasMessageSet &&
+        if (result.hasMessageSet &&
             result.messageSet_ != global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance) {
             result.messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder(result.messageSet_).MergeFrom(value).BuildPartial();
         } else {
@@ -577,7 +577,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasI) {
+      if (hasI) {
         output.WriteInt32(15, "i", I);
       }
       UnknownFields.WriteTo(output);
@@ -590,7 +590,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasI) {
+        if (hasI) {
           size += pb::CodedOutputStream.ComputeInt32Size(15, I);
         }
         size += UnknownFields.SerializedSize;
@@ -736,7 +736,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasI {
-        get { return result.HasI; }
+        get { return result.hasI; }
       }
       public int I {
         get { return result.I; }
@@ -803,7 +803,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasStr) {
+      if (hasStr) {
         output.WriteString(25, "str", Str);
       }
       UnknownFields.WriteTo(output);
@@ -816,7 +816,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasStr) {
+        if (hasStr) {
           size += pb::CodedOutputStream.ComputeStringSize(25, Str);
         }
         size += UnknownFields.SerializedSize;
@@ -962,7 +962,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasStr {
-        get { return result.HasStr; }
+        get { return result.hasStr; }
       }
       public string Str {
         get { return result.Str; }
@@ -1070,10 +1070,10 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         public override void WriteTo(pb::ICodedOutputStream output) {
           int size = SerializedSize;
-          if (HasTypeId) {
+          if (hasTypeId) {
             output.WriteInt32(2, "type_id", TypeId);
           }
-          if (HasMessage) {
+          if (hasMessage) {
             output.WriteBytes(3, "message", Message);
           }
           UnknownFields.WriteTo(output);
@@ -1086,10 +1086,10 @@ namespace Google.ProtocolBuffers.TestProtos {
             if (size != -1) return size;
             
             size = 0;
-            if (HasTypeId) {
+            if (hasTypeId) {
               size += pb::CodedOutputStream.ComputeInt32Size(2, TypeId);
             }
-            if (HasMessage) {
+            if (hasMessage) {
               size += pb::CodedOutputStream.ComputeBytesSize(3, Message);
             }
             size += UnknownFields.SerializedSize;
@@ -1242,7 +1242,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasTypeId {
-            get { return result.HasTypeId; }
+            get { return result.hasTypeId; }
           }
           public int TypeId {
             get { return result.TypeId; }
@@ -1260,7 +1260,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasMessage {
-            get { return result.HasMessage; }
+            get { return result.hasMessage; }
           }
           public pb::ByteString Message {
             get { return result.Message; }

+ 3 - 3
src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs

@@ -120,7 +120,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
       pb::ExtendableMessage<TestMessage, TestMessage.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
-      if (HasA) {
+      if (hasA) {
         output.WriteInt32(1, "a", A);
       }
       extensionWriter.WriteUntil(536870912, output);
@@ -134,7 +134,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
         if (size != -1) return size;
         
         size = 0;
-        if (HasA) {
+        if (hasA) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, A);
         }
         size += ExtensionsSerializedSize;
@@ -282,7 +282,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
       
       
       public bool HasA {
-        get { return result.HasA; }
+        get { return result.hasA; }
       }
       public int A {
         get { return result.A; }

+ 6 - 6
src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs

@@ -208,7 +208,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasI {
-        get { return result.HasI; }
+        get { return result.hasI; }
       }
       public int I {
         get { return result.I; }
@@ -226,7 +226,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasMsg {
-       get { return result.HasMsg; }
+       get { return result.hasMsg; }
       }
       public global::Google.ProtocolBuffers.TestProtos.ForeignMessage Msg {
         get { return result.Msg; }
@@ -246,7 +246,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeMsg(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasMsg &&
+        if (result.hasMsg &&
             result.msg_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
             result.msg_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.msg_).MergeFrom(value).BuildPartial();
         } else {
@@ -381,7 +381,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasX {
-        get { return result.HasX; }
+        get { return result.hasX; }
       }
       public int X {
         get { return result.X; }
@@ -518,7 +518,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasO {
-       get { return result.HasO; }
+       get { return result.hasO; }
       }
       public global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize O {
         get { return result.O; }
@@ -538,7 +538,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeO(global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasO &&
+        if (result.hasO &&
             result.o_ != global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.DefaultInstance) {
             result.o_ = global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.CreateBuilder(result.o_).MergeFrom(value).BuildPartial();
         } else {

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 158 - 158
src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs


+ 11 - 11
src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs

@@ -403,10 +403,10 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         public override void WriteTo(pb::ICodedOutputStream output) {
           int size = SerializedSize;
-          if (HasUrl) {
+          if (hasUrl) {
             output.WriteString(1, "url", Url);
           }
-          if (HasName) {
+          if (hasName) {
             output.WriteString(2, "name", Name);
           }
           UnknownFields.WriteTo(output);
@@ -419,10 +419,10 @@ namespace Google.ProtocolBuffers.TestProtos {
             if (size != -1) return size;
             
             size = 0;
-            if (HasUrl) {
+            if (hasUrl) {
               size += pb::CodedOutputStream.ComputeStringSize(1, Url);
             }
-            if (HasName) {
+            if (hasName) {
               size += pb::CodedOutputStream.ComputeStringSize(2, Name);
             }
             size += UnknownFields.SerializedSize;
@@ -575,7 +575,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasUrl {
-            get { return result.HasUrl; }
+            get { return result.hasUrl; }
           }
           public string Url {
             get { return result.Url; }
@@ -594,7 +594,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasName {
-            get { return result.HasName; }
+            get { return result.hasName; }
           }
           public string Name {
             get { return result.Name; }
@@ -905,7 +905,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       if (criteria_.Count > 0) {
         output.WriteArray(pbd::FieldType.String, 1, "Criteria", criteria_);
       }
-      if (HasPreviousResults) {
+      if (hasPreviousResults) {
         output.WriteMessage(2, "previous_results", PreviousResults);
       }
       UnknownFields.WriteTo(output);
@@ -926,7 +926,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           size += dataSize;
           size += 1 * criteria_.Count;
         }
-        if (HasPreviousResults) {
+        if (hasPreviousResults) {
           size += pb::CodedOutputStream.ComputeMessageSize(2, PreviousResults);
         }
         size += UnknownFields.SerializedSize;
@@ -1067,7 +1067,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             }
             case 18: {
               global::Google.ProtocolBuffers.TestProtos.SearchResponse.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.SearchResponse.CreateBuilder();
-              if (HasPreviousResults) {
+              if (result.hasPreviousResults) {
                 subBuilder.MergeFrom(PreviousResults);
               }
               input.ReadMessage(subBuilder, extensionRegistry);
@@ -1113,7 +1113,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasPreviousResults {
-       get { return result.HasPreviousResults; }
+       get { return result.hasPreviousResults; }
       }
       public global::Google.ProtocolBuffers.TestProtos.SearchResponse PreviousResults {
         get { return result.PreviousResults; }
@@ -1133,7 +1133,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergePreviousResults(global::Google.ProtocolBuffers.TestProtos.SearchResponse value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasPreviousResults &&
+        if (result.hasPreviousResults &&
             result.previousResults_ != global::Google.ProtocolBuffers.TestProtos.SearchResponse.DefaultInstance) {
             result.previousResults_ = global::Google.ProtocolBuffers.TestProtos.SearchResponse.CreateBuilder(result.previousResults_).MergeFrom(value).BuildPartial();
         } else {

+ 23 - 23
src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs

@@ -182,7 +182,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       if (options_.Count > 0) {
         output.WriteArray(pbd::FieldType.Enum, 3, "options", options_);
       }
-      if (HasBinary) {
+      if (hasBinary) {
         output.WriteBytes(4, "binary", Binary);
       }
       UnknownFields.WriteTo(output);
@@ -205,7 +205,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             size += 1 * options_.Count;
           }
         }
-        if (HasBinary) {
+        if (hasBinary) {
           size += pb::CodedOutputStream.ComputeBytesSize(4, Binary);
         }
         size += UnknownFields.SerializedSize;
@@ -395,7 +395,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasBinary {
-        get { return result.HasBinary; }
+        get { return result.hasBinary; }
       }
       public pb::ByteString Binary {
         get { return result.Binary; }
@@ -689,7 +689,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           if (options_.Count > 0) {
             output.WriteArray(pbd::FieldType.Enum, 3, "options", options_);
           }
-          if (HasBinary) {
+          if (hasBinary) {
             output.WriteBytes(4, "binary", Binary);
           }
           UnknownFields.WriteTo(output);
@@ -712,7 +712,7 @@ namespace Google.ProtocolBuffers.TestProtos {
                 size += 1 * options_.Count;
               }
             }
-            if (HasBinary) {
+            if (hasBinary) {
               size += pb::CodedOutputStream.ComputeBytesSize(4, Binary);
             }
             size += UnknownFields.SerializedSize;
@@ -902,7 +902,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasBinary {
-            get { return result.HasBinary; }
+            get { return result.hasBinary; }
           }
           public pb::ByteString Binary {
             get { return result.Binary; }
@@ -1014,19 +1014,19 @@ namespace Google.ProtocolBuffers.TestProtos {
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
       pb::ExtendableMessage<TestXmlMessage, TestXmlMessage.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
-      if (HasChild) {
+      if (hasChild) {
         output.WriteMessage(1, "child", Child);
       }
       if (numbers_.Count > 0) {
         output.WriteArray(pbd::FieldType.Int32, 2, "numbers", numbers_);
       }
-      if (HasText) {
+      if (hasText) {
         output.WriteString(3, "text", Text);
       }
-      if (HasValid) {
+      if (hasValid) {
         output.WriteBool(5, "valid", Valid);
       }
-      if (HasNumber) {
+      if (hasNumber) {
         output.WriteInt64(6, "number", Number);
       }
       extensionWriter.WriteUntil(200, output);
@@ -1046,7 +1046,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasNumber) {
+        if (hasNumber) {
           size += pb::CodedOutputStream.ComputeInt64Size(6, Number);
         }
         {
@@ -1057,7 +1057,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           size += dataSize;
           size += 1 * numbers_.Count;
         }
-        if (HasText) {
+        if (hasText) {
           size += pb::CodedOutputStream.ComputeStringSize(3, Text);
         }
         {
@@ -1068,10 +1068,10 @@ namespace Google.ProtocolBuffers.TestProtos {
           size += dataSize;
           size += 2 * textlines_.Count;
         }
-        if (HasValid) {
+        if (hasValid) {
           size += pb::CodedOutputStream.ComputeBoolSize(5, Valid);
         }
-        if (HasChild) {
+        if (hasChild) {
           size += pb::CodedOutputStream.ComputeMessageSize(1, Child);
         }
         foreach (global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children element in ChildrenList) {
@@ -1230,7 +1230,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             }
             case 10: {
               global::Google.ProtocolBuffers.TestProtos.TestXmlChild.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestXmlChild.CreateBuilder();
-              if (HasChild) {
+              if (result.hasChild) {
                 subBuilder.MergeFrom(Child);
               }
               input.ReadMessage(subBuilder, extensionRegistry);
@@ -1273,7 +1273,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasNumber {
-        get { return result.HasNumber; }
+        get { return result.hasNumber; }
       }
       public long Number {
         get { return result.Number; }
@@ -1317,7 +1317,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasText {
-        get { return result.HasText; }
+        get { return result.hasText; }
       }
       public string Text {
         get { return result.Text; }
@@ -1364,7 +1364,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasValid {
-        get { return result.HasValid; }
+        get { return result.hasValid; }
       }
       public bool Valid {
         get { return result.Valid; }
@@ -1382,7 +1382,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasChild {
-       get { return result.HasChild; }
+       get { return result.hasChild; }
       }
       public global::Google.ProtocolBuffers.TestProtos.TestXmlChild Child {
         get { return result.Child; }
@@ -1402,7 +1402,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeChild(global::Google.ProtocolBuffers.TestProtos.TestXmlChild value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasChild &&
+        if (result.hasChild &&
             result.child_ != global::Google.ProtocolBuffers.TestProtos.TestXmlChild.DefaultInstance) {
             result.child_ = global::Google.ProtocolBuffers.TestProtos.TestXmlChild.CreateBuilder(result.child_).MergeFrom(value).BuildPartial();
         } else {
@@ -1504,7 +1504,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasNumber) {
+      if (hasNumber) {
         output.WriteInt32(1, "number", Number);
       }
       UnknownFields.WriteTo(output);
@@ -1517,7 +1517,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasNumber) {
+        if (hasNumber) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, Number);
         }
         size += UnknownFields.SerializedSize;
@@ -1663,7 +1663,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasNumber {
-        get { return result.HasNumber; }
+        get { return result.hasNumber; }
       }
       public int Number {
         get { return result.Number; }

+ 311 - 84
src/ProtocolBuffers/CodedOutputStream.cs

@@ -35,6 +35,7 @@
 #endregion
 
 using System;
+using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Text;
@@ -315,23 +316,103 @@ namespace Google.ProtocolBuffers
             WriteBytes(WireFormat.MessageSetField.Message, "message", value);
             WriteTag(WireFormat.MessageSetField.Item, WireFormat.WireType.EndGroup);
         }
-
+        
         public void WriteArray(FieldType fieldType, int fieldNumber, string fieldName, System.Collections.IEnumerable list)
         {
             foreach (object element in list)
                 WriteField(fieldType, fieldNumber, fieldName, element);
         }
 
+        public void WriteArray<T>(FieldType fieldType, int fieldNumber, string fieldName, System.Collections.Generic.IEnumerable<T> list)
+        {
+            switch (fieldType)
+            {
+                case FieldType.String:
+                    foreach (string value in ((IEnumerable<string>)list))
+                        WriteString(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.Message:
+                    foreach (T value in list)
+                        WriteMessage(fieldNumber, fieldName, (IMessageLite)value);
+                    break;
+                case FieldType.Group:
+                    foreach (T value in list)
+                        WriteGroup(fieldNumber, fieldName, (IMessageLite)value);
+                    break;
+                case FieldType.Bytes:
+                    foreach (ByteString value in ((IEnumerable<ByteString>)list))
+                        WriteBytes(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.Bool:
+                    foreach (bool value in ((IEnumerable<bool>)list))
+                        WriteBool(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.Enum:
+                    foreach (T value in list)
+                    {
+                        if (value is System.Enum)
+                            WriteEnum(fieldNumber, fieldName, ((IConvertible)value).ToInt32(CultureInfo.InvariantCulture), null/*not used*/);
+                        else
+                            WriteEnum(fieldNumber, fieldName, ((IEnumLite)value).Number, null/*not used*/);
+                    }
+                    break;
+                case FieldType.Int32:
+                    foreach (int value in ((IEnumerable<int>)list))
+                        WriteInt32(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.Int64:
+                    foreach (long value in ((IEnumerable<long>)list))
+                        WriteInt64(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.UInt32:
+                    foreach (uint value in ((IEnumerable<uint>)list))
+                        WriteUInt32(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.UInt64:
+                    foreach (ulong value in ((IEnumerable<ulong>)list))
+                        WriteUInt64(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.SInt32:
+                    foreach (int value in ((IEnumerable<int>)list))
+                        WriteSInt32(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.SInt64:
+                    foreach (long value in ((IEnumerable<long>)list))
+                        WriteSInt64(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.Fixed32:
+                    foreach (uint value in ((IEnumerable<uint>)list))
+                        WriteFixed32(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.Fixed64:
+                    foreach (ulong value in ((IEnumerable<ulong>)list))
+                        WriteFixed64(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.SFixed32:
+                    foreach (int value in ((IEnumerable<int>)list))
+                        WriteSFixed32(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.SFixed64:
+                    foreach (long value in ((IEnumerable<long>)list))
+                        WriteSFixed64(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.Double:
+                    foreach (double value in ((IEnumerable<double>)list))
+                        WriteDouble(fieldNumber, fieldName, value);
+                    break;
+                case FieldType.Float:
+                    foreach (float value in ((IEnumerable<float>)list))
+                        WriteFloat(fieldNumber, fieldName, value);
+                    break;
+            }
+        }
+
         public void WritePackedArray(FieldType fieldType, int fieldNumber, string fieldName, System.Collections.IEnumerable list)
         {
             int calculatedSize = 0;
             foreach (object element in list)
                 calculatedSize += CodedOutputStream.ComputeFieldSizeNoTag(fieldType, element);
-            WritePackedArray(fieldType, fieldNumber, fieldName, calculatedSize, list);
-        }
-
-        public void WritePackedArray(FieldType fieldType, int fieldNumber, string fieldName, int calculatedSize, System.Collections.IEnumerable list)
-        {
+            
             WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
             WriteRawVarint32((uint)calculatedSize);
             
@@ -339,66 +420,153 @@ namespace Google.ProtocolBuffers
                 WriteFieldNoTag(fieldType, element);
         }
 
-        public void WriteField(FieldType fieldType, int fieldNumber, string fieldName, object value)
+        public void WritePackedArray<T>(FieldType fieldType, int fieldNumber, string fieldName, int calculatedSize, System.Collections.Generic.IEnumerable<T> list)
         {
+            WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+            WriteRawVarint32((uint)calculatedSize);
+
             switch (fieldType)
             {
-                case FieldType.Double:
-                    WriteDouble(fieldNumber, fieldName, (double) value);
+                case FieldType.String:
+                    foreach (string value in ((IEnumerable<string>)list))
+                        WriteStringNoTag(value);
                     break;
-                case FieldType.Float:
-                    WriteFloat(fieldNumber, fieldName, (float) value);
+                case FieldType.Message:
+                    foreach (T value in list)
+                        WriteMessageNoTag((IMessageLite)value);
+                    break;
+                case FieldType.Group:
+                    foreach (T value in list)
+                        WriteGroupNoTag((IMessageLite)value);
+                    break;
+                case FieldType.Bytes:
+                    foreach (ByteString value in ((IEnumerable<ByteString>)list))
+                        WriteBytesNoTag(value);
+                    break;
+                case FieldType.Bool:
+                    foreach (bool value in ((IEnumerable<bool>)list))
+                        WriteBoolNoTag(value);
+                    break;
+                case FieldType.Enum:
+                    foreach (T value in list)
+                    {
+                        if (value is System.Enum)
+                            WriteEnumNoTag(((IConvertible)value).ToInt32(CultureInfo.InvariantCulture));
+                        else
+                            WriteEnumNoTag(((IEnumLite)value).Number);
+                    }
+                    break;
+                case FieldType.Int32:
+                    foreach (int value in ((IEnumerable<int>)list))
+                        WriteInt32NoTag(value);
                     break;
                 case FieldType.Int64:
-                    WriteInt64(fieldNumber, fieldName, (long) value);
+                    foreach (long value in ((IEnumerable<long>)list))
+                        WriteInt64NoTag(value);
+                    break;
+                case FieldType.UInt32:
+                    foreach (uint value in ((IEnumerable<uint>)list))
+                        WriteUInt32NoTag(value);
                     break;
                 case FieldType.UInt64:
-                    WriteUInt64(fieldNumber, fieldName, (ulong) value);
+                    foreach (ulong value in ((IEnumerable<ulong>)list))
+                        WriteUInt64NoTag(value);
                     break;
-                case FieldType.Int32:
-                    WriteInt32(fieldNumber, fieldName, (int) value);
+                case FieldType.SInt32:
+                    foreach (int value in ((IEnumerable<int>)list))
+                        WriteSInt32NoTag(value);
                     break;
-                case FieldType.Fixed64:
-                    WriteFixed64(fieldNumber, fieldName, (ulong) value);
+                case FieldType.SInt64:
+                    foreach (long value in ((IEnumerable<long>)list))
+                        WriteSInt64NoTag(value);
                     break;
                 case FieldType.Fixed32:
-                    WriteFixed32(fieldNumber, fieldName, (uint) value);
+                    foreach (uint value in ((IEnumerable<uint>)list))
+                        WriteFixed32NoTag(value);
                     break;
-                case FieldType.Bool:
-                    WriteBool(fieldNumber, fieldName, (bool) value);
+                case FieldType.Fixed64:
+                    foreach (ulong value in ((IEnumerable<ulong>)list))
+                        WriteFixed64NoTag(value);
                     break;
-                case FieldType.String:
-                    WriteString(fieldNumber, fieldName, (string) value);
+                case FieldType.SFixed32:
+                    foreach (int value in ((IEnumerable<int>)list))
+                        WriteSFixed32NoTag(value);
                     break;
-                case FieldType.Group:
-                    WriteGroup(fieldNumber, fieldName, (IMessageLite) value);
+                case FieldType.SFixed64:
+                    foreach (long value in ((IEnumerable<long>)list))
+                        WriteSFixed64NoTag(value);
+                    break;
+                case FieldType.Double:
+                    foreach (double value in ((IEnumerable<double>)list))
+                        WriteDoubleNoTag(value);
+                    break;
+                case FieldType.Float:
+                    foreach (float value in ((IEnumerable<float>)list))
+                        WriteFloatNoTag(value);
+                    break;
+            }
+        }
+
+        public void WriteField(FieldType fieldType, int fieldNumber, string fieldName, object value)
+        {
+            switch (fieldType)
+            {
+                case FieldType.String:
+                    WriteString(fieldNumber, fieldName, (string)value);
                     break;
                 case FieldType.Message:
-                    WriteMessage(fieldNumber, fieldName, (IMessageLite) value);
+                    WriteMessage(fieldNumber, fieldName, (IMessageLite)value);
+                    break;
+                case FieldType.Group:
+                    WriteGroup(fieldNumber, fieldName, (IMessageLite)value);
                     break;
                 case FieldType.Bytes:
-                    WriteBytes(fieldNumber, fieldName, (ByteString) value);
+                    WriteBytes(fieldNumber, fieldName, (ByteString)value);
+                    break;
+                case FieldType.Bool:
+                    WriteBool(fieldNumber, fieldName, (bool)value);
+                    break;
+                case FieldType.Enum:
+                    if (value is System.Enum)
+                        WriteEnum(fieldNumber, fieldName, ((IConvertible)value).ToInt32(CultureInfo.InvariantCulture), null/*not used*/);
+                    else
+                        WriteEnum(fieldNumber, fieldName, ((IEnumLite)value).Number, null/*not used*/);
+                    break;
+                case FieldType.Int32:
+                    WriteInt32(fieldNumber, fieldName, (int) value);
+                    break;
+                case FieldType.Int64:
+                    WriteInt64(fieldNumber, fieldName, (long) value);
                     break;
                 case FieldType.UInt32:
                     WriteUInt32(fieldNumber, fieldName, (uint) value);
                     break;
+                case FieldType.UInt64:
+                    WriteUInt64(fieldNumber, fieldName, (ulong) value);
+                    break;
+                case FieldType.SInt32:
+                    WriteSInt32(fieldNumber, fieldName, (int)value);
+                    break;
+                case FieldType.SInt64:
+                    WriteSInt64(fieldNumber, fieldName, (long)value);
+                    break;
+                case FieldType.Fixed32:
+                    WriteFixed32(fieldNumber, fieldName, (uint) value);
+                    break;
+                case FieldType.Fixed64:
+                    WriteFixed64(fieldNumber, fieldName, (ulong) value);
+                    break;
                 case FieldType.SFixed32:
                     WriteSFixed32(fieldNumber, fieldName, (int) value);
                     break;
                 case FieldType.SFixed64:
                     WriteSFixed64(fieldNumber, fieldName, (long) value);
                     break;
-                case FieldType.SInt32:
-                    WriteSInt32(fieldNumber, fieldName, (int) value);
-                    break;
-                case FieldType.SInt64:
-                    WriteSInt64(fieldNumber, fieldName, (long) value);
+                case FieldType.Double:
+                    WriteDouble(fieldNumber, fieldName, (double)value);
                     break;
-                case FieldType.Enum:
-                    if(value is System.Enum)
-                        WriteEnum(fieldNumber, fieldName, ((IConvertible)value).ToInt32(CultureInfo.InvariantCulture), null/*not used*/);
-                    else
-                        WriteEnum(fieldNumber, fieldName, ((IEnumLite) value).Number, null/*not used*/);
+                case FieldType.Float:
+                    WriteFloat(fieldNumber, fieldName, (float)value);
                     break;
             }
         }
@@ -407,44 +575,50 @@ namespace Google.ProtocolBuffers
         {
             switch (fieldType)
             {
-                case FieldType.Double:
-                    WriteDoubleNoTag((double) value);
+                case FieldType.String:
+                    WriteStringNoTag((string)value);
                     break;
-                case FieldType.Float:
-                    WriteFloatNoTag((float) value);
+                case FieldType.Message:
+                    WriteMessageNoTag((IMessageLite)value);
                     break;
-                case FieldType.Int64:
-                    WriteInt64NoTag((long) value);
+                case FieldType.Group:
+                    WriteGroupNoTag((IMessageLite)value);
                     break;
-                case FieldType.UInt64:
-                    WriteUInt64NoTag((ulong) value);
+                case FieldType.Bytes:
+                    WriteBytesNoTag((ByteString)value);
+                    break;
+                case FieldType.Bool:
+                    WriteBoolNoTag((bool)value);
+                    break;
+                case FieldType.Enum:
+                    if (value is System.Enum)
+                        WriteEnumNoTag(((IConvertible)value).ToInt32(CultureInfo.InvariantCulture));
+                    else
+                        WriteEnumNoTag(((IEnumLite)value).Number);
                     break;
                 case FieldType.Int32:
                     WriteInt32NoTag((int) value);
                     break;
-                case FieldType.Fixed64:
-                    WriteFixed64NoTag((ulong) value);
-                    break;
-                case FieldType.Fixed32:
-                    WriteFixed32NoTag((uint) value);
+                case FieldType.Int64:
+                    WriteInt64NoTag((long) value);
                     break;
-                case FieldType.Bool:
-                    WriteBoolNoTag((bool) value);
+                case FieldType.UInt32:
+                    WriteUInt32NoTag((uint) value);
                     break;
-                case FieldType.String:
-                    WriteStringNoTag((string) value);
+                case FieldType.UInt64:
+                    WriteUInt64NoTag((ulong) value);
                     break;
-                case FieldType.Group:
-                    WriteGroupNoTag((IMessageLite) value);
+                case FieldType.SInt32:
+                    WriteSInt32NoTag((int) value);
                     break;
-                case FieldType.Message:
-                    WriteMessageNoTag((IMessageLite) value);
+                case FieldType.SInt64:
+                    WriteSInt64NoTag((long) value);
                     break;
-                case FieldType.Bytes:
-                    WriteBytesNoTag((ByteString) value);
+                case FieldType.Fixed32:
+                    WriteFixed32NoTag((uint) value);
                     break;
-                case FieldType.UInt32:
-                    WriteUInt32NoTag((uint) value);
+                case FieldType.Fixed64:
+                    WriteFixed64NoTag((ulong) value);
                     break;
                 case FieldType.SFixed32:
                     WriteSFixed32NoTag((int) value);
@@ -452,17 +626,11 @@ namespace Google.ProtocolBuffers
                 case FieldType.SFixed64:
                     WriteSFixed64NoTag((long) value);
                     break;
-                case FieldType.SInt32:
-                    WriteSInt32NoTag((int) value);
-                    break;
-                case FieldType.SInt64:
-                    WriteSInt64NoTag((long) value);
+                case FieldType.Double:
+                    WriteDoubleNoTag((double)value);
                     break;
-                case FieldType.Enum:
-                    if (value is System.Enum)
-                        WriteEnumNoTag(((IConvertible)value).ToInt32(CultureInfo.InvariantCulture));
-                    else
-                        WriteEnumNoTag(((IEnumLite) value).Number);
+                case FieldType.Float:
+                    WriteFloatNoTag((float)value);
                     break;
             }
         }
@@ -641,6 +809,7 @@ namespace Google.ProtocolBuffers
             WriteRawVarint32(WireFormat.MakeTag(fieldNumber, type));
         }
 
+#if false
         private void SlowWriteRawVarint32(uint value)
         {
             while (true)
@@ -657,7 +826,7 @@ namespace Google.ProtocolBuffers
                 }
             }
         }
-
+#endif
         /// <summary>
         /// Writes a 32 bit value as a varint. The fast route is taken when
         /// there's enough buffer space left to whizz through without checking
@@ -666,6 +835,22 @@ namespace Google.ProtocolBuffers
         [CLSCompliant(false)]
         public void WriteRawVarint32(uint value)
         {
+#if true
+            while (value > 127 && position < limit)
+            {
+                buffer[position++] = (byte)((value & 0x7F) | 0x80);
+                value >>= 7;
+            }
+            while (value > 127)
+            {
+                WriteRawByte((byte)((value & 0x7F) | 0x80));
+                value >>= 7;
+            }
+            if(position < limit)
+                buffer[position++] = (byte)value;
+            else
+                WriteRawByte((byte)value);
+#else
             if (position + 5 > limit)
             {
                 SlowWriteRawVarint32(value);
@@ -685,11 +870,28 @@ namespace Google.ProtocolBuffers
                     value >>= 7;
                 }
             }
+#endif
         }
 
         [CLSCompliant(false)]
         public void WriteRawVarint64(ulong value)
         {
+#if true
+            while (value > 127 && position < limit)
+            {
+                buffer[position++] = (byte)((value & 0x7F) | 0x80);
+                value >>= 7;
+            }
+            while (value > 127)
+            {
+                WriteRawByte((byte)((value & 0x7F) | 0x80));
+                value >>= 7;
+            }
+            if(position < limit)
+                buffer[position++] = (byte)value;
+            else
+                WriteRawByte((byte)value);
+#else
             while (true)
             {
                 if ((value & ~0x7FUL) == 0)
@@ -703,28 +905,53 @@ namespace Google.ProtocolBuffers
                     value >>= 7;
                 }
             }
+#endif
         }
 
         [CLSCompliant(false)]
         public void WriteRawLittleEndian32(uint value)
         {
-            WriteRawByte((byte) value);
-            WriteRawByte((byte) (value >> 8));
-            WriteRawByte((byte) (value >> 16));
-            WriteRawByte((byte) (value >> 24));
+            if (position + 4 > limit)
+            {
+                WriteRawByte((byte) value);
+                WriteRawByte((byte) (value >> 8));
+                WriteRawByte((byte) (value >> 16));
+                WriteRawByte((byte) (value >> 24));
+            }
+            else
+            {
+                buffer[position++] = ((byte)value);
+                buffer[position++] = ((byte)(value >> 8));
+                buffer[position++] = ((byte)(value >> 16));
+                buffer[position++] = ((byte)(value >> 24));
+            }
         }
 
         [CLSCompliant(false)]
         public void WriteRawLittleEndian64(ulong value)
         {
-            WriteRawByte((byte) value);
-            WriteRawByte((byte) (value >> 8));
-            WriteRawByte((byte) (value >> 16));
-            WriteRawByte((byte) (value >> 24));
-            WriteRawByte((byte) (value >> 32));
-            WriteRawByte((byte) (value >> 40));
-            WriteRawByte((byte) (value >> 48));
-            WriteRawByte((byte) (value >> 56));
+            if (position + 8 > limit)
+            {
+                WriteRawByte((byte) value);
+                WriteRawByte((byte) (value >> 8));
+                WriteRawByte((byte) (value >> 16));
+                WriteRawByte((byte) (value >> 24));
+                WriteRawByte((byte) (value >> 32));
+                WriteRawByte((byte) (value >> 40));
+                WriteRawByte((byte) (value >> 48));
+                WriteRawByte((byte) (value >> 56));
+            }
+            else
+            {
+                buffer[position++] = ((byte)value);
+                buffer[position++] = ((byte)(value >> 8));
+                buffer[position++] = ((byte)(value >> 16));
+                buffer[position++] = ((byte)(value >> 24));
+                buffer[position++] = ((byte)(value >> 32));
+                buffer[position++] = ((byte)(value >> 40));
+                buffer[position++] = ((byte)(value >> 48));
+                buffer[position++] = ((byte)(value >> 56));
+            }
         }
 
         public void WriteRawByte(byte value)

+ 48 - 48
src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs

@@ -282,43 +282,43 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasNamespace) {
+      if (hasNamespace) {
         output.WriteString(1, "namespace", Namespace);
       }
-      if (HasUmbrellaClassname) {
+      if (hasUmbrellaClassname) {
         output.WriteString(2, "umbrella_classname", UmbrellaClassname);
       }
-      if (HasPublicClasses) {
+      if (hasPublicClasses) {
         output.WriteBool(3, "public_classes", PublicClasses);
       }
-      if (HasMultipleFiles) {
+      if (hasMultipleFiles) {
         output.WriteBool(4, "multiple_files", MultipleFiles);
       }
-      if (HasNestClasses) {
+      if (hasNestClasses) {
         output.WriteBool(5, "nest_classes", NestClasses);
       }
-      if (HasCodeContracts) {
+      if (hasCodeContracts) {
         output.WriteBool(6, "code_contracts", CodeContracts);
       }
-      if (HasExpandNamespaceDirectories) {
+      if (hasExpandNamespaceDirectories) {
         output.WriteBool(7, "expand_namespace_directories", ExpandNamespaceDirectories);
       }
-      if (HasClsCompliance) {
+      if (hasClsCompliance) {
         output.WriteBool(8, "cls_compliance", ClsCompliance);
       }
-      if (HasFileExtension) {
+      if (hasFileExtension) {
         output.WriteString(221, "file_extension", FileExtension);
       }
-      if (HasUmbrellaNamespace) {
+      if (hasUmbrellaNamespace) {
         output.WriteString(222, "umbrella_namespace", UmbrellaNamespace);
       }
-      if (HasOutputDirectory) {
+      if (hasOutputDirectory) {
         output.WriteString(223, "output_directory", OutputDirectory);
       }
-      if (HasIgnoreGoogleProtobuf) {
+      if (hasIgnoreGoogleProtobuf) {
         output.WriteBool(224, "ignore_google_protobuf", IgnoreGoogleProtobuf);
       }
-      if (HasServiceGeneratorType) {
+      if (hasServiceGeneratorType) {
         output.WriteEnum(225, "service_generator_type", (int) ServiceGeneratorType, ServiceGeneratorType.ToString());
       }
       UnknownFields.WriteTo(output);
@@ -331,43 +331,43 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasNamespace) {
+        if (hasNamespace) {
           size += pb::CodedOutputStream.ComputeStringSize(1, Namespace);
         }
-        if (HasUmbrellaClassname) {
+        if (hasUmbrellaClassname) {
           size += pb::CodedOutputStream.ComputeStringSize(2, UmbrellaClassname);
         }
-        if (HasPublicClasses) {
+        if (hasPublicClasses) {
           size += pb::CodedOutputStream.ComputeBoolSize(3, PublicClasses);
         }
-        if (HasMultipleFiles) {
+        if (hasMultipleFiles) {
           size += pb::CodedOutputStream.ComputeBoolSize(4, MultipleFiles);
         }
-        if (HasNestClasses) {
+        if (hasNestClasses) {
           size += pb::CodedOutputStream.ComputeBoolSize(5, NestClasses);
         }
-        if (HasCodeContracts) {
+        if (hasCodeContracts) {
           size += pb::CodedOutputStream.ComputeBoolSize(6, CodeContracts);
         }
-        if (HasExpandNamespaceDirectories) {
+        if (hasExpandNamespaceDirectories) {
           size += pb::CodedOutputStream.ComputeBoolSize(7, ExpandNamespaceDirectories);
         }
-        if (HasClsCompliance) {
+        if (hasClsCompliance) {
           size += pb::CodedOutputStream.ComputeBoolSize(8, ClsCompliance);
         }
-        if (HasFileExtension) {
+        if (hasFileExtension) {
           size += pb::CodedOutputStream.ComputeStringSize(221, FileExtension);
         }
-        if (HasUmbrellaNamespace) {
+        if (hasUmbrellaNamespace) {
           size += pb::CodedOutputStream.ComputeStringSize(222, UmbrellaNamespace);
         }
-        if (HasOutputDirectory) {
+        if (hasOutputDirectory) {
           size += pb::CodedOutputStream.ComputeStringSize(223, OutputDirectory);
         }
-        if (HasIgnoreGoogleProtobuf) {
+        if (hasIgnoreGoogleProtobuf) {
           size += pb::CodedOutputStream.ComputeBoolSize(224, IgnoreGoogleProtobuf);
         }
-        if (HasServiceGeneratorType) {
+        if (hasServiceGeneratorType) {
           size += pb::CodedOutputStream.ComputeEnumSize(225, (int) ServiceGeneratorType);
         }
         size += UnknownFields.SerializedSize;
@@ -605,7 +605,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       
       
       public bool HasNamespace {
-        get { return result.HasNamespace; }
+        get { return result.hasNamespace; }
       }
       public string Namespace {
         get { return result.Namespace; }
@@ -624,7 +624,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasUmbrellaClassname {
-        get { return result.HasUmbrellaClassname; }
+        get { return result.hasUmbrellaClassname; }
       }
       public string UmbrellaClassname {
         get { return result.UmbrellaClassname; }
@@ -643,7 +643,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasPublicClasses {
-        get { return result.HasPublicClasses; }
+        get { return result.hasPublicClasses; }
       }
       public bool PublicClasses {
         get { return result.PublicClasses; }
@@ -661,7 +661,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasMultipleFiles {
-        get { return result.HasMultipleFiles; }
+        get { return result.hasMultipleFiles; }
       }
       public bool MultipleFiles {
         get { return result.MultipleFiles; }
@@ -679,7 +679,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasNestClasses {
-        get { return result.HasNestClasses; }
+        get { return result.hasNestClasses; }
       }
       public bool NestClasses {
         get { return result.NestClasses; }
@@ -697,7 +697,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasCodeContracts {
-        get { return result.HasCodeContracts; }
+        get { return result.hasCodeContracts; }
       }
       public bool CodeContracts {
         get { return result.CodeContracts; }
@@ -715,7 +715,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasExpandNamespaceDirectories {
-        get { return result.HasExpandNamespaceDirectories; }
+        get { return result.hasExpandNamespaceDirectories; }
       }
       public bool ExpandNamespaceDirectories {
         get { return result.ExpandNamespaceDirectories; }
@@ -733,7 +733,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasClsCompliance {
-        get { return result.HasClsCompliance; }
+        get { return result.hasClsCompliance; }
       }
       public bool ClsCompliance {
         get { return result.ClsCompliance; }
@@ -751,7 +751,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasFileExtension {
-        get { return result.HasFileExtension; }
+        get { return result.hasFileExtension; }
       }
       public string FileExtension {
         get { return result.FileExtension; }
@@ -770,7 +770,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasUmbrellaNamespace {
-        get { return result.HasUmbrellaNamespace; }
+        get { return result.hasUmbrellaNamespace; }
       }
       public string UmbrellaNamespace {
         get { return result.UmbrellaNamespace; }
@@ -789,7 +789,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasOutputDirectory {
-        get { return result.HasOutputDirectory; }
+        get { return result.hasOutputDirectory; }
       }
       public string OutputDirectory {
         get { return result.OutputDirectory; }
@@ -808,7 +808,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasIgnoreGoogleProtobuf {
-        get { return result.HasIgnoreGoogleProtobuf; }
+        get { return result.hasIgnoreGoogleProtobuf; }
       }
       public bool IgnoreGoogleProtobuf {
         get { return result.IgnoreGoogleProtobuf; }
@@ -826,7 +826,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       }
       
       public bool HasServiceGeneratorType {
-       get { return result.HasServiceGeneratorType; }
+       get { return result.hasServiceGeneratorType; }
       }
       public global::Google.ProtocolBuffers.DescriptorProtos.CSharpServiceType ServiceGeneratorType {
         get { return result.ServiceGeneratorType; }
@@ -891,7 +891,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasPropertyName) {
+      if (hasPropertyName) {
         output.WriteString(1, "property_name", PropertyName);
       }
       UnknownFields.WriteTo(output);
@@ -904,7 +904,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasPropertyName) {
+        if (hasPropertyName) {
           size += pb::CodedOutputStream.ComputeStringSize(1, PropertyName);
         }
         size += UnknownFields.SerializedSize;
@@ -1050,7 +1050,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       
       
       public bool HasPropertyName {
-        get { return result.HasPropertyName; }
+        get { return result.hasPropertyName; }
       }
       public string PropertyName {
         get { return result.PropertyName; }
@@ -1116,7 +1116,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasInterfaceId) {
+      if (hasInterfaceId) {
         output.WriteString(1, "interface_id", InterfaceId);
       }
       UnknownFields.WriteTo(output);
@@ -1129,7 +1129,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasInterfaceId) {
+        if (hasInterfaceId) {
           size += pb::CodedOutputStream.ComputeStringSize(1, InterfaceId);
         }
         size += UnknownFields.SerializedSize;
@@ -1275,7 +1275,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       
       
       public bool HasInterfaceId {
-        get { return result.HasInterfaceId; }
+        get { return result.hasInterfaceId; }
       }
       public string InterfaceId {
         get { return result.InterfaceId; }
@@ -1341,7 +1341,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasDispatchId) {
+      if (hasDispatchId) {
         output.WriteInt32(1, "dispatch_id", DispatchId);
       }
       UnknownFields.WriteTo(output);
@@ -1354,7 +1354,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasDispatchId) {
+        if (hasDispatchId) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, DispatchId);
         }
         size += UnknownFields.SerializedSize;
@@ -1500,7 +1500,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       
       
       public bool HasDispatchId {
-        get { return result.HasDispatchId; }
+        get { return result.hasDispatchId; }
       }
       public int DispatchId {
         get { return result.DispatchId; }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 147 - 147
src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs


+ 2 - 1
src/ProtocolBuffers/ICodedOutputStream.cs

@@ -79,7 +79,8 @@ namespace Google.ProtocolBuffers
         void WriteMessageSetExtension(int fieldNumber, string fieldName, ByteString value);
         void WriteArray(FieldType fieldType, int fieldNumber, string fieldName, System.Collections.IEnumerable list);
         void WritePackedArray(FieldType fieldType, int fieldNumber, string fieldName, System.Collections.IEnumerable list);
-        void WritePackedArray(FieldType fieldType, int fieldNumber, string fieldName, int calculatedSize, System.Collections.IEnumerable list);
+        void WriteArray<T>(FieldType fieldType, int fieldNumber, string fieldName, System.Collections.Generic.IEnumerable<T> list);
+        void WritePackedArray<T>(FieldType fieldType, int fieldNumber, string fieldName, int calculatedSize, System.Collections.Generic.IEnumerable<T> list);
         void WriteField(FieldType fieldType, int fieldNumber, string fieldName, object value);
         void Flush();
     }

+ 22 - 22
src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs

@@ -285,7 +285,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasNumber {
-            get { return result.HasNumber; }
+            get { return result.hasNumber; }
           }
           public string Number {
             get { return result.Number; }
@@ -304,7 +304,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasType {
-           get { return result.HasType; }
+           get { return result.hasType; }
           }
           public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType Type {
             get { return result.Type; }
@@ -482,7 +482,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasAddress {
-            get { return result.HasAddress; }
+            get { return result.hasAddress; }
           }
           public string Address {
             get { return result.Address; }
@@ -501,7 +501,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasAddress2 {
-            get { return result.HasAddress2; }
+            get { return result.hasAddress2; }
           }
           public string Address2 {
             get { return result.Address2; }
@@ -520,7 +520,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasCity {
-            get { return result.HasCity; }
+            get { return result.hasCity; }
           }
           public string City {
             get { return result.City; }
@@ -539,7 +539,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasState {
-            get { return result.HasState; }
+            get { return result.hasState; }
           }
           public string State {
             get { return result.State; }
@@ -558,7 +558,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasZip {
-            get { return result.HasZip; }
+            get { return result.hasZip; }
           }
           [global::System.CLSCompliant(false)]
           public uint Zip {
@@ -734,7 +734,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasName {
-        get { return result.HasName; }
+        get { return result.hasName; }
       }
       public string Name {
         get { return result.Name; }
@@ -753,7 +753,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasId {
-        get { return result.HasId; }
+        get { return result.hasId; }
       }
       public int Id {
         get { return result.Id; }
@@ -771,7 +771,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasEmail {
-        get { return result.HasEmail; }
+        get { return result.hasEmail; }
       }
       public string Email {
         get { return result.Email; }
@@ -1011,7 +1011,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasNumber {
-        get { return result.HasNumber; }
+        get { return result.hasNumber; }
       }
       public string Number {
         get { return result.Number; }
@@ -1192,7 +1192,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasCount {
-            get { return result.HasCount; }
+            get { return result.hasCount; }
           }
           public int Count {
             get { return result.Count; }
@@ -1365,7 +1365,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasName {
-        get { return result.HasName; }
+        get { return result.hasName; }
       }
       public string Name {
         get { return result.Name; }
@@ -1384,7 +1384,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasId {
-        get { return result.HasId; }
+        get { return result.hasId; }
       }
       public int Id {
         get { return result.Id; }
@@ -1402,7 +1402,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasEmail {
-        get { return result.HasEmail; }
+        get { return result.hasEmail; }
       }
       public string Email {
         get { return result.Email; }
@@ -1421,7 +1421,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasTestA {
-       get { return result.HasTestA; }
+       get { return result.hasTestA; }
       }
       public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA TestA {
         get { return result.TestA; }
@@ -1441,7 +1441,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeTestA(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasTestA &&
+        if (result.hasTestA &&
             result.testA_ != global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance) {
             result.testA_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.CreateBuilder(result.testA_).MergeFrom(value).BuildPartial();
         } else {
@@ -1764,7 +1764,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasName {
-        get { return result.HasName; }
+        get { return result.hasName; }
       }
       public string Name {
         get { return result.Name; }
@@ -1783,7 +1783,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasId {
-        get { return result.HasId; }
+        get { return result.hasId; }
       }
       public int Id {
         get { return result.Id; }
@@ -1801,7 +1801,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasWebsite {
-        get { return result.HasWebsite; }
+        get { return result.hasWebsite; }
       }
       public string Website {
         get { return result.Website; }
@@ -1820,7 +1820,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasTestB {
-       get { return result.HasTestB; }
+       get { return result.hasTestB; }
       }
       public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB TestB {
         get { return result.TestB; }
@@ -1840,7 +1840,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeTestB(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasTestB &&
+        if (result.hasTestB &&
             result.testB_ != global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance) {
             result.testB_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.CreateBuilder(result.testB_).MergeFrom(value).BuildPartial();
         } else {

+ 39 - 39
src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs

@@ -100,10 +100,10 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasD) {
+      if (hasD) {
         output.WriteInt32(1, "d", D);
       }
-      if (HasEn) {
+      if (hasEn) {
         output.WriteEnum(2, "en", (int) En, En.ToString());
       }
     }
@@ -115,10 +115,10 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasD) {
+        if (hasD) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, D);
         }
-        if (HasEn) {
+        if (hasEn) {
           size += pb::CodedOutputStream.ComputeEnumSize(2, (int) En);
         }
         memoizedSerializedSize = size;
@@ -281,7 +281,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasD {
-        get { return result.HasD; }
+        get { return result.hasD; }
       }
       public int D {
         get { return result.D; }
@@ -299,7 +299,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasEn {
-       get { return result.HasEn; }
+       get { return result.hasEn; }
       }
       public global::Google.ProtocolBuffers.TestProtos.ExtraEnum En {
         get { return result.En; }
@@ -397,10 +397,10 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         public override void WriteTo(pb::ICodedOutputStream output) {
           int size = SerializedSize;
-          if (HasNumber) {
+          if (hasNumber) {
             output.WriteString(1, "number", Number);
           }
-          if (HasType) {
+          if (hasType) {
             output.WriteEnum(2, "type", (int) Type, Type.ToString());
           }
         }
@@ -412,10 +412,10 @@ namespace Google.ProtocolBuffers.TestProtos {
             if (size != -1) return size;
             
             size = 0;
-            if (HasNumber) {
+            if (hasNumber) {
               size += pb::CodedOutputStream.ComputeStringSize(1, Number);
             }
-            if (HasType) {
+            if (hasType) {
               size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);
             }
             memoizedSerializedSize = size;
@@ -578,7 +578,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasNumber {
-            get { return result.HasNumber; }
+            get { return result.hasNumber; }
           }
           public string Number {
             get { return result.Number; }
@@ -597,7 +597,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasType {
-           get { return result.HasType; }
+           get { return result.hasType; }
           }
           public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType Type {
             get { return result.Type; }
@@ -699,19 +699,19 @@ namespace Google.ProtocolBuffers.TestProtos {
         
         public override void WriteTo(pb::ICodedOutputStream output) {
           int size = SerializedSize;
-          if (HasAddress) {
+          if (hasAddress) {
             output.WriteString(1, "address", Address);
           }
-          if (HasAddress2) {
+          if (hasAddress2) {
             output.WriteString(2, "address2", Address2);
           }
-          if (HasCity) {
+          if (hasCity) {
             output.WriteString(3, "city", City);
           }
-          if (HasState) {
+          if (hasState) {
             output.WriteString(4, "state", State);
           }
-          if (HasZip) {
+          if (hasZip) {
             output.WriteFixed32(5, "zip", Zip);
           }
         }
@@ -723,19 +723,19 @@ namespace Google.ProtocolBuffers.TestProtos {
             if (size != -1) return size;
             
             size = 0;
-            if (HasAddress) {
+            if (hasAddress) {
               size += pb::CodedOutputStream.ComputeStringSize(1, Address);
             }
-            if (HasAddress2) {
+            if (hasAddress2) {
               size += pb::CodedOutputStream.ComputeStringSize(2, Address2);
             }
-            if (HasCity) {
+            if (hasCity) {
               size += pb::CodedOutputStream.ComputeStringSize(3, City);
             }
-            if (HasState) {
+            if (hasState) {
               size += pb::CodedOutputStream.ComputeStringSize(4, State);
             }
-            if (HasZip) {
+            if (hasZip) {
               size += pb::CodedOutputStream.ComputeFixed32Size(5, Zip);
             }
             memoizedSerializedSize = size;
@@ -924,7 +924,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           
           
           public bool HasAddress {
-            get { return result.HasAddress; }
+            get { return result.hasAddress; }
           }
           public string Address {
             get { return result.Address; }
@@ -943,7 +943,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasAddress2 {
-            get { return result.HasAddress2; }
+            get { return result.hasAddress2; }
           }
           public string Address2 {
             get { return result.Address2; }
@@ -962,7 +962,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasCity {
-            get { return result.HasCity; }
+            get { return result.hasCity; }
           }
           public string City {
             get { return result.City; }
@@ -981,7 +981,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasState {
-            get { return result.HasState; }
+            get { return result.hasState; }
           }
           public string State {
             get { return result.State; }
@@ -1000,7 +1000,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           }
           
           public bool HasZip {
-            get { return result.HasZip; }
+            get { return result.hasZip; }
           }
           [global::System.CLSCompliant(false)]
           public uint Zip {
@@ -1109,13 +1109,13 @@ namespace Google.ProtocolBuffers.TestProtos {
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
       pb::ExtendableMessageLite<TestInteropPersonLite, TestInteropPersonLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
-      if (HasName) {
+      if (hasName) {
         output.WriteString(1, "name", Name);
       }
-      if (HasId) {
+      if (hasId) {
         output.WriteInt32(2, "id", Id);
       }
-      if (HasEmail) {
+      if (hasEmail) {
         output.WriteString(3, "email", Email);
       }
       if (phone_.Count > 0) {
@@ -1137,13 +1137,13 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasName) {
+        if (hasName) {
           size += pb::CodedOutputStream.ComputeStringSize(1, Name);
         }
-        if (HasId) {
+        if (hasId) {
           size += pb::CodedOutputStream.ComputeInt32Size(2, Id);
         }
-        if (HasEmail) {
+        if (hasEmail) {
           size += pb::CodedOutputStream.ComputeStringSize(3, Email);
         }
         {
@@ -1377,7 +1377,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasName {
-        get { return result.HasName; }
+        get { return result.hasName; }
       }
       public string Name {
         get { return result.Name; }
@@ -1396,7 +1396,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasId {
-        get { return result.HasId; }
+        get { return result.hasId; }
       }
       public int Id {
         get { return result.Id; }
@@ -1414,7 +1414,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       
       public bool HasEmail {
-        get { return result.HasEmail; }
+        get { return result.hasEmail; }
       }
       public string Email {
         get { return result.Email; }
@@ -1575,7 +1575,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasNumber) {
+      if (hasNumber) {
         output.WriteString(1, "number", Number);
       }
     }
@@ -1587,7 +1587,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasNumber) {
+        if (hasNumber) {
           size += pb::CodedOutputStream.ComputeStringSize(1, Number);
         }
         memoizedSerializedSize = size;
@@ -1736,7 +1736,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasNumber {
-        get { return result.HasNumber; }
+        get { return result.hasNumber; }
       }
       public string Number {
         get { return result.Number; }

+ 3 - 3
src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs

@@ -72,7 +72,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasD) {
+      if (hasD) {
         output.WriteInt32(1, "d", D);
       }
     }
@@ -84,7 +84,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasD) {
+        if (hasD) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, D);
         }
         memoizedSerializedSize = size;
@@ -233,7 +233,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasD {
-        get { return result.HasD; }
+        get { return result.hasD; }
       }
       public int D {
         get { return result.D; }

+ 3 - 3
src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs

@@ -108,7 +108,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasD) {
+      if (hasD) {
         output.WriteInt32(1, "d", D);
       }
       UnknownFields.WriteTo(output);
@@ -121,7 +121,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasD) {
+        if (hasD) {
           size += pb::CodedOutputStream.ComputeInt32Size(1, D);
         }
         size += UnknownFields.SerializedSize;
@@ -267,7 +267,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasD {
-        get { return result.HasD; }
+        get { return result.hasD; }
       }
       public int D {
         get { return result.D; }

+ 5 - 5
src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs

@@ -61,7 +61,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     
     public override void WriteTo(pb::ICodedOutputStream output) {
       int size = SerializedSize;
-      if (HasMessage) {
+      if (hasMessage) {
         output.WriteMessage(1, "message", Message);
       }
     }
@@ -73,7 +73,7 @@ namespace Google.ProtocolBuffers.TestProtos {
         if (size != -1) return size;
         
         size = 0;
-        if (HasMessage) {
+        if (hasMessage) {
           size += pb::CodedOutputStream.ComputeMessageSize(1, Message);
         }
         memoizedSerializedSize = size;
@@ -212,7 +212,7 @@ namespace Google.ProtocolBuffers.TestProtos {
             }
             case 10: {
               global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
-              if (HasMessage) {
+              if (result.hasMessage) {
                 subBuilder.MergeFrom(Message);
               }
               input.ReadMessage(subBuilder, extensionRegistry);
@@ -227,7 +227,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       
       
       public bool HasMessage {
-       get { return result.HasMessage; }
+       get { return result.hasMessage; }
       }
       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Message {
         get { return result.Message; }
@@ -247,7 +247,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       }
       public Builder MergeMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
         pb::ThrowHelper.ThrowIfNull(value, "value");
-        if (result.HasMessage &&
+        if (result.hasMessage &&
             result.message_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
             result.message_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.message_).MergeFrom(value).BuildPartial();
         } else {

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 158 - 158
src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 158 - 158
src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно