A few performance tweaks of the ICodedOutputStream interface/implementation
diff --git a/src/AddressBook/AddressBookProtos.cs b/src/AddressBook/AddressBookProtos.cs
index 580ca6c..bd28477 100644
--- a/src/AddressBook/AddressBookProtos.cs
+++ b/src/AddressBook/AddressBookProtos.cs
@@ -154,10 +154,10 @@
         

         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 @@
             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 @@
           

           

           public bool HasNumber {

-            get { return result.HasNumber; }

+            get { return result.hasNumber; }

           }

           public string Number {

             get { return result.Number; }

@@ -353,7 +353,7 @@
           }

           

           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 @@
     

     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 @@
         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 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -651,7 +651,7 @@
       }

       

       public bool HasId {

-        get { return result.HasId; }

+        get { return result.hasId; }

       }

       public int Id {

         get { return result.Id; }

@@ -669,7 +669,7 @@
       }

       

       public bool HasEmail {

-        get { return result.HasEmail; }

+        get { return result.hasEmail; }

       }

       public string Email {

         get { return result.Email; }

diff --git a/src/ProtoBench/Program.cs b/src/ProtoBench/Program.cs
index 6203486..14294a4 100644
--- a/src/ProtoBench/Program.cs
+++ b/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 @@
     /// </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 @@
                 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 @@
             }

         }

 

-        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 @@
         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++)

             {

diff --git a/src/ProtoBench/ProtoBench.csproj b/src/ProtoBench/ProtoBench.csproj
index 1577716..f55764e 100644
--- a/src/ProtoBench/ProtoBench.csproj
+++ b/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>

diff --git a/src/ProtoBench/app.config b/src/ProtoBench/app.config
index a6308d9..6c0c761 100644
--- a/src/ProtoBench/app.config
+++ b/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>
\ No newline at end of file
diff --git a/src/ProtoGen/EnumFieldGenerator.cs b/src/ProtoGen/EnumFieldGenerator.cs
index 3e9e071..763c18a 100644
--- a/src/ProtoGen/EnumFieldGenerator.cs
+++ b/src/ProtoGen/EnumFieldGenerator.cs
@@ -61,7 +61,7 @@
         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 @@
 

         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("}");

         }

diff --git a/src/ProtoGen/MessageFieldGenerator.cs b/src/ProtoGen/MessageFieldGenerator.cs
index b464da2..c5b3a6a 100644
--- a/src/ProtoGen/MessageFieldGenerator.cs
+++ b/src/ProtoGen/MessageFieldGenerator.cs
@@ -60,7 +60,7 @@
         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 @@
             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 @@
         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 @@
 

         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("}");

diff --git a/src/ProtoGen/PrimitiveFieldGenerator.cs b/src/ProtoGen/PrimitiveFieldGenerator.cs
index 2e767b9..7fc583c 100644
--- a/src/ProtoGen/PrimitiveFieldGenerator.cs
+++ b/src/ProtoGen/PrimitiveFieldGenerator.cs
@@ -62,7 +62,7 @@
         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 @@
 

         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("}");

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
index ae057e0..4222d57 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
@@ -117,13 +117,13 @@
     

     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 @@
         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 @@
       

       

       public bool HasNormal {

-        get { return result.HasNormal; }

+        get { return result.hasNormal; }

       }

       public string Normal {

         get { return result.Normal; }

@@ -321,7 +321,7 @@
       }

       

       public bool HasOptionsMessage_ {

-        get { return result.HasOptionsMessage_; }

+        get { return result.hasOptionsMessage_; }

       }

       public string OptionsMessage_ {

         get { return result.OptionsMessage_; }

@@ -340,7 +340,7 @@
       }

       

       public bool HasCustomName {

-        get { return result.HasCustomName; }

+        get { return result.hasCustomName; }

       }

       public string CustomName {

         get { return result.CustomName; }

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
index b133581..3cdd3e3 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
@@ -452,7 +452,7 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasField1) {

+        if (hasField1) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Field1);

         }

         size += UnknownFields.SerializedSize;

@@ -611,7 +611,7 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public string Field1 {

         get { return result.Field1; }

@@ -2361,13 +2361,13 @@
     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 @@
         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 @@
       

       

       public bool HasFoo {

-        get { return result.HasFoo; }

+        get { return result.hasFoo; }

       }

       public int Foo {

         get { return result.Foo; }

@@ -2567,7 +2567,7 @@
       }

       

       public bool HasFoo2 {

-        get { return result.HasFoo2; }

+        get { return result.hasFoo2; }

       }

       public int Foo2 {

         get { return result.Foo2; }

@@ -2585,7 +2585,7 @@
       }

       

       public bool HasFoo3 {

-        get { return result.HasFoo3; }

+        get { return result.hasFoo3; }

       }

       public int Foo3 {

         get { return result.Foo3; }

@@ -2682,7 +2682,7 @@
         

         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 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasWaldo) {

+            if (hasWaldo) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, Waldo);

             }

             size += UnknownFields.SerializedSize;

@@ -2841,7 +2841,7 @@
           

           

           public bool HasWaldo {

-            get { return result.HasWaldo; }

+            get { return result.hasWaldo; }

           }

           public int Waldo {

             get { return result.Waldo; }

@@ -2909,13 +2909,13 @@
     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 @@
         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 @@
             }

             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 @@
             }

             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 @@
       

       

       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 @@
       }

       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 @@
       }

       

       public bool HasBaz {

-        get { return result.HasBaz; }

+        get { return result.hasBaz; }

       }

       public int Baz {

         get { return result.Baz; }

@@ -3161,7 +3161,7 @@
       }

       

       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 @@
       }

       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 @@
         

         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 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasPlugh) {

+            if (hasPlugh) {

               size += pb::CodedOutputStream.ComputeInt32Size(3, Plugh);

             }

             size += UnknownFields.SerializedSize;

@@ -3433,7 +3433,7 @@
           

           

           public bool HasPlugh {

-            get { return result.HasPlugh; }

+            get { return result.hasPlugh; }

           }

           public int Plugh {

             get { return result.Plugh; }

@@ -3486,10 +3486,10 @@
     

     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 @@
         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 @@
             }

             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 @@
       

       

       public bool HasQux {

-        get { return result.HasQux; }

+        get { return result.hasQux; }

       }

       public int Qux {

         get { return result.Qux; }

@@ -3681,7 +3681,7 @@
       }

       

       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 @@
       }

       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 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasXyzzy) {

+        if (hasXyzzy) {

           size += pb::CodedOutputStream.ComputeInt32Size(7593951, Xyzzy);

         }

         size += UnknownFields.SerializedSize;

@@ -3923,7 +3923,7 @@
       

       

       public bool HasXyzzy {

-        get { return result.HasXyzzy; }

+        get { return result.hasXyzzy; }

       }

       public int Xyzzy {

         get { return result.Xyzzy; }

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
index 60a8b8d..4ba2149 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
@@ -119,7 +119,7 @@
     

     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 @@
         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 @@
             }

             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 @@
       

       

       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 @@
       }

       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 {

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs
index 1e9033f..00485d6 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs
@@ -651,7 +651,7 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public string Field1 {

         get { return result.Field1; }

@@ -670,7 +670,7 @@
       }

       

       public bool HasField9 {

-        get { return result.HasField9; }

+        get { return result.hasField9; }

       }

       public string Field9 {

         get { return result.Field9; }

@@ -689,7 +689,7 @@
       }

       

       public bool HasField18 {

-        get { return result.HasField18; }

+        get { return result.hasField18; }

       }

       public string Field18 {

         get { return result.Field18; }

@@ -708,7 +708,7 @@
       }

       

       public bool HasField80 {

-        get { return result.HasField80; }

+        get { return result.hasField80; }

       }

       public bool Field80 {

         get { return result.Field80; }

@@ -726,7 +726,7 @@
       }

       

       public bool HasField81 {

-        get { return result.HasField81; }

+        get { return result.hasField81; }

       }

       public bool Field81 {

         get { return result.Field81; }

@@ -744,7 +744,7 @@
       }

       

       public bool HasField2 {

-        get { return result.HasField2; }

+        get { return result.hasField2; }

       }

       public int Field2 {

         get { return result.Field2; }

@@ -762,7 +762,7 @@
       }

       

       public bool HasField3 {

-        get { return result.HasField3; }

+        get { return result.hasField3; }

       }

       public int Field3 {

         get { return result.Field3; }

@@ -780,7 +780,7 @@
       }

       

       public bool HasField280 {

-        get { return result.HasField280; }

+        get { return result.hasField280; }

       }

       public int Field280 {

         get { return result.Field280; }

@@ -798,7 +798,7 @@
       }

       

       public bool HasField6 {

-        get { return result.HasField6; }

+        get { return result.hasField6; }

       }

       public int Field6 {

         get { return result.Field6; }

@@ -816,7 +816,7 @@
       }

       

       public bool HasField22 {

-        get { return result.HasField22; }

+        get { return result.hasField22; }

       }

       public long Field22 {

         get { return result.Field22; }

@@ -834,7 +834,7 @@
       }

       

       public bool HasField4 {

-        get { return result.HasField4; }

+        get { return result.hasField4; }

       }

       public string Field4 {

         get { return result.Field4; }

@@ -884,7 +884,7 @@
       }

       

       public bool HasField59 {

-        get { return result.HasField59; }

+        get { return result.hasField59; }

       }

       public bool Field59 {

         get { return result.Field59; }

@@ -902,7 +902,7 @@
       }

       

       public bool HasField7 {

-        get { return result.HasField7; }

+        get { return result.hasField7; }

       }

       public string Field7 {

         get { return result.Field7; }

@@ -921,7 +921,7 @@
       }

       

       public bool HasField16 {

-        get { return result.HasField16; }

+        get { return result.hasField16; }

       }

       public int Field16 {

         get { return result.Field16; }

@@ -939,7 +939,7 @@
       }

       

       public bool HasField130 {

-        get { return result.HasField130; }

+        get { return result.hasField130; }

       }

       public int Field130 {

         get { return result.Field130; }

@@ -957,7 +957,7 @@
       }

       

       public bool HasField12 {

-        get { return result.HasField12; }

+        get { return result.hasField12; }

       }

       public bool Field12 {

         get { return result.Field12; }

@@ -975,7 +975,7 @@
       }

       

       public bool HasField17 {

-        get { return result.HasField17; }

+        get { return result.hasField17; }

       }

       public bool Field17 {

         get { return result.Field17; }

@@ -993,7 +993,7 @@
       }

       

       public bool HasField13 {

-        get { return result.HasField13; }

+        get { return result.hasField13; }

       }

       public bool Field13 {

         get { return result.Field13; }

@@ -1011,7 +1011,7 @@
       }

       

       public bool HasField14 {

-        get { return result.HasField14; }

+        get { return result.hasField14; }

       }

       public bool Field14 {

         get { return result.Field14; }

@@ -1029,7 +1029,7 @@
       }

       

       public bool HasField104 {

-        get { return result.HasField104; }

+        get { return result.hasField104; }

       }

       public int Field104 {

         get { return result.Field104; }

@@ -1047,7 +1047,7 @@
       }

       

       public bool HasField100 {

-        get { return result.HasField100; }

+        get { return result.hasField100; }

       }

       public int Field100 {

         get { return result.Field100; }

@@ -1065,7 +1065,7 @@
       }

       

       public bool HasField101 {

-        get { return result.HasField101; }

+        get { return result.hasField101; }

       }

       public int Field101 {

         get { return result.Field101; }

@@ -1083,7 +1083,7 @@
       }

       

       public bool HasField102 {

-        get { return result.HasField102; }

+        get { return result.hasField102; }

       }

       public string Field102 {

         get { return result.Field102; }

@@ -1102,7 +1102,7 @@
       }

       

       public bool HasField103 {

-        get { return result.HasField103; }

+        get { return result.hasField103; }

       }

       public string Field103 {

         get { return result.Field103; }

@@ -1121,7 +1121,7 @@
       }

       

       public bool HasField29 {

-        get { return result.HasField29; }

+        get { return result.hasField29; }

       }

       public int Field29 {

         get { return result.Field29; }

@@ -1139,7 +1139,7 @@
       }

       

       public bool HasField30 {

-        get { return result.HasField30; }

+        get { return result.hasField30; }

       }

       public bool Field30 {

         get { return result.Field30; }

@@ -1157,7 +1157,7 @@
       }

       

       public bool HasField60 {

-        get { return result.HasField60; }

+        get { return result.hasField60; }

       }

       public int Field60 {

         get { return result.Field60; }

@@ -1175,7 +1175,7 @@
       }

       

       public bool HasField271 {

-        get { return result.HasField271; }

+        get { return result.hasField271; }

       }

       public int Field271 {

         get { return result.Field271; }

@@ -1193,7 +1193,7 @@
       }

       

       public bool HasField272 {

-        get { return result.HasField272; }

+        get { return result.hasField272; }

       }

       public int Field272 {

         get { return result.Field272; }

@@ -1211,7 +1211,7 @@
       }

       

       public bool HasField150 {

-        get { return result.HasField150; }

+        get { return result.hasField150; }

       }

       public int Field150 {

         get { return result.Field150; }

@@ -1229,7 +1229,7 @@
       }

       

       public bool HasField23 {

-        get { return result.HasField23; }

+        get { return result.hasField23; }

       }

       public int Field23 {

         get { return result.Field23; }

@@ -1247,7 +1247,7 @@
       }

       

       public bool HasField24 {

-        get { return result.HasField24; }

+        get { return result.hasField24; }

       }

       public bool Field24 {

         get { return result.Field24; }

@@ -1265,7 +1265,7 @@
       }

       

       public bool HasField25 {

-        get { return result.HasField25; }

+        get { return result.hasField25; }

       }

       public int Field25 {

         get { return result.Field25; }

@@ -1283,7 +1283,7 @@
       }

       

       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 @@
       }

       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 @@
       }

       

       public bool HasField78 {

-        get { return result.HasField78; }

+        get { return result.hasField78; }

       }

       public bool Field78 {

         get { return result.Field78; }

@@ -1337,7 +1337,7 @@
       }

       

       public bool HasField67 {

-        get { return result.HasField67; }

+        get { return result.hasField67; }

       }

       public int Field67 {

         get { return result.Field67; }

@@ -1355,7 +1355,7 @@
       }

       

       public bool HasField68 {

-        get { return result.HasField68; }

+        get { return result.hasField68; }

       }

       public int Field68 {

         get { return result.Field68; }

@@ -1373,7 +1373,7 @@
       }

       

       public bool HasField128 {

-        get { return result.HasField128; }

+        get { return result.hasField128; }

       }

       public int Field128 {

         get { return result.Field128; }

@@ -1391,7 +1391,7 @@
       }

       

       public bool HasField129 {

-        get { return result.HasField129; }

+        get { return result.hasField129; }

       }

       public string Field129 {

         get { return result.Field129; }

@@ -1410,7 +1410,7 @@
       }

       

       public bool HasField131 {

-        get { return result.HasField131; }

+        get { return result.hasField131; }

       }

       public int Field131 {

         get { return result.Field131; }

@@ -1741,7 +1741,7 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public int Field1 {

         get { return result.Field1; }

@@ -1759,7 +1759,7 @@
       }

       

       public bool HasField2 {

-        get { return result.HasField2; }

+        get { return result.hasField2; }

       }

       public int Field2 {

         get { return result.Field2; }

@@ -1777,7 +1777,7 @@
       }

       

       public bool HasField3 {

-        get { return result.HasField3; }

+        get { return result.hasField3; }

       }

       public int Field3 {

         get { return result.Field3; }

@@ -1795,7 +1795,7 @@
       }

       

       public bool HasField15 {

-        get { return result.HasField15; }

+        get { return result.hasField15; }

       }

       public string Field15 {

         get { return result.Field15; }

@@ -1814,7 +1814,7 @@
       }

       

       public bool HasField12 {

-        get { return result.HasField12; }

+        get { return result.hasField12; }

       }

       public bool Field12 {

         get { return result.Field12; }

@@ -1832,7 +1832,7 @@
       }

       

       public bool HasField13 {

-        get { return result.HasField13; }

+        get { return result.hasField13; }

       }

       public long Field13 {

         get { return result.Field13; }

@@ -1850,7 +1850,7 @@
       }

       

       public bool HasField14 {

-        get { return result.HasField14; }

+        get { return result.hasField14; }

       }

       public long Field14 {

         get { return result.Field14; }

@@ -1868,7 +1868,7 @@
       }

       

       public bool HasField16 {

-        get { return result.HasField16; }

+        get { return result.hasField16; }

       }

       public int Field16 {

         get { return result.Field16; }

@@ -1886,7 +1886,7 @@
       }

       

       public bool HasField19 {

-        get { return result.HasField19; }

+        get { return result.hasField19; }

       }

       public int Field19 {

         get { return result.Field19; }

@@ -1904,7 +1904,7 @@
       }

       

       public bool HasField20 {

-        get { return result.HasField20; }

+        get { return result.hasField20; }

       }

       public bool Field20 {

         get { return result.Field20; }

@@ -1922,7 +1922,7 @@
       }

       

       public bool HasField28 {

-        get { return result.HasField28; }

+        get { return result.hasField28; }

       }

       public bool Field28 {

         get { return result.Field28; }

@@ -1940,7 +1940,7 @@
       }

       

       public bool HasField21 {

-        get { return result.HasField21; }

+        get { return result.hasField21; }

       }

       [global::System.CLSCompliant(false)]

       public ulong Field21 {

@@ -1960,7 +1960,7 @@
       }

       

       public bool HasField22 {

-        get { return result.HasField22; }

+        get { return result.hasField22; }

       }

       public int Field22 {

         get { return result.Field22; }

@@ -1978,7 +1978,7 @@
       }

       

       public bool HasField23 {

-        get { return result.HasField23; }

+        get { return result.hasField23; }

       }

       public bool Field23 {

         get { return result.Field23; }

@@ -1996,7 +1996,7 @@
       }

       

       public bool HasField206 {

-        get { return result.HasField206; }

+        get { return result.hasField206; }

       }

       public bool Field206 {

         get { return result.Field206; }

@@ -2014,7 +2014,7 @@
       }

       

       public bool HasField203 {

-        get { return result.HasField203; }

+        get { return result.hasField203; }

       }

       [global::System.CLSCompliant(false)]

       public uint Field203 {

@@ -2034,7 +2034,7 @@
       }

       

       public bool HasField204 {

-        get { return result.HasField204; }

+        get { return result.hasField204; }

       }

       public int Field204 {

         get { return result.Field204; }

@@ -2052,7 +2052,7 @@
       }

       

       public bool HasField205 {

-        get { return result.HasField205; }

+        get { return result.hasField205; }

       }

       public string Field205 {

         get { return result.Field205; }

@@ -2071,7 +2071,7 @@
       }

       

       public bool HasField207 {

-        get { return result.HasField207; }

+        get { return result.hasField207; }

       }

       [global::System.CLSCompliant(false)]

       public ulong Field207 {

@@ -2091,7 +2091,7 @@
       }

       

       public bool HasField300 {

-        get { return result.HasField300; }

+        get { return result.hasField300; }

       }

       [global::System.CLSCompliant(false)]

       public ulong Field300 {

@@ -2420,7 +2420,7 @@
           

           

           public bool HasField11 {

-            get { return result.HasField11; }

+            get { return result.hasField11; }

           }

           public float Field11 {

             get { return result.Field11; }

@@ -2438,7 +2438,7 @@
           }

           

           public bool HasField26 {

-            get { return result.HasField26; }

+            get { return result.hasField26; }

           }

           public float Field26 {

             get { return result.Field26; }

@@ -2456,7 +2456,7 @@
           }

           

           public bool HasField12 {

-            get { return result.HasField12; }

+            get { return result.hasField12; }

           }

           public string Field12 {

             get { return result.Field12; }

@@ -2475,7 +2475,7 @@
           }

           

           public bool HasField13 {

-            get { return result.HasField13; }

+            get { return result.hasField13; }

           }

           public string Field13 {

             get { return result.Field13; }

@@ -2522,7 +2522,7 @@
           }

           

           public bool HasField15 {

-            get { return result.HasField15; }

+            get { return result.hasField15; }

           }

           [global::System.CLSCompliant(false)]

           public ulong Field15 {

@@ -2542,7 +2542,7 @@
           }

           

           public bool HasField5 {

-            get { return result.HasField5; }

+            get { return result.hasField5; }

           }

           public int Field5 {

             get { return result.Field5; }

@@ -2560,7 +2560,7 @@
           }

           

           public bool HasField27 {

-            get { return result.HasField27; }

+            get { return result.hasField27; }

           }

           public string Field27 {

             get { return result.Field27; }

@@ -2579,7 +2579,7 @@
           }

           

           public bool HasField28 {

-            get { return result.HasField28; }

+            get { return result.hasField28; }

           }

           public int Field28 {

             get { return result.Field28; }

@@ -2597,7 +2597,7 @@
           }

           

           public bool HasField29 {

-            get { return result.HasField29; }

+            get { return result.hasField29; }

           }

           public string Field29 {

             get { return result.Field29; }

@@ -2616,7 +2616,7 @@
           }

           

           public bool HasField16 {

-            get { return result.HasField16; }

+            get { return result.hasField16; }

           }

           public string Field16 {

             get { return result.Field16; }

@@ -2689,7 +2689,7 @@
           }

           

           public bool HasField20 {

-            get { return result.HasField20; }

+            get { return result.hasField20; }

           }

           public int Field20 {

             get { return result.Field20; }

@@ -2707,7 +2707,7 @@
           }

           

           public bool HasField24 {

-            get { return result.HasField24; }

+            get { return result.hasField24; }

           }

           public string Field24 {

             get { return result.Field24; }

@@ -2726,7 +2726,7 @@
           }

           

           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 @@
           }

           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 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public string Field1 {

         get { return result.Field1; }

@@ -3180,7 +3180,7 @@
       }

       

       public bool HasField3 {

-        get { return result.HasField3; }

+        get { return result.hasField3; }

       }

       public long Field3 {

         get { return result.Field3; }

@@ -3198,7 +3198,7 @@
       }

       

       public bool HasField4 {

-        get { return result.HasField4; }

+        get { return result.hasField4; }

       }

       public long Field4 {

         get { return result.Field4; }

@@ -3216,7 +3216,7 @@
       }

       

       public bool HasField30 {

-        get { return result.HasField30; }

+        get { return result.hasField30; }

       }

       public long Field30 {

         get { return result.Field30; }

@@ -3234,7 +3234,7 @@
       }

       

       public bool HasField75 {

-        get { return result.HasField75; }

+        get { return result.hasField75; }

       }

       public bool Field75 {

         get { return result.Field75; }

@@ -3252,7 +3252,7 @@
       }

       

       public bool HasField6 {

-        get { return result.HasField6; }

+        get { return result.hasField6; }

       }

       public string Field6 {

         get { return result.Field6; }

@@ -3271,7 +3271,7 @@
       }

       

       public bool HasField2 {

-        get { return result.HasField2; }

+        get { return result.hasField2; }

       }

       public pb::ByteString Field2 {

         get { return result.Field2; }

@@ -3290,7 +3290,7 @@
       }

       

       public bool HasField21 {

-        get { return result.HasField21; }

+        get { return result.hasField21; }

       }

       public int Field21 {

         get { return result.Field21; }

@@ -3308,7 +3308,7 @@
       }

       

       public bool HasField71 {

-        get { return result.HasField71; }

+        get { return result.hasField71; }

       }

       public int Field71 {

         get { return result.Field71; }

@@ -3326,7 +3326,7 @@
       }

       

       public bool HasField25 {

-        get { return result.HasField25; }

+        get { return result.hasField25; }

       }

       public float Field25 {

         get { return result.Field25; }

@@ -3344,7 +3344,7 @@
       }

       

       public bool HasField109 {

-        get { return result.HasField109; }

+        get { return result.hasField109; }

       }

       public int Field109 {

         get { return result.Field109; }

@@ -3362,7 +3362,7 @@
       }

       

       public bool HasField210 {

-        get { return result.HasField210; }

+        get { return result.hasField210; }

       }

       public int Field210 {

         get { return result.Field210; }

@@ -3380,7 +3380,7 @@
       }

       

       public bool HasField211 {

-        get { return result.HasField211; }

+        get { return result.hasField211; }

       }

       public int Field211 {

         get { return result.Field211; }

@@ -3398,7 +3398,7 @@
       }

       

       public bool HasField212 {

-        get { return result.HasField212; }

+        get { return result.hasField212; }

       }

       public int Field212 {

         get { return result.Field212; }

@@ -3416,7 +3416,7 @@
       }

       

       public bool HasField213 {

-        get { return result.HasField213; }

+        get { return result.hasField213; }

       }

       public int Field213 {

         get { return result.Field213; }

@@ -3434,7 +3434,7 @@
       }

       

       public bool HasField216 {

-        get { return result.HasField216; }

+        get { return result.hasField216; }

       }

       public int Field216 {

         get { return result.Field216; }

@@ -3452,7 +3452,7 @@
       }

       

       public bool HasField217 {

-        get { return result.HasField217; }

+        get { return result.hasField217; }

       }

       public int Field217 {

         get { return result.Field217; }

@@ -3470,7 +3470,7 @@
       }

       

       public bool HasField218 {

-        get { return result.HasField218; }

+        get { return result.hasField218; }

       }

       public int Field218 {

         get { return result.Field218; }

@@ -3488,7 +3488,7 @@
       }

       

       public bool HasField220 {

-        get { return result.HasField220; }

+        get { return result.hasField220; }

       }

       public int Field220 {

         get { return result.Field220; }

@@ -3506,7 +3506,7 @@
       }

       

       public bool HasField221 {

-        get { return result.HasField221; }

+        get { return result.hasField221; }

       }

       public int Field221 {

         get { return result.Field221; }

@@ -3524,7 +3524,7 @@
       }

       

       public bool HasField222 {

-        get { return result.HasField222; }

+        get { return result.hasField222; }

       }

       public float Field222 {

         get { return result.Field222; }

@@ -3542,7 +3542,7 @@
       }

       

       public bool HasField63 {

-        get { return result.HasField63; }

+        get { return result.hasField63; }

       }

       public int Field63 {

         get { return result.Field63; }

@@ -3626,7 +3626,7 @@
       }

       

       public bool HasField131 {

-        get { return result.HasField131; }

+        get { return result.hasField131; }

       }

       public long Field131 {

         get { return result.Field131; }

@@ -3672,7 +3672,7 @@
       }

       

       public bool HasField129 {

-        get { return result.HasField129; }

+        get { return result.hasField129; }

       }

       public int Field129 {

         get { return result.Field129; }

@@ -3716,7 +3716,7 @@
       }

       

       public bool HasField205 {

-        get { return result.HasField205; }

+        get { return result.hasField205; }

       }

       public bool Field205 {

         get { return result.Field205; }

@@ -3734,7 +3734,7 @@
       }

       

       public bool HasField206 {

-        get { return result.HasField206; }

+        get { return result.hasField206; }

       }

       public bool Field206 {

         get { return result.Field206; }

@@ -3971,7 +3971,7 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public float Field1 {

         get { return result.Field1; }

@@ -3989,7 +3989,7 @@
       }

       

       public bool HasField2 {

-        get { return result.HasField2; }

+        get { return result.hasField2; }

       }

       public float Field2 {

         get { return result.Field2; }

@@ -4007,7 +4007,7 @@
       }

       

       public bool HasField3 {

-        get { return result.HasField3; }

+        get { return result.hasField3; }

       }

       public float Field3 {

         get { return result.Field3; }

@@ -4025,7 +4025,7 @@
       }

       

       public bool HasField4 {

-        get { return result.HasField4; }

+        get { return result.hasField4; }

       }

       public bool Field4 {

         get { return result.Field4; }

@@ -4043,7 +4043,7 @@
       }

       

       public bool HasField5 {

-        get { return result.HasField5; }

+        get { return result.hasField5; }

       }

       public bool Field5 {

         get { return result.Field5; }

@@ -4061,7 +4061,7 @@
       }

       

       public bool HasField6 {

-        get { return result.HasField6; }

+        get { return result.hasField6; }

       }

       public bool Field6 {

         get { return result.Field6; }

@@ -4079,7 +4079,7 @@
       }

       

       public bool HasField7 {

-        get { return result.HasField7; }

+        get { return result.hasField7; }

       }

       public bool Field7 {

         get { return result.Field7; }

@@ -4097,7 +4097,7 @@
       }

       

       public bool HasField8 {

-        get { return result.HasField8; }

+        get { return result.hasField8; }

       }

       public float Field8 {

         get { return result.Field8; }

@@ -4115,7 +4115,7 @@
       }

       

       public bool HasField9 {

-        get { return result.HasField9; }

+        get { return result.hasField9; }

       }

       public bool Field9 {

         get { return result.Field9; }

@@ -4133,7 +4133,7 @@
       }

       

       public bool HasField10 {

-        get { return result.HasField10; }

+        get { return result.hasField10; }

       }

       public float Field10 {

         get { return result.Field10; }

@@ -4151,7 +4151,7 @@
       }

       

       public bool HasField11 {

-        get { return result.HasField11; }

+        get { return result.hasField11; }

       }

       public long Field11 {

         get { return result.Field11; }

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
index 22bf5f2..c09ef86 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
@@ -581,127 +581,127 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasField1) {

+      if (hasField1) {

         output.WriteString(1, "field1", Field1);

       }

-      if (HasField2) {

+      if (hasField2) {

         output.WriteInt32(2, "field2", Field2);

       }

-      if (HasField3) {

+      if (hasField3) {

         output.WriteInt32(3, "field3", Field3);

       }

-      if (HasField4) {

+      if (hasField4) {

         output.WriteString(4, "field4", Field4);

       }

       if (field5_.Count > 0) {

         output.WriteArray(pbd::FieldType.Fixed64, 5, "field5", field5_);

       }

-      if (HasField6) {

+      if (hasField6) {

         output.WriteInt32(6, "field6", Field6);

       }

-      if (HasField7) {

+      if (hasField7) {

         output.WriteString(7, "field7", Field7);

       }

-      if (HasField9) {

+      if (hasField9) {

         output.WriteString(9, "field9", Field9);

       }

-      if (HasField12) {

+      if (hasField12) {

         output.WriteBool(12, "field12", Field12);

       }

-      if (HasField13) {

+      if (hasField13) {

         output.WriteBool(13, "field13", Field13);

       }

-      if (HasField14) {

+      if (hasField14) {

         output.WriteBool(14, "field14", Field14);

       }

-      if (HasField15) {

+      if (hasField15) {

         output.WriteMessage(15, "field15", Field15);

       }

-      if (HasField16) {

+      if (hasField16) {

         output.WriteInt32(16, "field16", Field16);

       }

-      if (HasField17) {

+      if (hasField17) {

         output.WriteBool(17, "field17", Field17);

       }

-      if (HasField18) {

+      if (hasField18) {

         output.WriteString(18, "field18", Field18);

       }

-      if (HasField22) {

+      if (hasField22) {

         output.WriteInt64(22, "field22", Field22);

       }

-      if (HasField23) {

+      if (hasField23) {

         output.WriteInt32(23, "field23", Field23);

       }

-      if (HasField24) {

+      if (hasField24) {

         output.WriteBool(24, "field24", Field24);

       }

-      if (HasField25) {

+      if (hasField25) {

         output.WriteInt32(25, "field25", Field25);

       }

-      if (HasField29) {

+      if (hasField29) {

         output.WriteInt32(29, "field29", Field29);

       }

-      if (HasField30) {

+      if (hasField30) {

         output.WriteBool(30, "field30", Field30);

       }

-      if (HasField59) {

+      if (hasField59) {

         output.WriteBool(59, "field59", Field59);

       }

-      if (HasField60) {

+      if (hasField60) {

         output.WriteInt32(60, "field60", Field60);

       }

-      if (HasField67) {

+      if (hasField67) {

         output.WriteInt32(67, "field67", Field67);

       }

-      if (HasField68) {

+      if (hasField68) {

         output.WriteInt32(68, "field68", Field68);

       }

-      if (HasField78) {

+      if (hasField78) {

         output.WriteBool(78, "field78", Field78);

       }

-      if (HasField80) {

+      if (hasField80) {

         output.WriteBool(80, "field80", Field80);

       }

-      if (HasField81) {

+      if (hasField81) {

         output.WriteBool(81, "field81", Field81);

       }

-      if (HasField100) {

+      if (hasField100) {

         output.WriteInt32(100, "field100", Field100);

       }

-      if (HasField101) {

+      if (hasField101) {

         output.WriteInt32(101, "field101", Field101);

       }

-      if (HasField102) {

+      if (hasField102) {

         output.WriteString(102, "field102", Field102);

       }

-      if (HasField103) {

+      if (hasField103) {

         output.WriteString(103, "field103", Field103);

       }

-      if (HasField104) {

+      if (hasField104) {

         output.WriteInt32(104, "field104", Field104);

       }

-      if (HasField128) {

+      if (hasField128) {

         output.WriteInt32(128, "field128", Field128);

       }

-      if (HasField129) {

+      if (hasField129) {

         output.WriteString(129, "field129", Field129);

       }

-      if (HasField130) {

+      if (hasField130) {

         output.WriteInt32(130, "field130", Field130);

       }

-      if (HasField131) {

+      if (hasField131) {

         output.WriteInt32(131, "field131", Field131);

       }

-      if (HasField150) {

+      if (hasField150) {

         output.WriteInt32(150, "field150", Field150);

       }

-      if (HasField271) {

+      if (hasField271) {

         output.WriteInt32(271, "field271", Field271);

       }

-      if (HasField272) {

+      if (hasField272) {

         output.WriteInt32(272, "field272", Field272);

       }

-      if (HasField280) {

+      if (hasField280) {

         output.WriteInt32(280, "field280", Field280);

       }

       UnknownFields.WriteTo(output);

@@ -714,37 +714,37 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasField1) {

+        if (hasField1) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Field1);

         }

-        if (HasField9) {

+        if (hasField9) {

           size += pb::CodedOutputStream.ComputeStringSize(9, Field9);

         }

-        if (HasField18) {

+        if (hasField18) {

           size += pb::CodedOutputStream.ComputeStringSize(18, Field18);

         }

-        if (HasField80) {

+        if (hasField80) {

           size += pb::CodedOutputStream.ComputeBoolSize(80, Field80);

         }

-        if (HasField81) {

+        if (hasField81) {

           size += pb::CodedOutputStream.ComputeBoolSize(81, Field81);

         }

-        if (HasField2) {

+        if (hasField2) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, Field2);

         }

-        if (HasField3) {

+        if (hasField3) {

           size += pb::CodedOutputStream.ComputeInt32Size(3, Field3);

         }

-        if (HasField280) {

+        if (hasField280) {

           size += pb::CodedOutputStream.ComputeInt32Size(280, Field280);

         }

-        if (HasField6) {

+        if (hasField6) {

           size += pb::CodedOutputStream.ComputeInt32Size(6, Field6);

         }

-        if (HasField22) {

+        if (hasField22) {

           size += pb::CodedOutputStream.ComputeInt64Size(22, Field22);

         }

-        if (HasField4) {

+        if (hasField4) {

           size += pb::CodedOutputStream.ComputeStringSize(4, Field4);

         }

         {

@@ -753,91 +753,91 @@
           size += dataSize;

           size += 1 * field5_.Count;

         }

-        if (HasField59) {

+        if (hasField59) {

           size += pb::CodedOutputStream.ComputeBoolSize(59, Field59);

         }

-        if (HasField7) {

+        if (hasField7) {

           size += pb::CodedOutputStream.ComputeStringSize(7, Field7);

         }

-        if (HasField16) {

+        if (hasField16) {

           size += pb::CodedOutputStream.ComputeInt32Size(16, Field16);

         }

-        if (HasField130) {

+        if (hasField130) {

           size += pb::CodedOutputStream.ComputeInt32Size(130, Field130);

         }

-        if (HasField12) {

+        if (hasField12) {

           size += pb::CodedOutputStream.ComputeBoolSize(12, Field12);

         }

-        if (HasField17) {

+        if (hasField17) {

           size += pb::CodedOutputStream.ComputeBoolSize(17, Field17);

         }

-        if (HasField13) {

+        if (hasField13) {

           size += pb::CodedOutputStream.ComputeBoolSize(13, Field13);

         }

-        if (HasField14) {

+        if (hasField14) {

           size += pb::CodedOutputStream.ComputeBoolSize(14, Field14);

         }

-        if (HasField104) {

+        if (hasField104) {

           size += pb::CodedOutputStream.ComputeInt32Size(104, Field104);

         }

-        if (HasField100) {

+        if (hasField100) {

           size += pb::CodedOutputStream.ComputeInt32Size(100, Field100);

         }

-        if (HasField101) {

+        if (hasField101) {

           size += pb::CodedOutputStream.ComputeInt32Size(101, Field101);

         }

-        if (HasField102) {

+        if (hasField102) {

           size += pb::CodedOutputStream.ComputeStringSize(102, Field102);

         }

-        if (HasField103) {

+        if (hasField103) {

           size += pb::CodedOutputStream.ComputeStringSize(103, Field103);

         }

-        if (HasField29) {

+        if (hasField29) {

           size += pb::CodedOutputStream.ComputeInt32Size(29, Field29);

         }

-        if (HasField30) {

+        if (hasField30) {

           size += pb::CodedOutputStream.ComputeBoolSize(30, Field30);

         }

-        if (HasField60) {

+        if (hasField60) {

           size += pb::CodedOutputStream.ComputeInt32Size(60, Field60);

         }

-        if (HasField271) {

+        if (hasField271) {

           size += pb::CodedOutputStream.ComputeInt32Size(271, Field271);

         }

-        if (HasField272) {

+        if (hasField272) {

           size += pb::CodedOutputStream.ComputeInt32Size(272, Field272);

         }

-        if (HasField150) {

+        if (hasField150) {

           size += pb::CodedOutputStream.ComputeInt32Size(150, Field150);

         }

-        if (HasField23) {

+        if (hasField23) {

           size += pb::CodedOutputStream.ComputeInt32Size(23, Field23);

         }

-        if (HasField24) {

+        if (hasField24) {

           size += pb::CodedOutputStream.ComputeBoolSize(24, Field24);

         }

-        if (HasField25) {

+        if (hasField25) {

           size += pb::CodedOutputStream.ComputeInt32Size(25, Field25);

         }

-        if (HasField15) {

+        if (hasField15) {

           size += pb::CodedOutputStream.ComputeMessageSize(15, Field15);

         }

-        if (HasField78) {

+        if (hasField78) {

           size += pb::CodedOutputStream.ComputeBoolSize(78, Field78);

         }

-        if (HasField67) {

+        if (hasField67) {

           size += pb::CodedOutputStream.ComputeInt32Size(67, Field67);

         }

-        if (HasField68) {

+        if (hasField68) {

           size += pb::CodedOutputStream.ComputeInt32Size(68, Field68);

         }

-        if (HasField128) {

+        if (hasField128) {

           size += pb::CodedOutputStream.ComputeInt32Size(128, Field128);

         }

-        if (HasField129) {

+        if (hasField129) {

           size += pb::CodedOutputStream.ComputeStringSize(129, Field129);

         }

-        if (HasField131) {

+        if (hasField131) {

           size += pb::CodedOutputStream.ComputeInt32Size(131, Field131);

         }

         size += UnknownFields.SerializedSize;

@@ -1136,7 +1136,7 @@
             }

             case 122: {

               global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.CreateBuilder();

-              if (HasField15) {

+              if (result.hasField15) {

                 subBuilder.MergeFrom(Field15);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -1270,7 +1270,7 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public string Field1 {

         get { return result.Field1; }

@@ -1289,7 +1289,7 @@
       }

       

       public bool HasField9 {

-        get { return result.HasField9; }

+        get { return result.hasField9; }

       }

       public string Field9 {

         get { return result.Field9; }

@@ -1308,7 +1308,7 @@
       }

       

       public bool HasField18 {

-        get { return result.HasField18; }

+        get { return result.hasField18; }

       }

       public string Field18 {

         get { return result.Field18; }

@@ -1327,7 +1327,7 @@
       }

       

       public bool HasField80 {

-        get { return result.HasField80; }

+        get { return result.hasField80; }

       }

       public bool Field80 {

         get { return result.Field80; }

@@ -1345,7 +1345,7 @@
       }

       

       public bool HasField81 {

-        get { return result.HasField81; }

+        get { return result.hasField81; }

       }

       public bool Field81 {

         get { return result.Field81; }

@@ -1363,7 +1363,7 @@
       }

       

       public bool HasField2 {

-        get { return result.HasField2; }

+        get { return result.hasField2; }

       }

       public int Field2 {

         get { return result.Field2; }

@@ -1381,7 +1381,7 @@
       }

       

       public bool HasField3 {

-        get { return result.HasField3; }

+        get { return result.hasField3; }

       }

       public int Field3 {

         get { return result.Field3; }

@@ -1399,7 +1399,7 @@
       }

       

       public bool HasField280 {

-        get { return result.HasField280; }

+        get { return result.hasField280; }

       }

       public int Field280 {

         get { return result.Field280; }

@@ -1417,7 +1417,7 @@
       }

       

       public bool HasField6 {

-        get { return result.HasField6; }

+        get { return result.hasField6; }

       }

       public int Field6 {

         get { return result.Field6; }

@@ -1435,7 +1435,7 @@
       }

       

       public bool HasField22 {

-        get { return result.HasField22; }

+        get { return result.hasField22; }

       }

       public long Field22 {

         get { return result.Field22; }

@@ -1453,7 +1453,7 @@
       }

       

       public bool HasField4 {

-        get { return result.HasField4; }

+        get { return result.hasField4; }

       }

       public string Field4 {

         get { return result.Field4; }

@@ -1503,7 +1503,7 @@
       }

       

       public bool HasField59 {

-        get { return result.HasField59; }

+        get { return result.hasField59; }

       }

       public bool Field59 {

         get { return result.Field59; }

@@ -1521,7 +1521,7 @@
       }

       

       public bool HasField7 {

-        get { return result.HasField7; }

+        get { return result.hasField7; }

       }

       public string Field7 {

         get { return result.Field7; }

@@ -1540,7 +1540,7 @@
       }

       

       public bool HasField16 {

-        get { return result.HasField16; }

+        get { return result.hasField16; }

       }

       public int Field16 {

         get { return result.Field16; }

@@ -1558,7 +1558,7 @@
       }

       

       public bool HasField130 {

-        get { return result.HasField130; }

+        get { return result.hasField130; }

       }

       public int Field130 {

         get { return result.Field130; }

@@ -1576,7 +1576,7 @@
       }

       

       public bool HasField12 {

-        get { return result.HasField12; }

+        get { return result.hasField12; }

       }

       public bool Field12 {

         get { return result.Field12; }

@@ -1594,7 +1594,7 @@
       }

       

       public bool HasField17 {

-        get { return result.HasField17; }

+        get { return result.hasField17; }

       }

       public bool Field17 {

         get { return result.Field17; }

@@ -1612,7 +1612,7 @@
       }

       

       public bool HasField13 {

-        get { return result.HasField13; }

+        get { return result.hasField13; }

       }

       public bool Field13 {

         get { return result.Field13; }

@@ -1630,7 +1630,7 @@
       }

       

       public bool HasField14 {

-        get { return result.HasField14; }

+        get { return result.hasField14; }

       }

       public bool Field14 {

         get { return result.Field14; }

@@ -1648,7 +1648,7 @@
       }

       

       public bool HasField104 {

-        get { return result.HasField104; }

+        get { return result.hasField104; }

       }

       public int Field104 {

         get { return result.Field104; }

@@ -1666,7 +1666,7 @@
       }

       

       public bool HasField100 {

-        get { return result.HasField100; }

+        get { return result.hasField100; }

       }

       public int Field100 {

         get { return result.Field100; }

@@ -1684,7 +1684,7 @@
       }

       

       public bool HasField101 {

-        get { return result.HasField101; }

+        get { return result.hasField101; }

       }

       public int Field101 {

         get { return result.Field101; }

@@ -1702,7 +1702,7 @@
       }

       

       public bool HasField102 {

-        get { return result.HasField102; }

+        get { return result.hasField102; }

       }

       public string Field102 {

         get { return result.Field102; }

@@ -1721,7 +1721,7 @@
       }

       

       public bool HasField103 {

-        get { return result.HasField103; }

+        get { return result.hasField103; }

       }

       public string Field103 {

         get { return result.Field103; }

@@ -1740,7 +1740,7 @@
       }

       

       public bool HasField29 {

-        get { return result.HasField29; }

+        get { return result.hasField29; }

       }

       public int Field29 {

         get { return result.Field29; }

@@ -1758,7 +1758,7 @@
       }

       

       public bool HasField30 {

-        get { return result.HasField30; }

+        get { return result.hasField30; }

       }

       public bool Field30 {

         get { return result.Field30; }

@@ -1776,7 +1776,7 @@
       }

       

       public bool HasField60 {

-        get { return result.HasField60; }

+        get { return result.hasField60; }

       }

       public int Field60 {

         get { return result.Field60; }

@@ -1794,7 +1794,7 @@
       }

       

       public bool HasField271 {

-        get { return result.HasField271; }

+        get { return result.hasField271; }

       }

       public int Field271 {

         get { return result.Field271; }

@@ -1812,7 +1812,7 @@
       }

       

       public bool HasField272 {

-        get { return result.HasField272; }

+        get { return result.hasField272; }

       }

       public int Field272 {

         get { return result.Field272; }

@@ -1830,7 +1830,7 @@
       }

       

       public bool HasField150 {

-        get { return result.HasField150; }

+        get { return result.hasField150; }

       }

       public int Field150 {

         get { return result.Field150; }

@@ -1848,7 +1848,7 @@
       }

       

       public bool HasField23 {

-        get { return result.HasField23; }

+        get { return result.hasField23; }

       }

       public int Field23 {

         get { return result.Field23; }

@@ -1866,7 +1866,7 @@
       }

       

       public bool HasField24 {

-        get { return result.HasField24; }

+        get { return result.hasField24; }

       }

       public bool Field24 {

         get { return result.Field24; }

@@ -1884,7 +1884,7 @@
       }

       

       public bool HasField25 {

-        get { return result.HasField25; }

+        get { return result.hasField25; }

       }

       public int Field25 {

         get { return result.Field25; }

@@ -1902,7 +1902,7 @@
       }

       

       public bool HasField15 {

-       get { return result.HasField15; }

+       get { return result.hasField15; }

       }

       public global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage Field15 {

         get { return result.Field15; }

@@ -1922,7 +1922,7 @@
       }

       public Builder MergeField15(global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasField15 &&

+        if (result.hasField15 &&

             result.field15_ != global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance) {

             result.field15_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.CreateBuilder(result.field15_).MergeFrom(value).BuildPartial();

         } else {

@@ -1938,7 +1938,7 @@
       }

       

       public bool HasField78 {

-        get { return result.HasField78; }

+        get { return result.hasField78; }

       }

       public bool Field78 {

         get { return result.Field78; }

@@ -1956,7 +1956,7 @@
       }

       

       public bool HasField67 {

-        get { return result.HasField67; }

+        get { return result.hasField67; }

       }

       public int Field67 {

         get { return result.Field67; }

@@ -1974,7 +1974,7 @@
       }

       

       public bool HasField68 {

-        get { return result.HasField68; }

+        get { return result.hasField68; }

       }

       public int Field68 {

         get { return result.Field68; }

@@ -1992,7 +1992,7 @@
       }

       

       public bool HasField128 {

-        get { return result.HasField128; }

+        get { return result.hasField128; }

       }

       public int Field128 {

         get { return result.Field128; }

@@ -2010,7 +2010,7 @@
       }

       

       public bool HasField129 {

-        get { return result.HasField129; }

+        get { return result.hasField129; }

       }

       public string Field129 {

         get { return result.Field129; }

@@ -2029,7 +2029,7 @@
       }

       

       public bool HasField131 {

-        get { return result.HasField131; }

+        get { return result.hasField131; }

       }

       public int Field131 {

         get { return result.Field131; }

@@ -2288,64 +2288,64 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasField1) {

+      if (hasField1) {

         output.WriteInt32(1, "field1", Field1);

       }

-      if (HasField2) {

+      if (hasField2) {

         output.WriteInt32(2, "field2", Field2);

       }

-      if (HasField3) {

+      if (hasField3) {

         output.WriteInt32(3, "field3", Field3);

       }

-      if (HasField12) {

+      if (hasField12) {

         output.WriteBool(12, "field12", Field12);

       }

-      if (HasField13) {

+      if (hasField13) {

         output.WriteInt64(13, "field13", Field13);

       }

-      if (HasField14) {

+      if (hasField14) {

         output.WriteInt64(14, "field14", Field14);

       }

-      if (HasField15) {

+      if (hasField15) {

         output.WriteString(15, "field15", Field15);

       }

-      if (HasField16) {

+      if (hasField16) {

         output.WriteInt32(16, "field16", Field16);

       }

-      if (HasField19) {

+      if (hasField19) {

         output.WriteInt32(19, "field19", Field19);

       }

-      if (HasField20) {

+      if (hasField20) {

         output.WriteBool(20, "field20", Field20);

       }

-      if (HasField21) {

+      if (hasField21) {

         output.WriteFixed64(21, "field21", Field21);

       }

-      if (HasField22) {

+      if (hasField22) {

         output.WriteInt32(22, "field22", Field22);

       }

-      if (HasField23) {

+      if (hasField23) {

         output.WriteBool(23, "field23", Field23);

       }

-      if (HasField28) {

+      if (hasField28) {

         output.WriteBool(28, "field28", Field28);

       }

-      if (HasField203) {

+      if (hasField203) {

         output.WriteFixed32(203, "field203", Field203);

       }

-      if (HasField204) {

+      if (hasField204) {

         output.WriteInt32(204, "field204", Field204);

       }

-      if (HasField205) {

+      if (hasField205) {

         output.WriteString(205, "field205", Field205);

       }

-      if (HasField206) {

+      if (hasField206) {

         output.WriteBool(206, "field206", Field206);

       }

-      if (HasField207) {

+      if (hasField207) {

         output.WriteUInt64(207, "field207", Field207);

       }

-      if (HasField300) {

+      if (hasField300) {

         output.WriteUInt64(300, "field300", Field300);

       }

       UnknownFields.WriteTo(output);

@@ -2358,64 +2358,64 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasField1) {

+        if (hasField1) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, Field1);

         }

-        if (HasField2) {

+        if (hasField2) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, Field2);

         }

-        if (HasField3) {

+        if (hasField3) {

           size += pb::CodedOutputStream.ComputeInt32Size(3, Field3);

         }

-        if (HasField15) {

+        if (hasField15) {

           size += pb::CodedOutputStream.ComputeStringSize(15, Field15);

         }

-        if (HasField12) {

+        if (hasField12) {

           size += pb::CodedOutputStream.ComputeBoolSize(12, Field12);

         }

-        if (HasField13) {

+        if (hasField13) {

           size += pb::CodedOutputStream.ComputeInt64Size(13, Field13);

         }

-        if (HasField14) {

+        if (hasField14) {

           size += pb::CodedOutputStream.ComputeInt64Size(14, Field14);

         }

-        if (HasField16) {

+        if (hasField16) {

           size += pb::CodedOutputStream.ComputeInt32Size(16, Field16);

         }

-        if (HasField19) {

+        if (hasField19) {

           size += pb::CodedOutputStream.ComputeInt32Size(19, Field19);

         }

-        if (HasField20) {

+        if (hasField20) {

           size += pb::CodedOutputStream.ComputeBoolSize(20, Field20);

         }

-        if (HasField28) {

+        if (hasField28) {

           size += pb::CodedOutputStream.ComputeBoolSize(28, Field28);

         }

-        if (HasField21) {

+        if (hasField21) {

           size += pb::CodedOutputStream.ComputeFixed64Size(21, Field21);

         }

-        if (HasField22) {

+        if (hasField22) {

           size += pb::CodedOutputStream.ComputeInt32Size(22, Field22);

         }

-        if (HasField23) {

+        if (hasField23) {

           size += pb::CodedOutputStream.ComputeBoolSize(23, Field23);

         }

-        if (HasField206) {

+        if (hasField206) {

           size += pb::CodedOutputStream.ComputeBoolSize(206, Field206);

         }

-        if (HasField203) {

+        if (hasField203) {

           size += pb::CodedOutputStream.ComputeFixed32Size(203, Field203);

         }

-        if (HasField204) {

+        if (hasField204) {

           size += pb::CodedOutputStream.ComputeInt32Size(204, Field204);

         }

-        if (HasField205) {

+        if (hasField205) {

           size += pb::CodedOutputStream.ComputeStringSize(205, Field205);

         }

-        if (HasField207) {

+        if (hasField207) {

           size += pb::CodedOutputStream.ComputeUInt64Size(207, Field207);

         }

-        if (HasField300) {

+        if (hasField300) {

           size += pb::CodedOutputStream.ComputeUInt64Size(300, Field300);

         }

         size += UnknownFields.SerializedSize;

@@ -2694,7 +2694,7 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public int Field1 {

         get { return result.Field1; }

@@ -2712,7 +2712,7 @@
       }

       

       public bool HasField2 {

-        get { return result.HasField2; }

+        get { return result.hasField2; }

       }

       public int Field2 {

         get { return result.Field2; }

@@ -2730,7 +2730,7 @@
       }

       

       public bool HasField3 {

-        get { return result.HasField3; }

+        get { return result.hasField3; }

       }

       public int Field3 {

         get { return result.Field3; }

@@ -2748,7 +2748,7 @@
       }

       

       public bool HasField15 {

-        get { return result.HasField15; }

+        get { return result.hasField15; }

       }

       public string Field15 {

         get { return result.Field15; }

@@ -2767,7 +2767,7 @@
       }

       

       public bool HasField12 {

-        get { return result.HasField12; }

+        get { return result.hasField12; }

       }

       public bool Field12 {

         get { return result.Field12; }

@@ -2785,7 +2785,7 @@
       }

       

       public bool HasField13 {

-        get { return result.HasField13; }

+        get { return result.hasField13; }

       }

       public long Field13 {

         get { return result.Field13; }

@@ -2803,7 +2803,7 @@
       }

       

       public bool HasField14 {

-        get { return result.HasField14; }

+        get { return result.hasField14; }

       }

       public long Field14 {

         get { return result.Field14; }

@@ -2821,7 +2821,7 @@
       }

       

       public bool HasField16 {

-        get { return result.HasField16; }

+        get { return result.hasField16; }

       }

       public int Field16 {

         get { return result.Field16; }

@@ -2839,7 +2839,7 @@
       }

       

       public bool HasField19 {

-        get { return result.HasField19; }

+        get { return result.hasField19; }

       }

       public int Field19 {

         get { return result.Field19; }

@@ -2857,7 +2857,7 @@
       }

       

       public bool HasField20 {

-        get { return result.HasField20; }

+        get { return result.hasField20; }

       }

       public bool Field20 {

         get { return result.Field20; }

@@ -2875,7 +2875,7 @@
       }

       

       public bool HasField28 {

-        get { return result.HasField28; }

+        get { return result.hasField28; }

       }

       public bool Field28 {

         get { return result.Field28; }

@@ -2893,7 +2893,7 @@
       }

       

       public bool HasField21 {

-        get { return result.HasField21; }

+        get { return result.hasField21; }

       }

       [global::System.CLSCompliant(false)]

       public ulong Field21 {

@@ -2913,7 +2913,7 @@
       }

       

       public bool HasField22 {

-        get { return result.HasField22; }

+        get { return result.hasField22; }

       }

       public int Field22 {

         get { return result.Field22; }

@@ -2931,7 +2931,7 @@
       }

       

       public bool HasField23 {

-        get { return result.HasField23; }

+        get { return result.hasField23; }

       }

       public bool Field23 {

         get { return result.Field23; }

@@ -2949,7 +2949,7 @@
       }

       

       public bool HasField206 {

-        get { return result.HasField206; }

+        get { return result.hasField206; }

       }

       public bool Field206 {

         get { return result.Field206; }

@@ -2967,7 +2967,7 @@
       }

       

       public bool HasField203 {

-        get { return result.HasField203; }

+        get { return result.hasField203; }

       }

       [global::System.CLSCompliant(false)]

       public uint Field203 {

@@ -2987,7 +2987,7 @@
       }

       

       public bool HasField204 {

-        get { return result.HasField204; }

+        get { return result.hasField204; }

       }

       public int Field204 {

         get { return result.Field204; }

@@ -3005,7 +3005,7 @@
       }

       

       public bool HasField205 {

-        get { return result.HasField205; }

+        get { return result.hasField205; }

       }

       public string Field205 {

         get { return result.Field205; }

@@ -3024,7 +3024,7 @@
       }

       

       public bool HasField207 {

-        get { return result.HasField207; }

+        get { return result.hasField207; }

       }

       [global::System.CLSCompliant(false)]

       public ulong Field207 {

@@ -3044,7 +3044,7 @@
       }

       

       public bool HasField300 {

-        get { return result.HasField300; }

+        get { return result.hasField300; }

       }

       [global::System.CLSCompliant(false)]

       public ulong Field300 {

@@ -3300,49 +3300,49 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasField5) {

+          if (hasField5) {

             output.WriteInt32(5, "field5", Field5);

           }

-          if (HasField11) {

+          if (hasField11) {

             output.WriteFloat(11, "field11", Field11);

           }

-          if (HasField12) {

+          if (hasField12) {

             output.WriteString(12, "field12", Field12);

           }

-          if (HasField13) {

+          if (hasField13) {

             output.WriteString(13, "field13", Field13);

           }

           if (field14_.Count > 0) {

             output.WriteArray(pbd::FieldType.String, 14, "field14", field14_);

           }

-          if (HasField15) {

+          if (hasField15) {

             output.WriteUInt64(15, "field15", Field15);

           }

-          if (HasField16) {

+          if (hasField16) {

             output.WriteString(16, "field16", Field16);

           }

-          if (HasField20) {

+          if (hasField20) {

             output.WriteInt32(20, "field20", Field20);

           }

           if (field22_.Count > 0) {

             output.WriteArray(pbd::FieldType.String, 22, "field22", field22_);

           }

-          if (HasField24) {

+          if (hasField24) {

             output.WriteString(24, "field24", Field24);

           }

-          if (HasField26) {

+          if (hasField26) {

             output.WriteFloat(26, "field26", Field26);

           }

-          if (HasField27) {

+          if (hasField27) {

             output.WriteString(27, "field27", Field27);

           }

-          if (HasField28) {

+          if (hasField28) {

             output.WriteInt32(28, "field28", Field28);

           }

-          if (HasField29) {

+          if (hasField29) {

             output.WriteString(29, "field29", Field29);

           }

-          if (HasField31) {

+          if (hasField31) {

             output.WriteMessage(31, "field31", Field31);

           }

           if (field73_.Count > 0) {

@@ -3358,16 +3358,16 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasField11) {

+            if (hasField11) {

               size += pb::CodedOutputStream.ComputeFloatSize(11, Field11);

             }

-            if (HasField26) {

+            if (hasField26) {

               size += pb::CodedOutputStream.ComputeFloatSize(26, Field26);

             }

-            if (HasField12) {

+            if (hasField12) {

               size += pb::CodedOutputStream.ComputeStringSize(12, Field12);

             }

-            if (HasField13) {

+            if (hasField13) {

               size += pb::CodedOutputStream.ComputeStringSize(13, Field13);

             }

             {

@@ -3378,22 +3378,22 @@
               size += dataSize;

               size += 1 * field14_.Count;

             }

-            if (HasField15) {

+            if (hasField15) {

               size += pb::CodedOutputStream.ComputeUInt64Size(15, Field15);

             }

-            if (HasField5) {

+            if (hasField5) {

               size += pb::CodedOutputStream.ComputeInt32Size(5, Field5);

             }

-            if (HasField27) {

+            if (hasField27) {

               size += pb::CodedOutputStream.ComputeStringSize(27, Field27);

             }

-            if (HasField28) {

+            if (hasField28) {

               size += pb::CodedOutputStream.ComputeInt32Size(28, Field28);

             }

-            if (HasField29) {

+            if (hasField29) {

               size += pb::CodedOutputStream.ComputeStringSize(29, Field29);

             }

-            if (HasField16) {

+            if (hasField16) {

               size += pb::CodedOutputStream.ComputeStringSize(16, Field16);

             }

             {

@@ -3412,13 +3412,13 @@
               size += dataSize;

               size += 2 * field73_.Count;

             }

-            if (HasField20) {

+            if (hasField20) {

               size += pb::CodedOutputStream.ComputeInt32Size(20, Field20);

             }

-            if (HasField24) {

+            if (hasField24) {

               size += pb::CodedOutputStream.ComputeStringSize(24, Field24);

             }

-            if (HasField31) {

+            if (hasField31) {

               size += pb::CodedOutputStream.ComputeMessageSize(31, Field31);

             }

             size += UnknownFields.SerializedSize;

@@ -3655,7 +3655,7 @@
                 }

                 case 250: {

                   global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.CreateBuilder();

-                  if (HasField31) {

+                  if (result.hasField31) {

                     subBuilder.MergeFrom(Field31);

                   }

                   input.ReadMessage(subBuilder, extensionRegistry);

@@ -3678,7 +3678,7 @@
           

           

           public bool HasField11 {

-            get { return result.HasField11; }

+            get { return result.hasField11; }

           }

           public float Field11 {

             get { return result.Field11; }

@@ -3696,7 +3696,7 @@
           }

           

           public bool HasField26 {

-            get { return result.HasField26; }

+            get { return result.hasField26; }

           }

           public float Field26 {

             get { return result.Field26; }

@@ -3714,7 +3714,7 @@
           }

           

           public bool HasField12 {

-            get { return result.HasField12; }

+            get { return result.hasField12; }

           }

           public string Field12 {

             get { return result.Field12; }

@@ -3733,7 +3733,7 @@
           }

           

           public bool HasField13 {

-            get { return result.HasField13; }

+            get { return result.hasField13; }

           }

           public string Field13 {

             get { return result.Field13; }

@@ -3780,7 +3780,7 @@
           }

           

           public bool HasField15 {

-            get { return result.HasField15; }

+            get { return result.hasField15; }

           }

           [global::System.CLSCompliant(false)]

           public ulong Field15 {

@@ -3800,7 +3800,7 @@
           }

           

           public bool HasField5 {

-            get { return result.HasField5; }

+            get { return result.hasField5; }

           }

           public int Field5 {

             get { return result.Field5; }

@@ -3818,7 +3818,7 @@
           }

           

           public bool HasField27 {

-            get { return result.HasField27; }

+            get { return result.hasField27; }

           }

           public string Field27 {

             get { return result.Field27; }

@@ -3837,7 +3837,7 @@
           }

           

           public bool HasField28 {

-            get { return result.HasField28; }

+            get { return result.hasField28; }

           }

           public int Field28 {

             get { return result.Field28; }

@@ -3855,7 +3855,7 @@
           }

           

           public bool HasField29 {

-            get { return result.HasField29; }

+            get { return result.hasField29; }

           }

           public string Field29 {

             get { return result.Field29; }

@@ -3874,7 +3874,7 @@
           }

           

           public bool HasField16 {

-            get { return result.HasField16; }

+            get { return result.hasField16; }

           }

           public string Field16 {

             get { return result.Field16; }

@@ -3947,7 +3947,7 @@
           }

           

           public bool HasField20 {

-            get { return result.HasField20; }

+            get { return result.hasField20; }

           }

           public int Field20 {

             get { return result.Field20; }

@@ -3965,7 +3965,7 @@
           }

           

           public bool HasField24 {

-            get { return result.HasField24; }

+            get { return result.hasField24; }

           }

           public string Field24 {

             get { return result.Field24; }

@@ -3984,7 +3984,7 @@
           }

           

           public bool HasField31 {

-           get { return result.HasField31; }

+           get { return result.hasField31; }

           }

           public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage Field31 {

             get { return result.Field31; }

@@ -4004,7 +4004,7 @@
           }

           public Builder MergeField31(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage value) {

             pb::ThrowHelper.ThrowIfNull(value, "value");

-            if (result.HasField31 &&

+            if (result.hasField31 &&

                 result.field31_ != global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance) {

                 result.field31_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.CreateBuilder(result.field31_).MergeFrom(value).BuildPartial();

             } else {

@@ -4343,43 +4343,43 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasField1) {

+      if (hasField1) {

         output.WriteString(1, "field1", Field1);

       }

-      if (HasField2) {

+      if (hasField2) {

         output.WriteBytes(2, "field2", Field2);

       }

-      if (HasField3) {

+      if (hasField3) {

         output.WriteInt64(3, "field3", Field3);

       }

-      if (HasField4) {

+      if (hasField4) {

         output.WriteInt64(4, "field4", Field4);

       }

-      if (HasField6) {

+      if (hasField6) {

         output.WriteString(6, "field6", Field6);

       }

       if (group1_.Count > 0) {

         output.WriteArray(pbd::FieldType.Group, 10, "group1", group1_);

       }

-      if (HasField21) {

+      if (hasField21) {

         output.WriteInt32(21, "field21", Field21);

       }

-      if (HasField25) {

+      if (hasField25) {

         output.WriteFloat(25, "field25", Field25);

       }

-      if (HasField30) {

+      if (hasField30) {

         output.WriteInt64(30, "field30", Field30);

       }

-      if (HasField63) {

+      if (hasField63) {

         output.WriteInt32(63, "field63", Field63);

       }

-      if (HasField71) {

+      if (hasField71) {

         output.WriteInt32(71, "field71", Field71);

       }

-      if (HasField75) {

+      if (hasField75) {

         output.WriteBool(75, "field75", Field75);

       }

-      if (HasField109) {

+      if (hasField109) {

         output.WriteInt32(109, "field109", Field109);

       }

       if (field127_.Count > 0) {

@@ -4388,49 +4388,49 @@
       if (field128_.Count > 0) {

         output.WriteArray(pbd::FieldType.String, 128, "field128", field128_);

       }

-      if (HasField129) {

+      if (hasField129) {

         output.WriteInt32(129, "field129", Field129);

       }

       if (field130_.Count > 0) {

         output.WriteArray(pbd::FieldType.Int64, 130, "field130", field130_);

       }

-      if (HasField131) {

+      if (hasField131) {

         output.WriteInt64(131, "field131", Field131);

       }

-      if (HasField205) {

+      if (hasField205) {

         output.WriteBool(205, "field205", Field205);

       }

-      if (HasField206) {

+      if (hasField206) {

         output.WriteBool(206, "field206", Field206);

       }

-      if (HasField210) {

+      if (hasField210) {

         output.WriteInt32(210, "field210", Field210);

       }

-      if (HasField211) {

+      if (hasField211) {

         output.WriteInt32(211, "field211", Field211);

       }

-      if (HasField212) {

+      if (hasField212) {

         output.WriteInt32(212, "field212", Field212);

       }

-      if (HasField213) {

+      if (hasField213) {

         output.WriteInt32(213, "field213", Field213);

       }

-      if (HasField216) {

+      if (hasField216) {

         output.WriteInt32(216, "field216", Field216);

       }

-      if (HasField217) {

+      if (hasField217) {

         output.WriteInt32(217, "field217", Field217);

       }

-      if (HasField218) {

+      if (hasField218) {

         output.WriteInt32(218, "field218", Field218);

       }

-      if (HasField220) {

+      if (hasField220) {

         output.WriteInt32(220, "field220", Field220);

       }

-      if (HasField221) {

+      if (hasField221) {

         output.WriteInt32(221, "field221", Field221);

       }

-      if (HasField222) {

+      if (hasField222) {

         output.WriteFloat(222, "field222", Field222);

       }

       UnknownFields.WriteTo(output);

@@ -4443,70 +4443,70 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasField1) {

+        if (hasField1) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Field1);

         }

-        if (HasField3) {

+        if (hasField3) {

           size += pb::CodedOutputStream.ComputeInt64Size(3, Field3);

         }

-        if (HasField4) {

+        if (hasField4) {

           size += pb::CodedOutputStream.ComputeInt64Size(4, Field4);

         }

-        if (HasField30) {

+        if (hasField30) {

           size += pb::CodedOutputStream.ComputeInt64Size(30, Field30);

         }

-        if (HasField75) {

+        if (hasField75) {

           size += pb::CodedOutputStream.ComputeBoolSize(75, Field75);

         }

-        if (HasField6) {

+        if (hasField6) {

           size += pb::CodedOutputStream.ComputeStringSize(6, Field6);

         }

-        if (HasField2) {

+        if (hasField2) {

           size += pb::CodedOutputStream.ComputeBytesSize(2, Field2);

         }

-        if (HasField21) {

+        if (hasField21) {

           size += pb::CodedOutputStream.ComputeInt32Size(21, Field21);

         }

-        if (HasField71) {

+        if (hasField71) {

           size += pb::CodedOutputStream.ComputeInt32Size(71, Field71);

         }

-        if (HasField25) {

+        if (hasField25) {

           size += pb::CodedOutputStream.ComputeFloatSize(25, Field25);

         }

-        if (HasField109) {

+        if (hasField109) {

           size += pb::CodedOutputStream.ComputeInt32Size(109, Field109);

         }

-        if (HasField210) {

+        if (hasField210) {

           size += pb::CodedOutputStream.ComputeInt32Size(210, Field210);

         }

-        if (HasField211) {

+        if (hasField211) {

           size += pb::CodedOutputStream.ComputeInt32Size(211, Field211);

         }

-        if (HasField212) {

+        if (hasField212) {

           size += pb::CodedOutputStream.ComputeInt32Size(212, Field212);

         }

-        if (HasField213) {

+        if (hasField213) {

           size += pb::CodedOutputStream.ComputeInt32Size(213, Field213);

         }

-        if (HasField216) {

+        if (hasField216) {

           size += pb::CodedOutputStream.ComputeInt32Size(216, Field216);

         }

-        if (HasField217) {

+        if (hasField217) {

           size += pb::CodedOutputStream.ComputeInt32Size(217, Field217);

         }

-        if (HasField218) {

+        if (hasField218) {

           size += pb::CodedOutputStream.ComputeInt32Size(218, Field218);

         }

-        if (HasField220) {

+        if (hasField220) {

           size += pb::CodedOutputStream.ComputeInt32Size(220, Field220);

         }

-        if (HasField221) {

+        if (hasField221) {

           size += pb::CodedOutputStream.ComputeInt32Size(221, Field221);

         }

-        if (HasField222) {

+        if (hasField222) {

           size += pb::CodedOutputStream.ComputeFloatSize(222, Field222);

         }

-        if (HasField63) {

+        if (hasField63) {

           size += pb::CodedOutputStream.ComputeInt32Size(63, Field63);

         }

         foreach (global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 element in Group1List) {

@@ -4520,7 +4520,7 @@
           size += dataSize;

           size += 2 * field128_.Count;

         }

-        if (HasField131) {

+        if (hasField131) {

           size += pb::CodedOutputStream.ComputeInt64Size(131, Field131);

         }

         {

@@ -4531,7 +4531,7 @@
           size += dataSize;

           size += 2 * field127_.Count;

         }

-        if (HasField129) {

+        if (hasField129) {

           size += pb::CodedOutputStream.ComputeInt32Size(129, Field129);

         }

         {

@@ -4542,10 +4542,10 @@
           size += dataSize;

           size += 2 * field130_.Count;

         }

-        if (HasField205) {

+        if (hasField205) {

           size += pb::CodedOutputStream.ComputeBoolSize(205, Field205);

         }

-        if (HasField206) {

+        if (hasField206) {

           size += pb::CodedOutputStream.ComputeBoolSize(206, Field206);

         }

         size += UnknownFields.SerializedSize;

@@ -4899,7 +4899,7 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public string Field1 {

         get { return result.Field1; }

@@ -4918,7 +4918,7 @@
       }

       

       public bool HasField3 {

-        get { return result.HasField3; }

+        get { return result.hasField3; }

       }

       public long Field3 {

         get { return result.Field3; }

@@ -4936,7 +4936,7 @@
       }

       

       public bool HasField4 {

-        get { return result.HasField4; }

+        get { return result.hasField4; }

       }

       public long Field4 {

         get { return result.Field4; }

@@ -4954,7 +4954,7 @@
       }

       

       public bool HasField30 {

-        get { return result.HasField30; }

+        get { return result.hasField30; }

       }

       public long Field30 {

         get { return result.Field30; }

@@ -4972,7 +4972,7 @@
       }

       

       public bool HasField75 {

-        get { return result.HasField75; }

+        get { return result.hasField75; }

       }

       public bool Field75 {

         get { return result.Field75; }

@@ -4990,7 +4990,7 @@
       }

       

       public bool HasField6 {

-        get { return result.HasField6; }

+        get { return result.hasField6; }

       }

       public string Field6 {

         get { return result.Field6; }

@@ -5009,7 +5009,7 @@
       }

       

       public bool HasField2 {

-        get { return result.HasField2; }

+        get { return result.hasField2; }

       }

       public pb::ByteString Field2 {

         get { return result.Field2; }

@@ -5028,7 +5028,7 @@
       }

       

       public bool HasField21 {

-        get { return result.HasField21; }

+        get { return result.hasField21; }

       }

       public int Field21 {

         get { return result.Field21; }

@@ -5046,7 +5046,7 @@
       }

       

       public bool HasField71 {

-        get { return result.HasField71; }

+        get { return result.hasField71; }

       }

       public int Field71 {

         get { return result.Field71; }

@@ -5064,7 +5064,7 @@
       }

       

       public bool HasField25 {

-        get { return result.HasField25; }

+        get { return result.hasField25; }

       }

       public float Field25 {

         get { return result.Field25; }

@@ -5082,7 +5082,7 @@
       }

       

       public bool HasField109 {

-        get { return result.HasField109; }

+        get { return result.hasField109; }

       }

       public int Field109 {

         get { return result.Field109; }

@@ -5100,7 +5100,7 @@
       }

       

       public bool HasField210 {

-        get { return result.HasField210; }

+        get { return result.hasField210; }

       }

       public int Field210 {

         get { return result.Field210; }

@@ -5118,7 +5118,7 @@
       }

       

       public bool HasField211 {

-        get { return result.HasField211; }

+        get { return result.hasField211; }

       }

       public int Field211 {

         get { return result.Field211; }

@@ -5136,7 +5136,7 @@
       }

       

       public bool HasField212 {

-        get { return result.HasField212; }

+        get { return result.hasField212; }

       }

       public int Field212 {

         get { return result.Field212; }

@@ -5154,7 +5154,7 @@
       }

       

       public bool HasField213 {

-        get { return result.HasField213; }

+        get { return result.hasField213; }

       }

       public int Field213 {

         get { return result.Field213; }

@@ -5172,7 +5172,7 @@
       }

       

       public bool HasField216 {

-        get { return result.HasField216; }

+        get { return result.hasField216; }

       }

       public int Field216 {

         get { return result.Field216; }

@@ -5190,7 +5190,7 @@
       }

       

       public bool HasField217 {

-        get { return result.HasField217; }

+        get { return result.hasField217; }

       }

       public int Field217 {

         get { return result.Field217; }

@@ -5208,7 +5208,7 @@
       }

       

       public bool HasField218 {

-        get { return result.HasField218; }

+        get { return result.hasField218; }

       }

       public int Field218 {

         get { return result.Field218; }

@@ -5226,7 +5226,7 @@
       }

       

       public bool HasField220 {

-        get { return result.HasField220; }

+        get { return result.hasField220; }

       }

       public int Field220 {

         get { return result.Field220; }

@@ -5244,7 +5244,7 @@
       }

       

       public bool HasField221 {

-        get { return result.HasField221; }

+        get { return result.hasField221; }

       }

       public int Field221 {

         get { return result.Field221; }

@@ -5262,7 +5262,7 @@
       }

       

       public bool HasField222 {

-        get { return result.HasField222; }

+        get { return result.hasField222; }

       }

       public float Field222 {

         get { return result.Field222; }

@@ -5280,7 +5280,7 @@
       }

       

       public bool HasField63 {

-        get { return result.HasField63; }

+        get { return result.hasField63; }

       }

       public int Field63 {

         get { return result.Field63; }

@@ -5364,7 +5364,7 @@
       }

       

       public bool HasField131 {

-        get { return result.HasField131; }

+        get { return result.hasField131; }

       }

       public long Field131 {

         get { return result.Field131; }

@@ -5410,7 +5410,7 @@
       }

       

       public bool HasField129 {

-        get { return result.HasField129; }

+        get { return result.hasField129; }

       }

       public int Field129 {

         get { return result.Field129; }

@@ -5454,7 +5454,7 @@
       }

       

       public bool HasField205 {

-        get { return result.HasField205; }

+        get { return result.hasField205; }

       }

       public bool Field205 {

         get { return result.Field205; }

@@ -5472,7 +5472,7 @@
       }

       

       public bool HasField206 {

-        get { return result.HasField206; }

+        get { return result.hasField206; }

       }

       public bool Field206 {

         get { return result.Field206; }

@@ -5637,37 +5637,37 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasField1) {

+      if (hasField1) {

         output.WriteFloat(1, "field1", Field1);

       }

-      if (HasField2) {

+      if (hasField2) {

         output.WriteFloat(2, "field2", Field2);

       }

-      if (HasField3) {

+      if (hasField3) {

         output.WriteFloat(3, "field3", Field3);

       }

-      if (HasField4) {

+      if (hasField4) {

         output.WriteBool(4, "field4", Field4);

       }

-      if (HasField5) {

+      if (hasField5) {

         output.WriteBool(5, "field5", Field5);

       }

-      if (HasField6) {

+      if (hasField6) {

         output.WriteBool(6, "field6", Field6);

       }

-      if (HasField7) {

+      if (hasField7) {

         output.WriteBool(7, "field7", Field7);

       }

-      if (HasField8) {

+      if (hasField8) {

         output.WriteFloat(8, "field8", Field8);

       }

-      if (HasField9) {

+      if (hasField9) {

         output.WriteBool(9, "field9", Field9);

       }

-      if (HasField10) {

+      if (hasField10) {

         output.WriteFloat(10, "field10", Field10);

       }

-      if (HasField11) {

+      if (hasField11) {

         output.WriteInt64(11, "field11", Field11);

       }

       UnknownFields.WriteTo(output);

@@ -5680,37 +5680,37 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasField1) {

+        if (hasField1) {

           size += pb::CodedOutputStream.ComputeFloatSize(1, Field1);

         }

-        if (HasField2) {

+        if (hasField2) {

           size += pb::CodedOutputStream.ComputeFloatSize(2, Field2);

         }

-        if (HasField3) {

+        if (hasField3) {

           size += pb::CodedOutputStream.ComputeFloatSize(3, Field3);

         }

-        if (HasField4) {

+        if (hasField4) {

           size += pb::CodedOutputStream.ComputeBoolSize(4, Field4);

         }

-        if (HasField5) {

+        if (hasField5) {

           size += pb::CodedOutputStream.ComputeBoolSize(5, Field5);

         }

-        if (HasField6) {

+        if (hasField6) {

           size += pb::CodedOutputStream.ComputeBoolSize(6, Field6);

         }

-        if (HasField7) {

+        if (hasField7) {

           size += pb::CodedOutputStream.ComputeBoolSize(7, Field7);

         }

-        if (HasField8) {

+        if (hasField8) {

           size += pb::CodedOutputStream.ComputeFloatSize(8, Field8);

         }

-        if (HasField9) {

+        if (hasField9) {

           size += pb::CodedOutputStream.ComputeBoolSize(9, Field9);

         }

-        if (HasField10) {

+        if (hasField10) {

           size += pb::CodedOutputStream.ComputeFloatSize(10, Field10);

         }

-        if (HasField11) {

+        if (hasField11) {

           size += pb::CodedOutputStream.ComputeInt64Size(11, Field11);

         }

         size += UnknownFields.SerializedSize;

@@ -5926,7 +5926,7 @@
       

       

       public bool HasField1 {

-        get { return result.HasField1; }

+        get { return result.hasField1; }

       }

       public float Field1 {

         get { return result.Field1; }

@@ -5944,7 +5944,7 @@
       }

       

       public bool HasField2 {

-        get { return result.HasField2; }

+        get { return result.hasField2; }

       }

       public float Field2 {

         get { return result.Field2; }

@@ -5962,7 +5962,7 @@
       }

       

       public bool HasField3 {

-        get { return result.HasField3; }

+        get { return result.hasField3; }

       }

       public float Field3 {

         get { return result.Field3; }

@@ -5980,7 +5980,7 @@
       }

       

       public bool HasField4 {

-        get { return result.HasField4; }

+        get { return result.hasField4; }

       }

       public bool Field4 {

         get { return result.Field4; }

@@ -5998,7 +5998,7 @@
       }

       

       public bool HasField5 {

-        get { return result.HasField5; }

+        get { return result.hasField5; }

       }

       public bool Field5 {

         get { return result.Field5; }

@@ -6016,7 +6016,7 @@
       }

       

       public bool HasField6 {

-        get { return result.HasField6; }

+        get { return result.hasField6; }

       }

       public bool Field6 {

         get { return result.Field6; }

@@ -6034,7 +6034,7 @@
       }

       

       public bool HasField7 {

-        get { return result.HasField7; }

+        get { return result.hasField7; }

       }

       public bool Field7 {

         get { return result.Field7; }

@@ -6052,7 +6052,7 @@
       }

       

       public bool HasField8 {

-        get { return result.HasField8; }

+        get { return result.hasField8; }

       }

       public float Field8 {

         get { return result.Field8; }

@@ -6070,7 +6070,7 @@
       }

       

       public bool HasField9 {

-        get { return result.HasField9; }

+        get { return result.hasField9; }

       }

       public bool Field9 {

         get { return result.Field9; }

@@ -6088,7 +6088,7 @@
       }

       

       public bool HasField10 {

-        get { return result.HasField10; }

+        get { return result.hasField10; }

       }

       public float Field10 {

         get { return result.Field10; }

@@ -6106,7 +6106,7 @@
       }

       

       public bool HasField11 {

-        get { return result.HasField11; }

+        get { return result.hasField11; }

       }

       public long Field11 {

         get { return result.Field11; }

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
index 19d8989..b2154af 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
@@ -72,7 +72,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasD) {

+      if (hasD) {

         output.WriteInt32(1, "d", D);

       }

     }

@@ -84,7 +84,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasD) {

+        if (hasD) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, D);

         }

         memoizedSerializedSize = size;

@@ -233,7 +233,7 @@
       

       

       public bool HasD {

-        get { return result.HasD; }

+        get { return result.hasD; }

       }

       public int D {

         get { return result.D; }

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
index 7fd6259..111dfc4 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
@@ -108,7 +108,7 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasD) {

+        if (hasD) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, D);

         }

         size += UnknownFields.SerializedSize;

@@ -267,7 +267,7 @@
       

       

       public bool HasD {

-        get { return result.HasD; }

+        get { return result.hasD; }

       }

       public int D {

         get { return result.D; }

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
index 7023d75..36aaf2e 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
@@ -328,7 +328,7 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasMessageSet) {

+        if (hasMessageSet) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, MessageSet);

         }

         size += UnknownFields.SerializedSize;

@@ -474,7 +474,7 @@
             }

             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 @@
       

       

       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 @@
       }

       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 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasI) {

+        if (hasI) {

           size += pb::CodedOutputStream.ComputeInt32Size(15, I);

         }

         size += UnknownFields.SerializedSize;

@@ -736,7 +736,7 @@
       

       

       public bool HasI {

-        get { return result.HasI; }

+        get { return result.hasI; }

       }

       public int I {

         get { return result.I; }

@@ -803,7 +803,7 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasStr) {

+        if (hasStr) {

           size += pb::CodedOutputStream.ComputeStringSize(25, Str);

         }

         size += UnknownFields.SerializedSize;

@@ -962,7 +962,7 @@
       

       

       public bool HasStr {

-        get { return result.HasStr; }

+        get { return result.hasStr; }

       }

       public string Str {

         get { return result.Str; }

@@ -1070,10 +1070,10 @@
         

         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 @@
             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 @@
           

           

           public bool HasTypeId {

-            get { return result.HasTypeId; }

+            get { return result.hasTypeId; }

           }

           public int TypeId {

             get { return result.TypeId; }

@@ -1260,7 +1260,7 @@
           }

           

           public bool HasMessage {

-            get { return result.HasMessage; }

+            get { return result.hasMessage; }

           }

           public pb::ByteString Message {

             get { return result.Message; }

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
index 99bcf3b..85b7203 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
@@ -120,7 +120,7 @@
     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, A);

         }

         size += ExtensionsSerializedSize;

@@ -282,7 +282,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
index 53fe9ef..c95191a 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
@@ -208,7 +208,7 @@
       

       

       public bool HasI {

-        get { return result.HasI; }

+        get { return result.hasI; }

       }

       public int I {

         get { return result.I; }

@@ -226,7 +226,7 @@
       }

       

       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 @@
       }

       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 @@
       

       

       public bool HasX {

-        get { return result.HasX; }

+        get { return result.hasX; }

       }

       public int X {

         get { return result.X; }

@@ -518,7 +518,7 @@
       

       

       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 @@
       }

       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 {

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
index 601bf7d..80c2246 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
@@ -1197,7 +1197,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasBb) {

+          if (hasBb) {

             output.WriteInt32(1, "bb", Bb);

           }

           UnknownFields.WriteTo(output);

@@ -1210,7 +1210,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasBb) {

+            if (hasBb) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);

             }

             size += UnknownFields.SerializedSize;

@@ -1356,7 +1356,7 @@
           

           

           public bool HasBb {

-            get { return result.HasBb; }

+            get { return result.hasBb; }

           }

           public int Bb {

             get { return result.Bb; }

@@ -1421,7 +1421,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(17, "a", A);

           }

           UnknownFields.WriteTo(output);

@@ -1434,7 +1434,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(17, A);

             }

             size += UnknownFields.SerializedSize;

@@ -1580,7 +1580,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -1645,7 +1645,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(47, "a", A);

           }

           UnknownFields.WriteTo(output);

@@ -1658,7 +1658,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(47, A);

             }

             size += UnknownFields.SerializedSize;

@@ -1804,7 +1804,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -2581,76 +2581,76 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasOptionalInt32) {

+      if (hasOptionalInt32) {

         output.WriteInt32(1, "optional_int32", OptionalInt32);

       }

-      if (HasOptionalInt64) {

+      if (hasOptionalInt64) {

         output.WriteInt64(2, "optional_int64", OptionalInt64);

       }

-      if (HasOptionalUint32) {

+      if (hasOptionalUint32) {

         output.WriteUInt32(3, "optional_uint32", OptionalUint32);

       }

-      if (HasOptionalUint64) {

+      if (hasOptionalUint64) {

         output.WriteUInt64(4, "optional_uint64", OptionalUint64);

       }

-      if (HasOptionalSint32) {

+      if (hasOptionalSint32) {

         output.WriteSInt32(5, "optional_sint32", OptionalSint32);

       }

-      if (HasOptionalSint64) {

+      if (hasOptionalSint64) {

         output.WriteSInt64(6, "optional_sint64", OptionalSint64);

       }

-      if (HasOptionalFixed32) {

+      if (hasOptionalFixed32) {

         output.WriteFixed32(7, "optional_fixed32", OptionalFixed32);

       }

-      if (HasOptionalFixed64) {

+      if (hasOptionalFixed64) {

         output.WriteFixed64(8, "optional_fixed64", OptionalFixed64);

       }

-      if (HasOptionalSfixed32) {

+      if (hasOptionalSfixed32) {

         output.WriteSFixed32(9, "optional_sfixed32", OptionalSfixed32);

       }

-      if (HasOptionalSfixed64) {

+      if (hasOptionalSfixed64) {

         output.WriteSFixed64(10, "optional_sfixed64", OptionalSfixed64);

       }

-      if (HasOptionalFloat) {

+      if (hasOptionalFloat) {

         output.WriteFloat(11, "optional_float", OptionalFloat);

       }

-      if (HasOptionalDouble) {

+      if (hasOptionalDouble) {

         output.WriteDouble(12, "optional_double", OptionalDouble);

       }

-      if (HasOptionalBool) {

+      if (hasOptionalBool) {

         output.WriteBool(13, "optional_bool", OptionalBool);

       }

-      if (HasOptionalString) {

+      if (hasOptionalString) {

         output.WriteString(14, "optional_string", OptionalString);

       }

-      if (HasOptionalBytes) {

+      if (hasOptionalBytes) {

         output.WriteBytes(15, "optional_bytes", OptionalBytes);

       }

-      if (HasOptionalGroup) {

+      if (hasOptionalGroup) {

         output.WriteGroup(16, "optionalgroup", OptionalGroup);

       }

-      if (HasOptionalNestedMessage) {

+      if (hasOptionalNestedMessage) {

         output.WriteMessage(18, "optional_nested_message", OptionalNestedMessage);

       }

-      if (HasOptionalForeignMessage) {

+      if (hasOptionalForeignMessage) {

         output.WriteMessage(19, "optional_foreign_message", OptionalForeignMessage);

       }

-      if (HasOptionalImportMessage) {

+      if (hasOptionalImportMessage) {

         output.WriteMessage(20, "optional_import_message", OptionalImportMessage);

       }

-      if (HasOptionalNestedEnum) {

+      if (hasOptionalNestedEnum) {

         output.WriteEnum(21, "optional_nested_enum", (int) OptionalNestedEnum, OptionalNestedEnum.ToString());

       }

-      if (HasOptionalForeignEnum) {

+      if (hasOptionalForeignEnum) {

         output.WriteEnum(22, "optional_foreign_enum", (int) OptionalForeignEnum, OptionalForeignEnum.ToString());

       }

-      if (HasOptionalImportEnum) {

+      if (hasOptionalImportEnum) {

         output.WriteEnum(23, "optional_import_enum", (int) OptionalImportEnum, OptionalImportEnum.ToString());

       }

-      if (HasOptionalStringPiece) {

+      if (hasOptionalStringPiece) {

         output.WriteString(24, "optional_string_piece", OptionalStringPiece);

       }

-      if (HasOptionalCord) {

+      if (hasOptionalCord) {

         output.WriteString(25, "optional_cord", OptionalCord);

       }

       if (repeatedInt32_.Count > 0) {

@@ -2725,64 +2725,64 @@
       if (repeatedCord_.Count > 0) {

         output.WriteArray(pbd::FieldType.String, 55, "repeated_cord", repeatedCord_);

       }

-      if (HasDefaultInt32) {

+      if (hasDefaultInt32) {

         output.WriteInt32(61, "default_int32", DefaultInt32);

       }

-      if (HasDefaultInt64) {

+      if (hasDefaultInt64) {

         output.WriteInt64(62, "default_int64", DefaultInt64);

       }

-      if (HasDefaultUint32) {

+      if (hasDefaultUint32) {

         output.WriteUInt32(63, "default_uint32", DefaultUint32);

       }

-      if (HasDefaultUint64) {

+      if (hasDefaultUint64) {

         output.WriteUInt64(64, "default_uint64", DefaultUint64);

       }

-      if (HasDefaultSint32) {

+      if (hasDefaultSint32) {

         output.WriteSInt32(65, "default_sint32", DefaultSint32);

       }

-      if (HasDefaultSint64) {

+      if (hasDefaultSint64) {

         output.WriteSInt64(66, "default_sint64", DefaultSint64);

       }

-      if (HasDefaultFixed32) {

+      if (hasDefaultFixed32) {

         output.WriteFixed32(67, "default_fixed32", DefaultFixed32);

       }

-      if (HasDefaultFixed64) {

+      if (hasDefaultFixed64) {

         output.WriteFixed64(68, "default_fixed64", DefaultFixed64);

       }

-      if (HasDefaultSfixed32) {

+      if (hasDefaultSfixed32) {

         output.WriteSFixed32(69, "default_sfixed32", DefaultSfixed32);

       }

-      if (HasDefaultSfixed64) {

+      if (hasDefaultSfixed64) {

         output.WriteSFixed64(70, "default_sfixed64", DefaultSfixed64);

       }

-      if (HasDefaultFloat) {

+      if (hasDefaultFloat) {

         output.WriteFloat(71, "default_float", DefaultFloat);

       }

-      if (HasDefaultDouble) {

+      if (hasDefaultDouble) {

         output.WriteDouble(72, "default_double", DefaultDouble);

       }

-      if (HasDefaultBool) {

+      if (hasDefaultBool) {

         output.WriteBool(73, "default_bool", DefaultBool);

       }

-      if (HasDefaultString) {

+      if (hasDefaultString) {

         output.WriteString(74, "default_string", DefaultString);

       }

-      if (HasDefaultBytes) {

+      if (hasDefaultBytes) {

         output.WriteBytes(75, "default_bytes", DefaultBytes);

       }

-      if (HasDefaultNestedEnum) {

+      if (hasDefaultNestedEnum) {

         output.WriteEnum(81, "default_nested_enum", (int) DefaultNestedEnum, DefaultNestedEnum.ToString());

       }

-      if (HasDefaultForeignEnum) {

+      if (hasDefaultForeignEnum) {

         output.WriteEnum(82, "default_foreign_enum", (int) DefaultForeignEnum, DefaultForeignEnum.ToString());

       }

-      if (HasDefaultImportEnum) {

+      if (hasDefaultImportEnum) {

         output.WriteEnum(83, "default_import_enum", (int) DefaultImportEnum, DefaultImportEnum.ToString());

       }

-      if (HasDefaultStringPiece) {

+      if (hasDefaultStringPiece) {

         output.WriteString(84, "default_string_piece", DefaultStringPiece);

       }

-      if (HasDefaultCord) {

+      if (hasDefaultCord) {

         output.WriteString(85, "default_cord", DefaultCord);

       }

       UnknownFields.WriteTo(output);

@@ -2795,76 +2795,76 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasOptionalInt32) {

+        if (hasOptionalInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);

         }

-        if (HasOptionalInt64) {

+        if (hasOptionalInt64) {

           size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);

         }

-        if (HasOptionalUint32) {

+        if (hasOptionalUint32) {

           size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);

         }

-        if (HasOptionalUint64) {

+        if (hasOptionalUint64) {

           size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);

         }

-        if (HasOptionalSint32) {

+        if (hasOptionalSint32) {

           size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);

         }

-        if (HasOptionalSint64) {

+        if (hasOptionalSint64) {

           size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);

         }

-        if (HasOptionalFixed32) {

+        if (hasOptionalFixed32) {

           size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);

         }

-        if (HasOptionalFixed64) {

+        if (hasOptionalFixed64) {

           size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);

         }

-        if (HasOptionalSfixed32) {

+        if (hasOptionalSfixed32) {

           size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);

         }

-        if (HasOptionalSfixed64) {

+        if (hasOptionalSfixed64) {

           size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);

         }

-        if (HasOptionalFloat) {

+        if (hasOptionalFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);

         }

-        if (HasOptionalDouble) {

+        if (hasOptionalDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);

         }

-        if (HasOptionalBool) {

+        if (hasOptionalBool) {

           size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);

         }

-        if (HasOptionalString) {

+        if (hasOptionalString) {

           size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);

         }

-        if (HasOptionalBytes) {

+        if (hasOptionalBytes) {

           size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);

         }

-        if (HasOptionalGroup) {

+        if (hasOptionalGroup) {

           size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);

         }

-        if (HasOptionalNestedMessage) {

+        if (hasOptionalNestedMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);

         }

-        if (HasOptionalForeignMessage) {

+        if (hasOptionalForeignMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);

         }

-        if (HasOptionalImportMessage) {

+        if (hasOptionalImportMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);

         }

-        if (HasOptionalNestedEnum) {

+        if (hasOptionalNestedEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);

         }

-        if (HasOptionalForeignEnum) {

+        if (hasOptionalForeignEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);

         }

-        if (HasOptionalImportEnum) {

+        if (hasOptionalImportEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);

         }

-        if (HasOptionalStringPiece) {

+        if (hasOptionalStringPiece) {

           size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);

         }

-        if (HasOptionalCord) {

+        if (hasOptionalCord) {

           size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);

         }

         {

@@ -3031,64 +3031,64 @@
           size += dataSize;

           size += 2 * repeatedCord_.Count;

         }

-        if (HasDefaultInt32) {

+        if (hasDefaultInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);

         }

-        if (HasDefaultInt64) {

+        if (hasDefaultInt64) {

           size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);

         }

-        if (HasDefaultUint32) {

+        if (hasDefaultUint32) {

           size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);

         }

-        if (HasDefaultUint64) {

+        if (hasDefaultUint64) {

           size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);

         }

-        if (HasDefaultSint32) {

+        if (hasDefaultSint32) {

           size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);

         }

-        if (HasDefaultSint64) {

+        if (hasDefaultSint64) {

           size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);

         }

-        if (HasDefaultFixed32) {

+        if (hasDefaultFixed32) {

           size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);

         }

-        if (HasDefaultFixed64) {

+        if (hasDefaultFixed64) {

           size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);

         }

-        if (HasDefaultSfixed32) {

+        if (hasDefaultSfixed32) {

           size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);

         }

-        if (HasDefaultSfixed64) {

+        if (hasDefaultSfixed64) {

           size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);

         }

-        if (HasDefaultFloat) {

+        if (hasDefaultFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);

         }

-        if (HasDefaultDouble) {

+        if (hasDefaultDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);

         }

-        if (HasDefaultBool) {

+        if (hasDefaultBool) {

           size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);

         }

-        if (HasDefaultString) {

+        if (hasDefaultString) {

           size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);

         }

-        if (HasDefaultBytes) {

+        if (hasDefaultBytes) {

           size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);

         }

-        if (HasDefaultNestedEnum) {

+        if (hasDefaultNestedEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);

         }

-        if (HasDefaultForeignEnum) {

+        if (hasDefaultForeignEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);

         }

-        if (HasDefaultImportEnum) {

+        if (hasDefaultImportEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);

         }

-        if (HasDefaultStringPiece) {

+        if (hasDefaultStringPiece) {

           size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);

         }

-        if (HasDefaultCord) {

+        if (hasDefaultCord) {

           size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);

         }

         size += UnknownFields.SerializedSize;

@@ -3506,7 +3506,7 @@
             }

             case 131: {

               global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder();

-              if (HasOptionalGroup) {

+              if (result.hasOptionalGroup) {

                 subBuilder.MergeFrom(OptionalGroup);

               }

               input.ReadGroup(16, subBuilder, extensionRegistry);

@@ -3515,7 +3515,7 @@
             }

             case 146: {

               global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();

-              if (HasOptionalNestedMessage) {

+              if (result.hasOptionalNestedMessage) {

                 subBuilder.MergeFrom(OptionalNestedMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3524,7 +3524,7 @@
             }

             case 154: {

               global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();

-              if (HasOptionalForeignMessage) {

+              if (result.hasOptionalForeignMessage) {

                 subBuilder.MergeFrom(OptionalForeignMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3533,7 +3533,7 @@
             }

             case 162: {

               global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder();

-              if (HasOptionalImportMessage) {

+              if (result.hasOptionalImportMessage) {

                 subBuilder.MergeFrom(OptionalImportMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3838,7 +3838,7 @@
       

       

       public bool HasOptionalInt32 {

-        get { return result.HasOptionalInt32; }

+        get { return result.hasOptionalInt32; }

       }

       public int OptionalInt32 {

         get { return result.OptionalInt32; }

@@ -3856,7 +3856,7 @@
       }

       

       public bool HasOptionalInt64 {

-        get { return result.HasOptionalInt64; }

+        get { return result.hasOptionalInt64; }

       }

       public long OptionalInt64 {

         get { return result.OptionalInt64; }

@@ -3874,7 +3874,7 @@
       }

       

       public bool HasOptionalUint32 {

-        get { return result.HasOptionalUint32; }

+        get { return result.hasOptionalUint32; }

       }

       [global::System.CLSCompliant(false)]

       public uint OptionalUint32 {

@@ -3894,7 +3894,7 @@
       }

       

       public bool HasOptionalUint64 {

-        get { return result.HasOptionalUint64; }

+        get { return result.hasOptionalUint64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong OptionalUint64 {

@@ -3914,7 +3914,7 @@
       }

       

       public bool HasOptionalSint32 {

-        get { return result.HasOptionalSint32; }

+        get { return result.hasOptionalSint32; }

       }

       public int OptionalSint32 {

         get { return result.OptionalSint32; }

@@ -3932,7 +3932,7 @@
       }

       

       public bool HasOptionalSint64 {

-        get { return result.HasOptionalSint64; }

+        get { return result.hasOptionalSint64; }

       }

       public long OptionalSint64 {

         get { return result.OptionalSint64; }

@@ -3950,7 +3950,7 @@
       }

       

       public bool HasOptionalFixed32 {

-        get { return result.HasOptionalFixed32; }

+        get { return result.hasOptionalFixed32; }

       }

       [global::System.CLSCompliant(false)]

       public uint OptionalFixed32 {

@@ -3970,7 +3970,7 @@
       }

       

       public bool HasOptionalFixed64 {

-        get { return result.HasOptionalFixed64; }

+        get { return result.hasOptionalFixed64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong OptionalFixed64 {

@@ -3990,7 +3990,7 @@
       }

       

       public bool HasOptionalSfixed32 {

-        get { return result.HasOptionalSfixed32; }

+        get { return result.hasOptionalSfixed32; }

       }

       public int OptionalSfixed32 {

         get { return result.OptionalSfixed32; }

@@ -4008,7 +4008,7 @@
       }

       

       public bool HasOptionalSfixed64 {

-        get { return result.HasOptionalSfixed64; }

+        get { return result.hasOptionalSfixed64; }

       }

       public long OptionalSfixed64 {

         get { return result.OptionalSfixed64; }

@@ -4026,7 +4026,7 @@
       }

       

       public bool HasOptionalFloat {

-        get { return result.HasOptionalFloat; }

+        get { return result.hasOptionalFloat; }

       }

       public float OptionalFloat {

         get { return result.OptionalFloat; }

@@ -4044,7 +4044,7 @@
       }

       

       public bool HasOptionalDouble {

-        get { return result.HasOptionalDouble; }

+        get { return result.hasOptionalDouble; }

       }

       public double OptionalDouble {

         get { return result.OptionalDouble; }

@@ -4062,7 +4062,7 @@
       }

       

       public bool HasOptionalBool {

-        get { return result.HasOptionalBool; }

+        get { return result.hasOptionalBool; }

       }

       public bool OptionalBool {

         get { return result.OptionalBool; }

@@ -4080,7 +4080,7 @@
       }

       

       public bool HasOptionalString {

-        get { return result.HasOptionalString; }

+        get { return result.hasOptionalString; }

       }

       public string OptionalString {

         get { return result.OptionalString; }

@@ -4099,7 +4099,7 @@
       }

       

       public bool HasOptionalBytes {

-        get { return result.HasOptionalBytes; }

+        get { return result.hasOptionalBytes; }

       }

       public pb::ByteString OptionalBytes {

         get { return result.OptionalBytes; }

@@ -4118,7 +4118,7 @@
       }

       

       public bool HasOptionalGroup {

-       get { return result.HasOptionalGroup; }

+       get { return result.hasOptionalGroup; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {

         get { return result.OptionalGroup; }

@@ -4138,7 +4138,7 @@
       }

       public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalGroup &&

+        if (result.hasOptionalGroup &&

             result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) {

             result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();

         } else {

@@ -4154,7 +4154,7 @@
       }

       

       public bool HasOptionalNestedMessage {

-       get { return result.HasOptionalNestedMessage; }

+       get { return result.hasOptionalNestedMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {

         get { return result.OptionalNestedMessage; }

@@ -4174,7 +4174,7 @@
       }

       public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalNestedMessage &&

+        if (result.hasOptionalNestedMessage &&

             result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {

             result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4190,7 +4190,7 @@
       }

       

       public bool HasOptionalForeignMessage {

-       get { return result.HasOptionalForeignMessage; }

+       get { return result.hasOptionalForeignMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {

         get { return result.OptionalForeignMessage; }

@@ -4210,7 +4210,7 @@
       }

       public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalForeignMessage &&

+        if (result.hasOptionalForeignMessage &&

             result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {

             result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4226,7 +4226,7 @@
       }

       

       public bool HasOptionalImportMessage {

-       get { return result.HasOptionalImportMessage; }

+       get { return result.hasOptionalImportMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {

         get { return result.OptionalImportMessage; }

@@ -4246,7 +4246,7 @@
       }

       public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalImportMessage &&

+        if (result.hasOptionalImportMessage &&

             result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) {

             result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4262,7 +4262,7 @@
       }

       

       public bool HasOptionalNestedEnum {

-       get { return result.HasOptionalNestedEnum; }

+       get { return result.hasOptionalNestedEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {

         get { return result.OptionalNestedEnum; }

@@ -4280,7 +4280,7 @@
       }

       

       public bool HasOptionalForeignEnum {

-       get { return result.HasOptionalForeignEnum; }

+       get { return result.hasOptionalForeignEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {

         get { return result.OptionalForeignEnum; }

@@ -4298,7 +4298,7 @@
       }

       

       public bool HasOptionalImportEnum {

-       get { return result.HasOptionalImportEnum; }

+       get { return result.hasOptionalImportEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {

         get { return result.OptionalImportEnum; }

@@ -4316,7 +4316,7 @@
       }

       

       public bool HasOptionalStringPiece {

-        get { return result.HasOptionalStringPiece; }

+        get { return result.hasOptionalStringPiece; }

       }

       public string OptionalStringPiece {

         get { return result.OptionalStringPiece; }

@@ -4335,7 +4335,7 @@
       }

       

       public bool HasOptionalCord {

-        get { return result.HasOptionalCord; }

+        get { return result.hasOptionalCord; }

       }

       public string OptionalCord {

         get { return result.OptionalCord; }

@@ -5054,7 +5054,7 @@
       }

       

       public bool HasDefaultInt32 {

-        get { return result.HasDefaultInt32; }

+        get { return result.hasDefaultInt32; }

       }

       public int DefaultInt32 {

         get { return result.DefaultInt32; }

@@ -5072,7 +5072,7 @@
       }

       

       public bool HasDefaultInt64 {

-        get { return result.HasDefaultInt64; }

+        get { return result.hasDefaultInt64; }

       }

       public long DefaultInt64 {

         get { return result.DefaultInt64; }

@@ -5090,7 +5090,7 @@
       }

       

       public bool HasDefaultUint32 {

-        get { return result.HasDefaultUint32; }

+        get { return result.hasDefaultUint32; }

       }

       [global::System.CLSCompliant(false)]

       public uint DefaultUint32 {

@@ -5110,7 +5110,7 @@
       }

       

       public bool HasDefaultUint64 {

-        get { return result.HasDefaultUint64; }

+        get { return result.hasDefaultUint64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong DefaultUint64 {

@@ -5130,7 +5130,7 @@
       }

       

       public bool HasDefaultSint32 {

-        get { return result.HasDefaultSint32; }

+        get { return result.hasDefaultSint32; }

       }

       public int DefaultSint32 {

         get { return result.DefaultSint32; }

@@ -5148,7 +5148,7 @@
       }

       

       public bool HasDefaultSint64 {

-        get { return result.HasDefaultSint64; }

+        get { return result.hasDefaultSint64; }

       }

       public long DefaultSint64 {

         get { return result.DefaultSint64; }

@@ -5166,7 +5166,7 @@
       }

       

       public bool HasDefaultFixed32 {

-        get { return result.HasDefaultFixed32; }

+        get { return result.hasDefaultFixed32; }

       }

       [global::System.CLSCompliant(false)]

       public uint DefaultFixed32 {

@@ -5186,7 +5186,7 @@
       }

       

       public bool HasDefaultFixed64 {

-        get { return result.HasDefaultFixed64; }

+        get { return result.hasDefaultFixed64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong DefaultFixed64 {

@@ -5206,7 +5206,7 @@
       }

       

       public bool HasDefaultSfixed32 {

-        get { return result.HasDefaultSfixed32; }

+        get { return result.hasDefaultSfixed32; }

       }

       public int DefaultSfixed32 {

         get { return result.DefaultSfixed32; }

@@ -5224,7 +5224,7 @@
       }

       

       public bool HasDefaultSfixed64 {

-        get { return result.HasDefaultSfixed64; }

+        get { return result.hasDefaultSfixed64; }

       }

       public long DefaultSfixed64 {

         get { return result.DefaultSfixed64; }

@@ -5242,7 +5242,7 @@
       }

       

       public bool HasDefaultFloat {

-        get { return result.HasDefaultFloat; }

+        get { return result.hasDefaultFloat; }

       }

       public float DefaultFloat {

         get { return result.DefaultFloat; }

@@ -5260,7 +5260,7 @@
       }

       

       public bool HasDefaultDouble {

-        get { return result.HasDefaultDouble; }

+        get { return result.hasDefaultDouble; }

       }

       public double DefaultDouble {

         get { return result.DefaultDouble; }

@@ -5278,7 +5278,7 @@
       }

       

       public bool HasDefaultBool {

-        get { return result.HasDefaultBool; }

+        get { return result.hasDefaultBool; }

       }

       public bool DefaultBool {

         get { return result.DefaultBool; }

@@ -5296,7 +5296,7 @@
       }

       

       public bool HasDefaultString {

-        get { return result.HasDefaultString; }

+        get { return result.hasDefaultString; }

       }

       public string DefaultString {

         get { return result.DefaultString; }

@@ -5315,7 +5315,7 @@
       }

       

       public bool HasDefaultBytes {

-        get { return result.HasDefaultBytes; }

+        get { return result.hasDefaultBytes; }

       }

       public pb::ByteString DefaultBytes {

         get { return result.DefaultBytes; }

@@ -5334,7 +5334,7 @@
       }

       

       public bool HasDefaultNestedEnum {

-       get { return result.HasDefaultNestedEnum; }

+       get { return result.hasDefaultNestedEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {

         get { return result.DefaultNestedEnum; }

@@ -5352,7 +5352,7 @@
       }

       

       public bool HasDefaultForeignEnum {

-       get { return result.HasDefaultForeignEnum; }

+       get { return result.hasDefaultForeignEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {

         get { return result.DefaultForeignEnum; }

@@ -5370,7 +5370,7 @@
       }

       

       public bool HasDefaultImportEnum {

-       get { return result.HasDefaultImportEnum; }

+       get { return result.hasDefaultImportEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {

         get { return result.DefaultImportEnum; }

@@ -5388,7 +5388,7 @@
       }

       

       public bool HasDefaultStringPiece {

-        get { return result.HasDefaultStringPiece; }

+        get { return result.hasDefaultStringPiece; }

       }

       public string DefaultStringPiece {

         get { return result.DefaultStringPiece; }

@@ -5407,7 +5407,7 @@
       }

       

       public bool HasDefaultCord {

-        get { return result.HasDefaultCord; }

+        get { return result.hasDefaultCord; }

       }

       public string DefaultCord {

         get { return result.DefaultCord; }

@@ -5473,7 +5473,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasDeprecatedInt32) {

+      if (hasDeprecatedInt32) {

         output.WriteInt32(1, "deprecated_int32", DeprecatedInt32);

       }

       UnknownFields.WriteTo(output);

@@ -5486,7 +5486,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasDeprecatedInt32) {

+        if (hasDeprecatedInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedInt32);

         }

         size += UnknownFields.SerializedSize;

@@ -5632,7 +5632,7 @@
       

       

       public bool HasDeprecatedInt32 {

-        get { return result.HasDeprecatedInt32; }

+        get { return result.hasDeprecatedInt32; }

       }

       public int DeprecatedInt32 {

         get { return result.DeprecatedInt32; }

@@ -5697,7 +5697,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasC) {

+      if (hasC) {

         output.WriteInt32(1, "c", C);

       }

       UnknownFields.WriteTo(output);

@@ -5710,7 +5710,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasC) {

+        if (hasC) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, C);

         }

         size += UnknownFields.SerializedSize;

@@ -5856,7 +5856,7 @@
       

       

       public bool HasC {

-        get { return result.HasC; }

+        get { return result.hasC; }

       }

       public int C {

         get { return result.C; }

@@ -6109,7 +6109,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(17, "a", A);

       }

       UnknownFields.WriteTo(output);

@@ -6122,7 +6122,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(17, A);

         }

         size += UnknownFields.SerializedSize;

@@ -6268,7 +6268,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -6333,7 +6333,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(47, "a", A);

       }

       UnknownFields.WriteTo(output);

@@ -6346,7 +6346,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(47, A);

         }

         size += UnknownFields.SerializedSize;

@@ -6492,7 +6492,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -7069,103 +7069,103 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(1, "a", A);

       }

-      if (HasDummy2) {

+      if (hasDummy2) {

         output.WriteInt32(2, "dummy2", Dummy2);

       }

-      if (HasB) {

+      if (hasB) {

         output.WriteInt32(3, "b", B);

       }

-      if (HasDummy4) {

+      if (hasDummy4) {

         output.WriteInt32(4, "dummy4", Dummy4);

       }

-      if (HasDummy5) {

+      if (hasDummy5) {

         output.WriteInt32(5, "dummy5", Dummy5);

       }

-      if (HasDummy6) {

+      if (hasDummy6) {

         output.WriteInt32(6, "dummy6", Dummy6);

       }

-      if (HasDummy7) {

+      if (hasDummy7) {

         output.WriteInt32(7, "dummy7", Dummy7);

       }

-      if (HasDummy8) {

+      if (hasDummy8) {

         output.WriteInt32(8, "dummy8", Dummy8);

       }

-      if (HasDummy9) {

+      if (hasDummy9) {

         output.WriteInt32(9, "dummy9", Dummy9);

       }

-      if (HasDummy10) {

+      if (hasDummy10) {

         output.WriteInt32(10, "dummy10", Dummy10);

       }

-      if (HasDummy11) {

+      if (hasDummy11) {

         output.WriteInt32(11, "dummy11", Dummy11);

       }

-      if (HasDummy12) {

+      if (hasDummy12) {

         output.WriteInt32(12, "dummy12", Dummy12);

       }

-      if (HasDummy13) {

+      if (hasDummy13) {

         output.WriteInt32(13, "dummy13", Dummy13);

       }

-      if (HasDummy14) {

+      if (hasDummy14) {

         output.WriteInt32(14, "dummy14", Dummy14);

       }

-      if (HasDummy15) {

+      if (hasDummy15) {

         output.WriteInt32(15, "dummy15", Dummy15);

       }

-      if (HasDummy16) {

+      if (hasDummy16) {

         output.WriteInt32(16, "dummy16", Dummy16);

       }

-      if (HasDummy17) {

+      if (hasDummy17) {

         output.WriteInt32(17, "dummy17", Dummy17);

       }

-      if (HasDummy18) {

+      if (hasDummy18) {

         output.WriteInt32(18, "dummy18", Dummy18);

       }

-      if (HasDummy19) {

+      if (hasDummy19) {

         output.WriteInt32(19, "dummy19", Dummy19);

       }

-      if (HasDummy20) {

+      if (hasDummy20) {

         output.WriteInt32(20, "dummy20", Dummy20);

       }

-      if (HasDummy21) {

+      if (hasDummy21) {

         output.WriteInt32(21, "dummy21", Dummy21);

       }

-      if (HasDummy22) {

+      if (hasDummy22) {

         output.WriteInt32(22, "dummy22", Dummy22);

       }

-      if (HasDummy23) {

+      if (hasDummy23) {

         output.WriteInt32(23, "dummy23", Dummy23);

       }

-      if (HasDummy24) {

+      if (hasDummy24) {

         output.WriteInt32(24, "dummy24", Dummy24);

       }

-      if (HasDummy25) {

+      if (hasDummy25) {

         output.WriteInt32(25, "dummy25", Dummy25);

       }

-      if (HasDummy26) {

+      if (hasDummy26) {

         output.WriteInt32(26, "dummy26", Dummy26);

       }

-      if (HasDummy27) {

+      if (hasDummy27) {

         output.WriteInt32(27, "dummy27", Dummy27);

       }

-      if (HasDummy28) {

+      if (hasDummy28) {

         output.WriteInt32(28, "dummy28", Dummy28);

       }

-      if (HasDummy29) {

+      if (hasDummy29) {

         output.WriteInt32(29, "dummy29", Dummy29);

       }

-      if (HasDummy30) {

+      if (hasDummy30) {

         output.WriteInt32(30, "dummy30", Dummy30);

       }

-      if (HasDummy31) {

+      if (hasDummy31) {

         output.WriteInt32(31, "dummy31", Dummy31);

       }

-      if (HasDummy32) {

+      if (hasDummy32) {

         output.WriteInt32(32, "dummy32", Dummy32);

       }

-      if (HasC) {

+      if (hasC) {

         output.WriteInt32(33, "c", C);

       }

       UnknownFields.WriteTo(output);

@@ -7178,103 +7178,103 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, A);

         }

-        if (HasDummy2) {

+        if (hasDummy2) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, Dummy2);

         }

-        if (HasB) {

+        if (hasB) {

           size += pb::CodedOutputStream.ComputeInt32Size(3, B);

         }

-        if (HasDummy4) {

+        if (hasDummy4) {

           size += pb::CodedOutputStream.ComputeInt32Size(4, Dummy4);

         }

-        if (HasDummy5) {

+        if (hasDummy5) {

           size += pb::CodedOutputStream.ComputeInt32Size(5, Dummy5);

         }

-        if (HasDummy6) {

+        if (hasDummy6) {

           size += pb::CodedOutputStream.ComputeInt32Size(6, Dummy6);

         }

-        if (HasDummy7) {

+        if (hasDummy7) {

           size += pb::CodedOutputStream.ComputeInt32Size(7, Dummy7);

         }

-        if (HasDummy8) {

+        if (hasDummy8) {

           size += pb::CodedOutputStream.ComputeInt32Size(8, Dummy8);

         }

-        if (HasDummy9) {

+        if (hasDummy9) {

           size += pb::CodedOutputStream.ComputeInt32Size(9, Dummy9);

         }

-        if (HasDummy10) {

+        if (hasDummy10) {

           size += pb::CodedOutputStream.ComputeInt32Size(10, Dummy10);

         }

-        if (HasDummy11) {

+        if (hasDummy11) {

           size += pb::CodedOutputStream.ComputeInt32Size(11, Dummy11);

         }

-        if (HasDummy12) {

+        if (hasDummy12) {

           size += pb::CodedOutputStream.ComputeInt32Size(12, Dummy12);

         }

-        if (HasDummy13) {

+        if (hasDummy13) {

           size += pb::CodedOutputStream.ComputeInt32Size(13, Dummy13);

         }

-        if (HasDummy14) {

+        if (hasDummy14) {

           size += pb::CodedOutputStream.ComputeInt32Size(14, Dummy14);

         }

-        if (HasDummy15) {

+        if (hasDummy15) {

           size += pb::CodedOutputStream.ComputeInt32Size(15, Dummy15);

         }

-        if (HasDummy16) {

+        if (hasDummy16) {

           size += pb::CodedOutputStream.ComputeInt32Size(16, Dummy16);

         }

-        if (HasDummy17) {

+        if (hasDummy17) {

           size += pb::CodedOutputStream.ComputeInt32Size(17, Dummy17);

         }

-        if (HasDummy18) {

+        if (hasDummy18) {

           size += pb::CodedOutputStream.ComputeInt32Size(18, Dummy18);

         }

-        if (HasDummy19) {

+        if (hasDummy19) {

           size += pb::CodedOutputStream.ComputeInt32Size(19, Dummy19);

         }

-        if (HasDummy20) {

+        if (hasDummy20) {

           size += pb::CodedOutputStream.ComputeInt32Size(20, Dummy20);

         }

-        if (HasDummy21) {

+        if (hasDummy21) {

           size += pb::CodedOutputStream.ComputeInt32Size(21, Dummy21);

         }

-        if (HasDummy22) {

+        if (hasDummy22) {

           size += pb::CodedOutputStream.ComputeInt32Size(22, Dummy22);

         }

-        if (HasDummy23) {

+        if (hasDummy23) {

           size += pb::CodedOutputStream.ComputeInt32Size(23, Dummy23);

         }

-        if (HasDummy24) {

+        if (hasDummy24) {

           size += pb::CodedOutputStream.ComputeInt32Size(24, Dummy24);

         }

-        if (HasDummy25) {

+        if (hasDummy25) {

           size += pb::CodedOutputStream.ComputeInt32Size(25, Dummy25);

         }

-        if (HasDummy26) {

+        if (hasDummy26) {

           size += pb::CodedOutputStream.ComputeInt32Size(26, Dummy26);

         }

-        if (HasDummy27) {

+        if (hasDummy27) {

           size += pb::CodedOutputStream.ComputeInt32Size(27, Dummy27);

         }

-        if (HasDummy28) {

+        if (hasDummy28) {

           size += pb::CodedOutputStream.ComputeInt32Size(28, Dummy28);

         }

-        if (HasDummy29) {

+        if (hasDummy29) {

           size += pb::CodedOutputStream.ComputeInt32Size(29, Dummy29);

         }

-        if (HasDummy30) {

+        if (hasDummy30) {

           size += pb::CodedOutputStream.ComputeInt32Size(30, Dummy30);

         }

-        if (HasDummy31) {

+        if (hasDummy31) {

           size += pb::CodedOutputStream.ComputeInt32Size(31, Dummy31);

         }

-        if (HasDummy32) {

+        if (hasDummy32) {

           size += pb::CodedOutputStream.ComputeInt32Size(32, Dummy32);

         }

-        if (HasC) {

+        if (hasC) {

           size += pb::CodedOutputStream.ComputeInt32Size(33, C);

         }

         size += UnknownFields.SerializedSize;

@@ -7644,7 +7644,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -7662,7 +7662,7 @@
       }

       

       public bool HasDummy2 {

-        get { return result.HasDummy2; }

+        get { return result.hasDummy2; }

       }

       public int Dummy2 {

         get { return result.Dummy2; }

@@ -7680,7 +7680,7 @@
       }

       

       public bool HasB {

-        get { return result.HasB; }

+        get { return result.hasB; }

       }

       public int B {

         get { return result.B; }

@@ -7698,7 +7698,7 @@
       }

       

       public bool HasDummy4 {

-        get { return result.HasDummy4; }

+        get { return result.hasDummy4; }

       }

       public int Dummy4 {

         get { return result.Dummy4; }

@@ -7716,7 +7716,7 @@
       }

       

       public bool HasDummy5 {

-        get { return result.HasDummy5; }

+        get { return result.hasDummy5; }

       }

       public int Dummy5 {

         get { return result.Dummy5; }

@@ -7734,7 +7734,7 @@
       }

       

       public bool HasDummy6 {

-        get { return result.HasDummy6; }

+        get { return result.hasDummy6; }

       }

       public int Dummy6 {

         get { return result.Dummy6; }

@@ -7752,7 +7752,7 @@
       }

       

       public bool HasDummy7 {

-        get { return result.HasDummy7; }

+        get { return result.hasDummy7; }

       }

       public int Dummy7 {

         get { return result.Dummy7; }

@@ -7770,7 +7770,7 @@
       }

       

       public bool HasDummy8 {

-        get { return result.HasDummy8; }

+        get { return result.hasDummy8; }

       }

       public int Dummy8 {

         get { return result.Dummy8; }

@@ -7788,7 +7788,7 @@
       }

       

       public bool HasDummy9 {

-        get { return result.HasDummy9; }

+        get { return result.hasDummy9; }

       }

       public int Dummy9 {

         get { return result.Dummy9; }

@@ -7806,7 +7806,7 @@
       }

       

       public bool HasDummy10 {

-        get { return result.HasDummy10; }

+        get { return result.hasDummy10; }

       }

       public int Dummy10 {

         get { return result.Dummy10; }

@@ -7824,7 +7824,7 @@
       }

       

       public bool HasDummy11 {

-        get { return result.HasDummy11; }

+        get { return result.hasDummy11; }

       }

       public int Dummy11 {

         get { return result.Dummy11; }

@@ -7842,7 +7842,7 @@
       }

       

       public bool HasDummy12 {

-        get { return result.HasDummy12; }

+        get { return result.hasDummy12; }

       }

       public int Dummy12 {

         get { return result.Dummy12; }

@@ -7860,7 +7860,7 @@
       }

       

       public bool HasDummy13 {

-        get { return result.HasDummy13; }

+        get { return result.hasDummy13; }

       }

       public int Dummy13 {

         get { return result.Dummy13; }

@@ -7878,7 +7878,7 @@
       }

       

       public bool HasDummy14 {

-        get { return result.HasDummy14; }

+        get { return result.hasDummy14; }

       }

       public int Dummy14 {

         get { return result.Dummy14; }

@@ -7896,7 +7896,7 @@
       }

       

       public bool HasDummy15 {

-        get { return result.HasDummy15; }

+        get { return result.hasDummy15; }

       }

       public int Dummy15 {

         get { return result.Dummy15; }

@@ -7914,7 +7914,7 @@
       }

       

       public bool HasDummy16 {

-        get { return result.HasDummy16; }

+        get { return result.hasDummy16; }

       }

       public int Dummy16 {

         get { return result.Dummy16; }

@@ -7932,7 +7932,7 @@
       }

       

       public bool HasDummy17 {

-        get { return result.HasDummy17; }

+        get { return result.hasDummy17; }

       }

       public int Dummy17 {

         get { return result.Dummy17; }

@@ -7950,7 +7950,7 @@
       }

       

       public bool HasDummy18 {

-        get { return result.HasDummy18; }

+        get { return result.hasDummy18; }

       }

       public int Dummy18 {

         get { return result.Dummy18; }

@@ -7968,7 +7968,7 @@
       }

       

       public bool HasDummy19 {

-        get { return result.HasDummy19; }

+        get { return result.hasDummy19; }

       }

       public int Dummy19 {

         get { return result.Dummy19; }

@@ -7986,7 +7986,7 @@
       }

       

       public bool HasDummy20 {

-        get { return result.HasDummy20; }

+        get { return result.hasDummy20; }

       }

       public int Dummy20 {

         get { return result.Dummy20; }

@@ -8004,7 +8004,7 @@
       }

       

       public bool HasDummy21 {

-        get { return result.HasDummy21; }

+        get { return result.hasDummy21; }

       }

       public int Dummy21 {

         get { return result.Dummy21; }

@@ -8022,7 +8022,7 @@
       }

       

       public bool HasDummy22 {

-        get { return result.HasDummy22; }

+        get { return result.hasDummy22; }

       }

       public int Dummy22 {

         get { return result.Dummy22; }

@@ -8040,7 +8040,7 @@
       }

       

       public bool HasDummy23 {

-        get { return result.HasDummy23; }

+        get { return result.hasDummy23; }

       }

       public int Dummy23 {

         get { return result.Dummy23; }

@@ -8058,7 +8058,7 @@
       }

       

       public bool HasDummy24 {

-        get { return result.HasDummy24; }

+        get { return result.hasDummy24; }

       }

       public int Dummy24 {

         get { return result.Dummy24; }

@@ -8076,7 +8076,7 @@
       }

       

       public bool HasDummy25 {

-        get { return result.HasDummy25; }

+        get { return result.hasDummy25; }

       }

       public int Dummy25 {

         get { return result.Dummy25; }

@@ -8094,7 +8094,7 @@
       }

       

       public bool HasDummy26 {

-        get { return result.HasDummy26; }

+        get { return result.hasDummy26; }

       }

       public int Dummy26 {

         get { return result.Dummy26; }

@@ -8112,7 +8112,7 @@
       }

       

       public bool HasDummy27 {

-        get { return result.HasDummy27; }

+        get { return result.hasDummy27; }

       }

       public int Dummy27 {

         get { return result.Dummy27; }

@@ -8130,7 +8130,7 @@
       }

       

       public bool HasDummy28 {

-        get { return result.HasDummy28; }

+        get { return result.hasDummy28; }

       }

       public int Dummy28 {

         get { return result.Dummy28; }

@@ -8148,7 +8148,7 @@
       }

       

       public bool HasDummy29 {

-        get { return result.HasDummy29; }

+        get { return result.hasDummy29; }

       }

       public int Dummy29 {

         get { return result.Dummy29; }

@@ -8166,7 +8166,7 @@
       }

       

       public bool HasDummy30 {

-        get { return result.HasDummy30; }

+        get { return result.hasDummy30; }

       }

       public int Dummy30 {

         get { return result.Dummy30; }

@@ -8184,7 +8184,7 @@
       }

       

       public bool HasDummy31 {

-        get { return result.HasDummy31; }

+        get { return result.hasDummy31; }

       }

       public int Dummy31 {

         get { return result.Dummy31; }

@@ -8202,7 +8202,7 @@
       }

       

       public bool HasDummy32 {

-        get { return result.HasDummy32; }

+        get { return result.hasDummy32; }

       }

       public int Dummy32 {

         get { return result.Dummy32; }

@@ -8220,7 +8220,7 @@
       }

       

       public bool HasC {

-        get { return result.HasC; }

+        get { return result.hasC; }

       }

       public int C {

         get { return result.C; }

@@ -8313,13 +8313,13 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasOptionalMessage) {

+      if (hasOptionalMessage) {

         output.WriteMessage(1, "optional_message", OptionalMessage);

       }

       if (repeatedMessage_.Count > 0) {

         output.WriteArray(pbd::FieldType.Message, 2, "repeated_message", repeatedMessage_);

       }

-      if (HasDummy) {

+      if (hasDummy) {

         output.WriteInt32(3, "dummy", Dummy);

       }

       UnknownFields.WriteTo(output);

@@ -8332,13 +8332,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasOptionalMessage) {

+        if (hasOptionalMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalMessage);

         }

         foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {

           size += pb::CodedOutputStream.ComputeMessageSize(2, element);

         }

-        if (HasDummy) {

+        if (hasDummy) {

           size += pb::CodedOutputStream.ComputeInt32Size(3, Dummy);

         }

         size += UnknownFields.SerializedSize;

@@ -8478,7 +8478,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder();

-              if (HasOptionalMessage) {

+              if (result.hasOptionalMessage) {

                 subBuilder.MergeFrom(OptionalMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -8504,7 +8504,7 @@
       

       

       public bool HasOptionalMessage {

-       get { return result.HasOptionalMessage; }

+       get { return result.hasOptionalMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {

         get { return result.OptionalMessage; }

@@ -8524,7 +8524,7 @@
       }

       public Builder MergeOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalMessage &&

+        if (result.hasOptionalMessage &&

             result.optionalMessage_ != global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) {

             result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder(result.optionalMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -8578,7 +8578,7 @@
       }

       

       public bool HasDummy {

-        get { return result.HasDummy; }

+        get { return result.hasDummy; }

       }

       public int Dummy {

         get { return result.Dummy; }

@@ -8643,7 +8643,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasForeignNested) {

+      if (hasForeignNested) {

         output.WriteMessage(1, "foreign_nested", ForeignNested);

       }

       UnknownFields.WriteTo(output);

@@ -8656,7 +8656,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasForeignNested) {

+        if (hasForeignNested) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, ForeignNested);

         }

         size += UnknownFields.SerializedSize;

@@ -8789,7 +8789,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();

-              if (HasForeignNested) {

+              if (result.hasForeignNested) {

                 subBuilder.MergeFrom(ForeignNested);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -8807,7 +8807,7 @@
       

       

       public bool HasForeignNested {

-       get { return result.HasForeignNested; }

+       get { return result.hasForeignNested; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {

         get { return result.ForeignNested; }

@@ -8827,7 +8827,7 @@
       }

       public Builder MergeForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasForeignNested &&

+        if (result.hasForeignNested &&

             result.foreignNested_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {

             result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.foreignNested_).MergeFrom(value).BuildPartial();

         } else {

@@ -9461,10 +9461,10 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(1, "a", A);

       }

-      if (HasBb) {

+      if (hasBb) {

         output.WriteInt32(268435455, "bb", Bb);

       }

       UnknownFields.WriteTo(output);

@@ -9477,10 +9477,10 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, A);

         }

-        if (HasBb) {

+        if (hasBb) {

           size += pb::CodedOutputStream.ComputeInt32Size(268435455, Bb);

         }

         size += UnknownFields.SerializedSize;

@@ -9633,7 +9633,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -9651,7 +9651,7 @@
       }

       

       public bool HasBb {

-        get { return result.HasBb; }

+        get { return result.hasBb; }

       }

       public int Bb {

         get { return result.Bb; }

@@ -9726,10 +9726,10 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteMessage(1, "a", A);

       }

-      if (HasI) {

+      if (hasI) {

         output.WriteInt32(2, "i", I);

       }

       UnknownFields.WriteTo(output);

@@ -9742,10 +9742,10 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, A);

         }

-        if (HasI) {

+        if (hasI) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, I);

         }

         size += UnknownFields.SerializedSize;

@@ -9881,7 +9881,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder();

-              if (HasA) {

+              if (result.hasA) {

                 subBuilder.MergeFrom(A);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -9903,7 +9903,7 @@
       

       

       public bool HasA {

-       get { return result.HasA; }

+       get { return result.hasA; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {

         get { return result.A; }

@@ -9923,7 +9923,7 @@
       }

       public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasA &&

+        if (result.hasA &&

             result.a_ != global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) {

             result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();

         } else {

@@ -9939,7 +9939,7 @@
       }

       

       public bool HasI {

-        get { return result.HasI; }

+        get { return result.hasI; }

       }

       public int I {

         get { return result.I; }

@@ -10004,7 +10004,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasBb) {

+      if (hasBb) {

         output.WriteMessage(1, "bb", Bb);

       }

       UnknownFields.WriteTo(output);

@@ -10017,7 +10017,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasBb) {

+        if (hasBb) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, Bb);

         }

         size += UnknownFields.SerializedSize;

@@ -10150,7 +10150,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder();

-              if (HasBb) {

+              if (result.hasBb) {

                 subBuilder.MergeFrom(Bb);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -10168,7 +10168,7 @@
       

       

       public bool HasBb {

-       get { return result.HasBb; }

+       get { return result.hasBb; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {

         get { return result.Bb; }

@@ -10188,7 +10188,7 @@
       }

       public Builder MergeBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasBb &&

+        if (result.hasBb &&

             result.bb_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) {

             result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder(result.bb_).MergeFrom(value).BuildPartial();

         } else {

@@ -10261,10 +10261,10 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteMessage(1, "a", A);

       }

-      if (HasOptionalInt32) {

+      if (hasOptionalInt32) {

         output.WriteInt32(2, "optional_int32", OptionalInt32);

       }

       UnknownFields.WriteTo(output);

@@ -10277,10 +10277,10 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, A);

         }

-        if (HasOptionalInt32) {

+        if (hasOptionalInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, OptionalInt32);

         }

         size += UnknownFields.SerializedSize;

@@ -10416,7 +10416,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder();

-              if (HasA) {

+              if (result.hasA) {

                 subBuilder.MergeFrom(A);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -10438,7 +10438,7 @@
       

       

       public bool HasA {

-       get { return result.HasA; }

+       get { return result.hasA; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {

         get { return result.A; }

@@ -10458,7 +10458,7 @@
       }

       public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasA &&

+        if (result.hasA &&

             result.a_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) {

             result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();

         } else {

@@ -10474,7 +10474,7 @@
       }

       

       public bool HasOptionalInt32 {

-        get { return result.HasOptionalInt32; }

+        get { return result.hasOptionalInt32; }

       }

       public int OptionalInt32 {

         get { return result.OptionalInt32; }

@@ -10569,7 +10569,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(1, "a", A);

           }

           UnknownFields.WriteTo(output);

@@ -10582,7 +10582,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, A);

             }

             size += UnknownFields.SerializedSize;

@@ -10728,7 +10728,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -10793,7 +10793,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(1, "a", A);

           }

           UnknownFields.WriteTo(output);

@@ -10806,7 +10806,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, A);

             }

             size += UnknownFields.SerializedSize;

@@ -10952,7 +10952,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -11015,13 +11015,13 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(1, "a", A);

       }

-      if (HasFoo) {

+      if (hasFoo) {

         output.WriteGroup(2, "foo", Foo);

       }

-      if (HasBar) {

+      if (hasBar) {

         output.WriteGroup(3, "bar", Bar);

       }

       UnknownFields.WriteTo(output);

@@ -11034,13 +11034,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, A);

         }

-        if (HasFoo) {

+        if (hasFoo) {

           size += pb::CodedOutputStream.ComputeGroupSize(2, Foo);

         }

-        if (HasBar) {

+        if (hasBar) {

           size += pb::CodedOutputStream.ComputeGroupSize(3, Bar);

         }

         size += UnknownFields.SerializedSize;

@@ -11183,7 +11183,7 @@
             }

             case 19: {

               global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder();

-              if (HasFoo) {

+              if (result.hasFoo) {

                 subBuilder.MergeFrom(Foo);

               }

               input.ReadGroup(2, subBuilder, extensionRegistry);

@@ -11192,7 +11192,7 @@
             }

             case 27: {

               global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder();

-              if (HasBar) {

+              if (result.hasBar) {

                 subBuilder.MergeFrom(Bar);

               }

               input.ReadGroup(3, subBuilder, extensionRegistry);

@@ -11210,7 +11210,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -11228,7 +11228,7 @@
       }

       

       public bool HasFoo {

-       get { return result.HasFoo; }

+       get { return result.hasFoo; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {

         get { return result.Foo; }

@@ -11248,7 +11248,7 @@
       }

       public Builder MergeFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasFoo &&

+        if (result.hasFoo &&

             result.foo_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) {

             result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder(result.foo_).MergeFrom(value).BuildPartial();

         } else {

@@ -11264,7 +11264,7 @@
       }

       

       public bool HasBar {

-       get { return result.HasBar; }

+       get { return result.hasBar; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {

         get { return result.Bar; }

@@ -11284,7 +11284,7 @@
       }

       public Builder MergeBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasBar &&

+        if (result.hasBar &&

             result.bar_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) {

             result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder(result.bar_).MergeFrom(value).BuildPartial();

         } else {

@@ -11660,7 +11660,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasOptionalNestedMessage) {

+      if (hasOptionalNestedMessage) {

         output.WriteMessage(1, "optional_nested_message", OptionalNestedMessage);

       }

       UnknownFields.WriteTo(output);

@@ -11673,7 +11673,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasOptionalNestedMessage) {

+        if (hasOptionalNestedMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalNestedMessage);

         }

         size += UnknownFields.SerializedSize;

@@ -11806,7 +11806,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder();

-              if (HasOptionalNestedMessage) {

+              if (result.hasOptionalNestedMessage) {

                 subBuilder.MergeFrom(OptionalNestedMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -11824,7 +11824,7 @@
       

       

       public bool HasOptionalNestedMessage {

-       get { return result.HasOptionalNestedMessage; }

+       get { return result.hasOptionalNestedMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {

         get { return result.OptionalNestedMessage; }

@@ -11844,7 +11844,7 @@
       }

       public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalNestedMessage &&

+        if (result.hasOptionalNestedMessage &&

             result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) {

             result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -12029,22 +12029,22 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasPrimitiveField) {

+      if (hasPrimitiveField) {

         output.WriteInt32(1, "PrimitiveField", PrimitiveField);

       }

-      if (HasStringField) {

+      if (hasStringField) {

         output.WriteString(2, "StringField", StringField);

       }

-      if (HasEnumField) {

+      if (hasEnumField) {

         output.WriteEnum(3, "EnumField", (int) EnumField, EnumField.ToString());

       }

-      if (HasMessageField) {

+      if (hasMessageField) {

         output.WriteMessage(4, "MessageField", MessageField);

       }

-      if (HasStringPieceField) {

+      if (hasStringPieceField) {

         output.WriteString(5, "StringPieceField", StringPieceField);

       }

-      if (HasCordField) {

+      if (hasCordField) {

         output.WriteString(6, "CordField", CordField);

       }

       if (repeatedPrimitiveField_.Count > 0) {

@@ -12075,22 +12075,22 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasPrimitiveField) {

+        if (hasPrimitiveField) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, PrimitiveField);

         }

-        if (HasStringField) {

+        if (hasStringField) {

           size += pb::CodedOutputStream.ComputeStringSize(2, StringField);

         }

-        if (HasEnumField) {

+        if (hasEnumField) {

           size += pb::CodedOutputStream.ComputeEnumSize(3, (int) EnumField);

         }

-        if (HasMessageField) {

+        if (hasMessageField) {

           size += pb::CodedOutputStream.ComputeMessageSize(4, MessageField);

         }

-        if (HasStringPieceField) {

+        if (hasStringPieceField) {

           size += pb::CodedOutputStream.ComputeStringSize(5, StringPieceField);

         }

-        if (HasCordField) {

+        if (hasCordField) {

           size += pb::CodedOutputStream.ComputeStringSize(6, CordField);

         }

         {

@@ -12327,7 +12327,7 @@
             }

             case 34: {

               global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();

-              if (HasMessageField) {

+              if (result.hasMessageField) {

                 subBuilder.MergeFrom(MessageField);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -12388,7 +12388,7 @@
       

       

       public bool HasPrimitiveField {

-        get { return result.HasPrimitiveField; }

+        get { return result.hasPrimitiveField; }

       }

       public int PrimitiveField {

         get { return result.PrimitiveField; }

@@ -12406,7 +12406,7 @@
       }

       

       public bool HasStringField {

-        get { return result.HasStringField; }

+        get { return result.hasStringField; }

       }

       public string StringField {

         get { return result.StringField; }

@@ -12425,7 +12425,7 @@
       }

       

       public bool HasEnumField {

-       get { return result.HasEnumField; }

+       get { return result.hasEnumField; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {

         get { return result.EnumField; }

@@ -12443,7 +12443,7 @@
       }

       

       public bool HasMessageField {

-       get { return result.HasMessageField; }

+       get { return result.hasMessageField; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {

         get { return result.MessageField; }

@@ -12463,7 +12463,7 @@
       }

       public Builder MergeMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasMessageField &&

+        if (result.hasMessageField &&

             result.messageField_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {

             result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageField_).MergeFrom(value).BuildPartial();

         } else {

@@ -12479,7 +12479,7 @@
       }

       

       public bool HasStringPieceField {

-        get { return result.HasStringPieceField; }

+        get { return result.hasStringPieceField; }

       }

       public string StringPieceField {

         get { return result.StringPieceField; }

@@ -12498,7 +12498,7 @@
       }

       

       public bool HasCordField {

-        get { return result.HasCordField; }

+        get { return result.hasCordField; }

       }

       public string CordField {

         get { return result.CordField; }

@@ -12760,15 +12760,15 @@
     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

       pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);

-      if (HasMyInt) {

+      if (hasMyInt) {

         output.WriteInt64(1, "my_int", MyInt);

       }

       extensionWriter.WriteUntil(11, output);

-      if (HasMyString) {

+      if (hasMyString) {

         output.WriteString(11, "my_string", MyString);

       }

       extensionWriter.WriteUntil(101, output);

-      if (HasMyFloat) {

+      if (hasMyFloat) {

         output.WriteFloat(101, "my_float", MyFloat);

       }

       UnknownFields.WriteTo(output);

@@ -12781,13 +12781,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasMyString) {

+        if (hasMyString) {

           size += pb::CodedOutputStream.ComputeStringSize(11, MyString);

         }

-        if (HasMyInt) {

+        if (hasMyInt) {

           size += pb::CodedOutputStream.ComputeInt64Size(1, MyInt);

         }

-        if (HasMyFloat) {

+        if (hasMyFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(101, MyFloat);

         }

         size += ExtensionsSerializedSize;

@@ -12949,7 +12949,7 @@
       

       

       public bool HasMyString {

-        get { return result.HasMyString; }

+        get { return result.hasMyString; }

       }

       public string MyString {

         get { return result.MyString; }

@@ -12968,7 +12968,7 @@
       }

       

       public bool HasMyInt {

-        get { return result.HasMyInt; }

+        get { return result.hasMyInt; }

       }

       public long MyInt {

         get { return result.MyInt; }

@@ -12986,7 +12986,7 @@
       }

       

       public bool HasMyFloat {

-        get { return result.HasMyFloat; }

+        get { return result.hasMyFloat; }

       }

       public float MyFloat {

         get { return result.MyFloat; }

@@ -13233,61 +13233,61 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasEscapedBytes) {

+      if (hasEscapedBytes) {

         output.WriteBytes(1, "escaped_bytes", EscapedBytes);

       }

-      if (HasLargeUint32) {

+      if (hasLargeUint32) {

         output.WriteUInt32(2, "large_uint32", LargeUint32);

       }

-      if (HasLargeUint64) {

+      if (hasLargeUint64) {

         output.WriteUInt64(3, "large_uint64", LargeUint64);

       }

-      if (HasSmallInt32) {

+      if (hasSmallInt32) {

         output.WriteInt32(4, "small_int32", SmallInt32);

       }

-      if (HasSmallInt64) {

+      if (hasSmallInt64) {

         output.WriteInt64(5, "small_int64", SmallInt64);

       }

-      if (HasUtf8String) {

+      if (hasUtf8String) {

         output.WriteString(6, "utf8_string", Utf8String);

       }

-      if (HasZeroFloat) {

+      if (hasZeroFloat) {

         output.WriteFloat(7, "zero_float", ZeroFloat);

       }

-      if (HasOneFloat) {

+      if (hasOneFloat) {

         output.WriteFloat(8, "one_float", OneFloat);

       }

-      if (HasSmallFloat) {

+      if (hasSmallFloat) {

         output.WriteFloat(9, "small_float", SmallFloat);

       }

-      if (HasNegativeOneFloat) {

+      if (hasNegativeOneFloat) {

         output.WriteFloat(10, "negative_one_float", NegativeOneFloat);

       }

-      if (HasNegativeFloat) {

+      if (hasNegativeFloat) {

         output.WriteFloat(11, "negative_float", NegativeFloat);

       }

-      if (HasLargeFloat) {

+      if (hasLargeFloat) {

         output.WriteFloat(12, "large_float", LargeFloat);

       }

-      if (HasSmallNegativeFloat) {

+      if (hasSmallNegativeFloat) {

         output.WriteFloat(13, "small_negative_float", SmallNegativeFloat);

       }

-      if (HasInfDouble) {

+      if (hasInfDouble) {

         output.WriteDouble(14, "inf_double", InfDouble);

       }

-      if (HasNegInfDouble) {

+      if (hasNegInfDouble) {

         output.WriteDouble(15, "neg_inf_double", NegInfDouble);

       }

-      if (HasNanDouble) {

+      if (hasNanDouble) {

         output.WriteDouble(16, "nan_double", NanDouble);

       }

-      if (HasInfFloat) {

+      if (hasInfFloat) {

         output.WriteFloat(17, "inf_float", InfFloat);

       }

-      if (HasNegInfFloat) {

+      if (hasNegInfFloat) {

         output.WriteFloat(18, "neg_inf_float", NegInfFloat);

       }

-      if (HasNanFloat) {

+      if (hasNanFloat) {

         output.WriteFloat(19, "nan_float", NanFloat);

       }

       UnknownFields.WriteTo(output);

@@ -13300,61 +13300,61 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasEscapedBytes) {

+        if (hasEscapedBytes) {

           size += pb::CodedOutputStream.ComputeBytesSize(1, EscapedBytes);

         }

-        if (HasLargeUint32) {

+        if (hasLargeUint32) {

           size += pb::CodedOutputStream.ComputeUInt32Size(2, LargeUint32);

         }

-        if (HasLargeUint64) {

+        if (hasLargeUint64) {

           size += pb::CodedOutputStream.ComputeUInt64Size(3, LargeUint64);

         }

-        if (HasSmallInt32) {

+        if (hasSmallInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(4, SmallInt32);

         }

-        if (HasSmallInt64) {

+        if (hasSmallInt64) {

           size += pb::CodedOutputStream.ComputeInt64Size(5, SmallInt64);

         }

-        if (HasUtf8String) {

+        if (hasUtf8String) {

           size += pb::CodedOutputStream.ComputeStringSize(6, Utf8String);

         }

-        if (HasZeroFloat) {

+        if (hasZeroFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(7, ZeroFloat);

         }

-        if (HasOneFloat) {

+        if (hasOneFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(8, OneFloat);

         }

-        if (HasSmallFloat) {

+        if (hasSmallFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(9, SmallFloat);

         }

-        if (HasNegativeOneFloat) {

+        if (hasNegativeOneFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(10, NegativeOneFloat);

         }

-        if (HasNegativeFloat) {

+        if (hasNegativeFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(11, NegativeFloat);

         }

-        if (HasLargeFloat) {

+        if (hasLargeFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(12, LargeFloat);

         }

-        if (HasSmallNegativeFloat) {

+        if (hasSmallNegativeFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(13, SmallNegativeFloat);

         }

-        if (HasInfDouble) {

+        if (hasInfDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(14, InfDouble);

         }

-        if (HasNegInfDouble) {

+        if (hasNegInfDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(15, NegInfDouble);

         }

-        if (HasNanDouble) {

+        if (hasNanDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(16, NanDouble);

         }

-        if (HasInfFloat) {

+        if (hasInfFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(17, InfFloat);

         }

-        if (HasNegInfFloat) {

+        if (hasNegInfFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(18, NegInfFloat);

         }

-        if (HasNanFloat) {

+        if (hasNanFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(19, NanFloat);

         }

         size += UnknownFields.SerializedSize;

@@ -13626,7 +13626,7 @@
       

       

       public bool HasEscapedBytes {

-        get { return result.HasEscapedBytes; }

+        get { return result.hasEscapedBytes; }

       }

       public pb::ByteString EscapedBytes {

         get { return result.EscapedBytes; }

@@ -13645,7 +13645,7 @@
       }

       

       public bool HasLargeUint32 {

-        get { return result.HasLargeUint32; }

+        get { return result.hasLargeUint32; }

       }

       [global::System.CLSCompliant(false)]

       public uint LargeUint32 {

@@ -13665,7 +13665,7 @@
       }

       

       public bool HasLargeUint64 {

-        get { return result.HasLargeUint64; }

+        get { return result.hasLargeUint64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong LargeUint64 {

@@ -13685,7 +13685,7 @@
       }

       

       public bool HasSmallInt32 {

-        get { return result.HasSmallInt32; }

+        get { return result.hasSmallInt32; }

       }

       public int SmallInt32 {

         get { return result.SmallInt32; }

@@ -13703,7 +13703,7 @@
       }

       

       public bool HasSmallInt64 {

-        get { return result.HasSmallInt64; }

+        get { return result.hasSmallInt64; }

       }

       public long SmallInt64 {

         get { return result.SmallInt64; }

@@ -13721,7 +13721,7 @@
       }

       

       public bool HasUtf8String {

-        get { return result.HasUtf8String; }

+        get { return result.hasUtf8String; }

       }

       public string Utf8String {

         get { return result.Utf8String; }

@@ -13740,7 +13740,7 @@
       }

       

       public bool HasZeroFloat {

-        get { return result.HasZeroFloat; }

+        get { return result.hasZeroFloat; }

       }

       public float ZeroFloat {

         get { return result.ZeroFloat; }

@@ -13758,7 +13758,7 @@
       }

       

       public bool HasOneFloat {

-        get { return result.HasOneFloat; }

+        get { return result.hasOneFloat; }

       }

       public float OneFloat {

         get { return result.OneFloat; }

@@ -13776,7 +13776,7 @@
       }

       

       public bool HasSmallFloat {

-        get { return result.HasSmallFloat; }

+        get { return result.hasSmallFloat; }

       }

       public float SmallFloat {

         get { return result.SmallFloat; }

@@ -13794,7 +13794,7 @@
       }

       

       public bool HasNegativeOneFloat {

-        get { return result.HasNegativeOneFloat; }

+        get { return result.hasNegativeOneFloat; }

       }

       public float NegativeOneFloat {

         get { return result.NegativeOneFloat; }

@@ -13812,7 +13812,7 @@
       }

       

       public bool HasNegativeFloat {

-        get { return result.HasNegativeFloat; }

+        get { return result.hasNegativeFloat; }

       }

       public float NegativeFloat {

         get { return result.NegativeFloat; }

@@ -13830,7 +13830,7 @@
       }

       

       public bool HasLargeFloat {

-        get { return result.HasLargeFloat; }

+        get { return result.hasLargeFloat; }

       }

       public float LargeFloat {

         get { return result.LargeFloat; }

@@ -13848,7 +13848,7 @@
       }

       

       public bool HasSmallNegativeFloat {

-        get { return result.HasSmallNegativeFloat; }

+        get { return result.hasSmallNegativeFloat; }

       }

       public float SmallNegativeFloat {

         get { return result.SmallNegativeFloat; }

@@ -13866,7 +13866,7 @@
       }

       

       public bool HasInfDouble {

-        get { return result.HasInfDouble; }

+        get { return result.hasInfDouble; }

       }

       public double InfDouble {

         get { return result.InfDouble; }

@@ -13884,7 +13884,7 @@
       }

       

       public bool HasNegInfDouble {

-        get { return result.HasNegInfDouble; }

+        get { return result.hasNegInfDouble; }

       }

       public double NegInfDouble {

         get { return result.NegInfDouble; }

@@ -13902,7 +13902,7 @@
       }

       

       public bool HasNanDouble {

-        get { return result.HasNanDouble; }

+        get { return result.hasNanDouble; }

       }

       public double NanDouble {

         get { return result.NanDouble; }

@@ -13920,7 +13920,7 @@
       }

       

       public bool HasInfFloat {

-        get { return result.HasInfFloat; }

+        get { return result.hasInfFloat; }

       }

       public float InfFloat {

         get { return result.InfFloat; }

@@ -13938,7 +13938,7 @@
       }

       

       public bool HasNegInfFloat {

-        get { return result.HasNegInfFloat; }

+        get { return result.hasNegInfFloat; }

       }

       public float NegInfFloat {

         get { return result.NegInfFloat; }

@@ -13956,7 +13956,7 @@
       }

       

       public bool HasNanFloat {

-        get { return result.HasNanFloat; }

+        get { return result.hasNanFloat; }

       }

       public float NanFloat {

         get { return result.NanFloat; }

@@ -14021,7 +14021,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasData) {

+      if (hasData) {

         output.WriteString(1, "data", Data);

       }

       UnknownFields.WriteTo(output);

@@ -14034,7 +14034,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasData) {

+        if (hasData) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Data);

         }

         size += UnknownFields.SerializedSize;

@@ -14180,7 +14180,7 @@
       

       

       public bool HasData {

-        get { return result.HasData; }

+        get { return result.hasData; }

       }

       public string Data {

         get { return result.Data; }

@@ -14246,7 +14246,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasData) {

+      if (hasData) {

         output.WriteBytes(1, "data", Data);

       }

       UnknownFields.WriteTo(output);

@@ -14259,7 +14259,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasData) {

+        if (hasData) {

           size += pb::CodedOutputStream.ComputeBytesSize(1, Data);

         }

         size += UnknownFields.SerializedSize;

@@ -14405,7 +14405,7 @@
       

       

       public bool HasData {

-        get { return result.HasData; }

+        get { return result.hasData; }

       }

       public pb::ByteString Data {

         get { return result.Data; }

@@ -16980,7 +16980,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasDynamicField) {

+          if (hasDynamicField) {

             output.WriteInt32(2100, "dynamic_field", DynamicField);

           }

           UnknownFields.WriteTo(output);

@@ -16993,7 +16993,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasDynamicField) {

+            if (hasDynamicField) {

               size += pb::CodedOutputStream.ComputeInt32Size(2100, DynamicField);

             }

             size += UnknownFields.SerializedSize;

@@ -17139,7 +17139,7 @@
           

           

           public bool HasDynamicField {

-            get { return result.HasDynamicField; }

+            get { return result.hasDynamicField; }

           }

           public int DynamicField {

             get { return result.DynamicField; }

@@ -17248,19 +17248,19 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasScalarExtension) {

+      if (hasScalarExtension) {

         output.WriteFixed32(2000, "scalar_extension", ScalarExtension);

       }

-      if (HasEnumExtension) {

+      if (hasEnumExtension) {

         output.WriteEnum(2001, "enum_extension", (int) EnumExtension, EnumExtension.ToString());

       }

-      if (HasDynamicEnumExtension) {

+      if (hasDynamicEnumExtension) {

         output.WriteEnum(2002, "dynamic_enum_extension", (int) DynamicEnumExtension, DynamicEnumExtension.ToString());

       }

-      if (HasMessageExtension) {

+      if (hasMessageExtension) {

         output.WriteMessage(2003, "message_extension", MessageExtension);

       }

-      if (HasDynamicMessageExtension) {

+      if (hasDynamicMessageExtension) {

         output.WriteMessage(2004, "dynamic_message_extension", DynamicMessageExtension);

       }

       if (repeatedExtension_.Count > 0) {

@@ -17279,19 +17279,19 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasScalarExtension) {

+        if (hasScalarExtension) {

           size += pb::CodedOutputStream.ComputeFixed32Size(2000, ScalarExtension);

         }

-        if (HasEnumExtension) {

+        if (hasEnumExtension) {

           size += pb::CodedOutputStream.ComputeEnumSize(2001, (int) EnumExtension);

         }

-        if (HasDynamicEnumExtension) {

+        if (hasDynamicEnumExtension) {

           size += pb::CodedOutputStream.ComputeEnumSize(2002, (int) DynamicEnumExtension);

         }

-        if (HasMessageExtension) {

+        if (hasMessageExtension) {

           size += pb::CodedOutputStream.ComputeMessageSize(2003, MessageExtension);

         }

-        if (HasDynamicMessageExtension) {

+        if (hasDynamicMessageExtension) {

           size += pb::CodedOutputStream.ComputeMessageSize(2004, DynamicMessageExtension);

         }

         {

@@ -17491,7 +17491,7 @@
             }

             case 16026: {

               global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();

-              if (HasMessageExtension) {

+              if (result.hasMessageExtension) {

                 subBuilder.MergeFrom(MessageExtension);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -17500,7 +17500,7 @@
             }

             case 16034: {

               global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder();

-              if (HasDynamicMessageExtension) {

+              if (result.hasDynamicMessageExtension) {

                 subBuilder.MergeFrom(DynamicMessageExtension);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -17527,7 +17527,7 @@
       

       

       public bool HasScalarExtension {

-        get { return result.HasScalarExtension; }

+        get { return result.hasScalarExtension; }

       }

       [global::System.CLSCompliant(false)]

       public uint ScalarExtension {

@@ -17547,7 +17547,7 @@
       }

       

       public bool HasEnumExtension {

-       get { return result.HasEnumExtension; }

+       get { return result.hasEnumExtension; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {

         get { return result.EnumExtension; }

@@ -17565,7 +17565,7 @@
       }

       

       public bool HasDynamicEnumExtension {

-       get { return result.HasDynamicEnumExtension; }

+       get { return result.hasDynamicEnumExtension; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {

         get { return result.DynamicEnumExtension; }

@@ -17583,7 +17583,7 @@
       }

       

       public bool HasMessageExtension {

-       get { return result.HasMessageExtension; }

+       get { return result.hasMessageExtension; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {

         get { return result.MessageExtension; }

@@ -17603,7 +17603,7 @@
       }

       public Builder MergeMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasMessageExtension &&

+        if (result.hasMessageExtension &&

             result.messageExtension_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {

             result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageExtension_).MergeFrom(value).BuildPartial();

         } else {

@@ -17619,7 +17619,7 @@
       }

       

       public bool HasDynamicMessageExtension {

-       get { return result.HasDynamicMessageExtension; }

+       get { return result.hasDynamicMessageExtension; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {

         get { return result.DynamicMessageExtension; }

@@ -17639,7 +17639,7 @@
       }

       public Builder MergeDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasDynamicMessageExtension &&

+        if (result.hasDynamicMessageExtension &&

             result.dynamicMessageExtension_ != global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) {

             result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder(result.dynamicMessageExtension_).MergeFrom(value).BuildPartial();

         } else {

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs
index 149bb28..828c6f4 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs
@@ -403,10 +403,10 @@
         

         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 @@
             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 @@
           

           

           public bool HasUrl {

-            get { return result.HasUrl; }

+            get { return result.hasUrl; }

           }

           public string Url {

             get { return result.Url; }

@@ -594,7 +594,7 @@
           }

           

           public bool HasName {

-            get { return result.HasName; }

+            get { return result.hasName; }

           }

           public string Name {

             get { return result.Name; }

@@ -905,7 +905,7 @@
       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 @@
           size += dataSize;

           size += 1 * criteria_.Count;

         }

-        if (HasPreviousResults) {

+        if (hasPreviousResults) {

           size += pb::CodedOutputStream.ComputeMessageSize(2, PreviousResults);

         }

         size += UnknownFields.SerializedSize;

@@ -1067,7 +1067,7 @@
             }

             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 @@
       }

       

       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 @@
       }

       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 {

diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
index 4318971..4d7ec7a 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
@@ -182,7 +182,7 @@
       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 @@
             size += 1 * options_.Count;

           }

         }

-        if (HasBinary) {

+        if (hasBinary) {

           size += pb::CodedOutputStream.ComputeBytesSize(4, Binary);

         }

         size += UnknownFields.SerializedSize;

@@ -395,7 +395,7 @@
       }

       

       public bool HasBinary {

-        get { return result.HasBinary; }

+        get { return result.hasBinary; }

       }

       public pb::ByteString Binary {

         get { return result.Binary; }

@@ -689,7 +689,7 @@
           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 @@
                 size += 1 * options_.Count;

               }

             }

-            if (HasBinary) {

+            if (hasBinary) {

               size += pb::CodedOutputStream.ComputeBytesSize(4, Binary);

             }

             size += UnknownFields.SerializedSize;

@@ -902,7 +902,7 @@
           }

           

           public bool HasBinary {

-            get { return result.HasBinary; }

+            get { return result.hasBinary; }

           }

           public pb::ByteString Binary {

             get { return result.Binary; }

@@ -1014,19 +1014,19 @@
     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasNumber) {

+        if (hasNumber) {

           size += pb::CodedOutputStream.ComputeInt64Size(6, Number);

         }

         {

@@ -1057,7 +1057,7 @@
           size += dataSize;

           size += 1 * numbers_.Count;

         }

-        if (HasText) {

+        if (hasText) {

           size += pb::CodedOutputStream.ComputeStringSize(3, Text);

         }

         {

@@ -1068,10 +1068,10 @@
           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 @@
             }

             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 @@
       

       

       public bool HasNumber {

-        get { return result.HasNumber; }

+        get { return result.hasNumber; }

       }

       public long Number {

         get { return result.Number; }

@@ -1317,7 +1317,7 @@
       }

       

       public bool HasText {

-        get { return result.HasText; }

+        get { return result.hasText; }

       }

       public string Text {

         get { return result.Text; }

@@ -1364,7 +1364,7 @@
       }

       

       public bool HasValid {

-        get { return result.HasValid; }

+        get { return result.hasValid; }

       }

       public bool Valid {

         get { return result.Valid; }

@@ -1382,7 +1382,7 @@
       }

       

       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 @@
       }

       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 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasNumber) {

+        if (hasNumber) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, Number);

         }

         size += UnknownFields.SerializedSize;

@@ -1663,7 +1663,7 @@
       

       

       public bool HasNumber {

-        get { return result.HasNumber; }

+        get { return result.hasNumber; }

       }

       public int Number {

         get { return result.Number; }

diff --git a/src/ProtocolBuffers/CodedOutputStream.cs b/src/ProtocolBuffers/CodedOutputStream.cs
index 39523c9..3103205 100644
--- a/src/ProtocolBuffers/CodedOutputStream.cs
+++ b/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 @@
             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,48 +420,141 @@
                 WriteFieldNoTag(fieldType, element);

         }

 

+        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.String:

+                    foreach (string value in ((IEnumerable<string>)list))

+                        WriteStringNoTag(value);

+                    break;

+                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:

+                    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:

+                    foreach (ulong value in ((IEnumerable<ulong>)list))

+                        WriteUInt64NoTag(value);

+                    break;

+                case FieldType.SInt32:

+                    foreach (int value in ((IEnumerable<int>)list))

+                        WriteSInt32NoTag(value);

+                    break;

+                case FieldType.SInt64:

+                    foreach (long value in ((IEnumerable<long>)list))

+                        WriteSInt64NoTag(value);

+                    break;

+                case FieldType.Fixed32:

+                    foreach (uint value in ((IEnumerable<uint>)list))

+                        WriteFixed32NoTag(value);

+                    break;

+                case FieldType.Fixed64:

+                    foreach (ulong value in ((IEnumerable<ulong>)list))

+                        WriteFixed64NoTag(value);

+                    break;

+                case FieldType.SFixed32:

+                    foreach (int value in ((IEnumerable<int>)list))

+                        WriteSFixed32NoTag(value);

+                    break;

+                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.Double:

-                    WriteDouble(fieldNumber, fieldName, (double) value);

+                case FieldType.String:

+                    WriteString(fieldNumber, fieldName, (string)value);

                     break;

-                case FieldType.Float:

-                    WriteFloat(fieldNumber, fieldName, (float) value);

+                case FieldType.Message:

+                    WriteMessage(fieldNumber, fieldName, (IMessageLite)value);

                     break;

-                case FieldType.Int64:

-                    WriteInt64(fieldNumber, fieldName, (long) value);

+                case FieldType.Group:

+                    WriteGroup(fieldNumber, fieldName, (IMessageLite)value);

                     break;

-                case FieldType.UInt64:

-                    WriteUInt64(fieldNumber, fieldName, (ulong) value);

+                case FieldType.Bytes:

+                    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.Fixed64:

-                    WriteFixed64(fieldNumber, fieldName, (ulong) value);

+                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.Bool:

-                    WriteBool(fieldNumber, fieldName, (bool) value);

-                    break;

-                case FieldType.String:

-                    WriteString(fieldNumber, fieldName, (string) value);

-                    break;

-                case FieldType.Group:

-                    WriteGroup(fieldNumber, fieldName, (IMessageLite) value);

-                    break;

-                case FieldType.Message:

-                    WriteMessage(fieldNumber, fieldName, (IMessageLite) value);

-                    break;

-                case FieldType.Bytes:

-                    WriteBytes(fieldNumber, fieldName, (ByteString) value);

-                    break;

-                case FieldType.UInt32:

-                    WriteUInt32(fieldNumber, fieldName, (uint) value);

+                case FieldType.Fixed64:

+                    WriteFixed64(fieldNumber, fieldName, (ulong) value);

                     break;

                 case FieldType.SFixed32:

                     WriteSFixed32(fieldNumber, fieldName, (int) value);

@@ -388,17 +562,11 @@
                 case FieldType.SFixed64:

                     WriteSFixed64(fieldNumber, fieldName, (long) value);

                     break;

-                case FieldType.SInt32:

-                    WriteSInt32(fieldNumber, fieldName, (int) value);

+                case FieldType.Double:

+                    WriteDouble(fieldNumber, fieldName, (double)value);

                     break;

-                case FieldType.SInt64:

-                    WriteSInt64(fieldNumber, fieldName, (long) 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,50 +575,38 @@
         {

             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);

-                    break;

-                case FieldType.Bool:

-                    WriteBoolNoTag((bool) value);

-                    break;

-                case FieldType.String:

-                    WriteStringNoTag((string) value);

-                    break;

-                case FieldType.Group:

-                    WriteGroupNoTag((IMessageLite) value);

-                    break;

-                case FieldType.Message:

-                    WriteMessageNoTag((IMessageLite) value);

-                    break;

-                case FieldType.Bytes:

-                    WriteBytesNoTag((ByteString) value);

+                case FieldType.Int64:

+                    WriteInt64NoTag((long) value);

                     break;

                 case FieldType.UInt32:

                     WriteUInt32NoTag((uint) value);

                     break;

-                case FieldType.SFixed32:

-                    WriteSFixed32NoTag((int) value);

-                    break;

-                case FieldType.SFixed64:

-                    WriteSFixed64NoTag((long) value);

+                case FieldType.UInt64:

+                    WriteUInt64NoTag((ulong) value);

                     break;

                 case FieldType.SInt32:

                     WriteSInt32NoTag((int) value);

@@ -458,11 +614,23 @@
                 case FieldType.SInt64:

                     WriteSInt64NoTag((long) value);

                     break;

-                case FieldType.Enum:

-                    if (value is System.Enum)

-                        WriteEnumNoTag(((IConvertible)value).ToInt32(CultureInfo.InvariantCulture));

-                    else

-                        WriteEnumNoTag(((IEnumLite) value).Number);

+                case FieldType.Fixed32:

+                    WriteFixed32NoTag((uint) value);

+                    break;

+                case FieldType.Fixed64:

+                    WriteFixed64NoTag((ulong) value);

+                    break;

+                case FieldType.SFixed32:

+                    WriteSFixed32NoTag((int) value);

+                    break;

+                case FieldType.SFixed64:

+                    WriteSFixed64NoTag((long) value);

+                    break;

+                case FieldType.Double:

+                    WriteDoubleNoTag((double)value);

+                    break;

+                case FieldType.Float:

+                    WriteFloatNoTag((float)value);

                     break;

             }

         }

@@ -641,6 +809,7 @@
             WriteRawVarint32(WireFormat.MakeTag(fieldNumber, type));

         }

 

+#if false

         private void SlowWriteRawVarint32(uint value)

         {

             while (true)

@@ -657,7 +826,7 @@
                 }

             }

         }

-

+#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 @@
         [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 @@
                     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 @@
                     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)

diff --git a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
index a27e190..164e6c6 100644
--- a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
+++ b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
@@ -282,43 +282,43 @@
     

     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 @@
         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 @@
       

       

       public bool HasNamespace {

-        get { return result.HasNamespace; }

+        get { return result.hasNamespace; }

       }

       public string Namespace {

         get { return result.Namespace; }

@@ -624,7 +624,7 @@
       }

       

       public bool HasUmbrellaClassname {

-        get { return result.HasUmbrellaClassname; }

+        get { return result.hasUmbrellaClassname; }

       }

       public string UmbrellaClassname {

         get { return result.UmbrellaClassname; }

@@ -643,7 +643,7 @@
       }

       

       public bool HasPublicClasses {

-        get { return result.HasPublicClasses; }

+        get { return result.hasPublicClasses; }

       }

       public bool PublicClasses {

         get { return result.PublicClasses; }

@@ -661,7 +661,7 @@
       }

       

       public bool HasMultipleFiles {

-        get { return result.HasMultipleFiles; }

+        get { return result.hasMultipleFiles; }

       }

       public bool MultipleFiles {

         get { return result.MultipleFiles; }

@@ -679,7 +679,7 @@
       }

       

       public bool HasNestClasses {

-        get { return result.HasNestClasses; }

+        get { return result.hasNestClasses; }

       }

       public bool NestClasses {

         get { return result.NestClasses; }

@@ -697,7 +697,7 @@
       }

       

       public bool HasCodeContracts {

-        get { return result.HasCodeContracts; }

+        get { return result.hasCodeContracts; }

       }

       public bool CodeContracts {

         get { return result.CodeContracts; }

@@ -715,7 +715,7 @@
       }

       

       public bool HasExpandNamespaceDirectories {

-        get { return result.HasExpandNamespaceDirectories; }

+        get { return result.hasExpandNamespaceDirectories; }

       }

       public bool ExpandNamespaceDirectories {

         get { return result.ExpandNamespaceDirectories; }

@@ -733,7 +733,7 @@
       }

       

       public bool HasClsCompliance {

-        get { return result.HasClsCompliance; }

+        get { return result.hasClsCompliance; }

       }

       public bool ClsCompliance {

         get { return result.ClsCompliance; }

@@ -751,7 +751,7 @@
       }

       

       public bool HasFileExtension {

-        get { return result.HasFileExtension; }

+        get { return result.hasFileExtension; }

       }

       public string FileExtension {

         get { return result.FileExtension; }

@@ -770,7 +770,7 @@
       }

       

       public bool HasUmbrellaNamespace {

-        get { return result.HasUmbrellaNamespace; }

+        get { return result.hasUmbrellaNamespace; }

       }

       public string UmbrellaNamespace {

         get { return result.UmbrellaNamespace; }

@@ -789,7 +789,7 @@
       }

       

       public bool HasOutputDirectory {

-        get { return result.HasOutputDirectory; }

+        get { return result.hasOutputDirectory; }

       }

       public string OutputDirectory {

         get { return result.OutputDirectory; }

@@ -808,7 +808,7 @@
       }

       

       public bool HasIgnoreGoogleProtobuf {

-        get { return result.HasIgnoreGoogleProtobuf; }

+        get { return result.hasIgnoreGoogleProtobuf; }

       }

       public bool IgnoreGoogleProtobuf {

         get { return result.IgnoreGoogleProtobuf; }

@@ -826,7 +826,7 @@
       }

       

       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 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasPropertyName) {

+        if (hasPropertyName) {

           size += pb::CodedOutputStream.ComputeStringSize(1, PropertyName);

         }

         size += UnknownFields.SerializedSize;

@@ -1050,7 +1050,7 @@
       

       

       public bool HasPropertyName {

-        get { return result.HasPropertyName; }

+        get { return result.hasPropertyName; }

       }

       public string PropertyName {

         get { return result.PropertyName; }

@@ -1116,7 +1116,7 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasInterfaceId) {

+        if (hasInterfaceId) {

           size += pb::CodedOutputStream.ComputeStringSize(1, InterfaceId);

         }

         size += UnknownFields.SerializedSize;

@@ -1275,7 +1275,7 @@
       

       

       public bool HasInterfaceId {

-        get { return result.HasInterfaceId; }

+        get { return result.hasInterfaceId; }

       }

       public string InterfaceId {

         get { return result.InterfaceId; }

@@ -1341,7 +1341,7 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasDispatchId) {

+        if (hasDispatchId) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, DispatchId);

         }

         size += UnknownFields.SerializedSize;

@@ -1500,7 +1500,7 @@
       

       

       public bool HasDispatchId {

-        get { return result.HasDispatchId; }

+        get { return result.hasDispatchId; }

       }

       public int DispatchId {

         get { return result.DispatchId; }

diff --git a/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs b/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
index 3bacc23..0ab12e3 100644
--- a/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
+++ b/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
@@ -615,10 +615,10 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasName) {

+      if (hasName) {

         output.WriteString(1, "name", Name);

       }

-      if (HasPackage) {

+      if (hasPackage) {

         output.WriteString(2, "package", Package);

       }

       if (dependency_.Count > 0) {

@@ -636,7 +636,7 @@
       if (extension_.Count > 0) {

         output.WriteArray(pbd::FieldType.Message, 7, "extension", extension_);

       }

-      if (HasOptions) {

+      if (hasOptions) {

         output.WriteMessage(8, "options", Options);

       }

       UnknownFields.WriteTo(output);

@@ -649,10 +649,10 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasName) {

+        if (hasName) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Name);

         }

-        if (HasPackage) {

+        if (hasPackage) {

           size += pb::CodedOutputStream.ComputeStringSize(2, Package);

         }

         {

@@ -675,7 +675,7 @@
         foreach (global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto element in ExtensionList) {

           size += pb::CodedOutputStream.ComputeMessageSize(7, element);

         }

-        if (HasOptions) {

+        if (hasOptions) {

           size += pb::CodedOutputStream.ComputeMessageSize(8, Options);

         }

         size += UnknownFields.SerializedSize;

@@ -862,7 +862,7 @@
             }

             case 66: {

               global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.CreateBuilder();

-              if (HasOptions) {

+              if (result.hasOptions) {

                 subBuilder.MergeFrom(Options);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -880,7 +880,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -899,7 +899,7 @@
       }

       

       public bool HasPackage {

-        get { return result.HasPackage; }

+        get { return result.hasPackage; }

       }

       public string Package {

         get { return result.Package; }

@@ -1098,7 +1098,7 @@
       }

       

       public bool HasOptions {

-       get { return result.HasOptions; }

+       get { return result.hasOptions; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions Options {

         get { return result.Options; }

@@ -1118,7 +1118,7 @@
       }

       public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.FileOptions value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptions &&

+        if (result.hasOptions &&

             result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance) {

             result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();

         } else {

@@ -1221,10 +1221,10 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasStart) {

+          if (hasStart) {

             output.WriteInt32(1, "start", Start);

           }

-          if (HasEnd) {

+          if (hasEnd) {

             output.WriteInt32(2, "end", End);

           }

           UnknownFields.WriteTo(output);

@@ -1237,10 +1237,10 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasStart) {

+            if (hasStart) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, Start);

             }

-            if (HasEnd) {

+            if (hasEnd) {

               size += pb::CodedOutputStream.ComputeInt32Size(2, End);

             }

             size += UnknownFields.SerializedSize;

@@ -1393,7 +1393,7 @@
           

           

           public bool HasStart {

-            get { return result.HasStart; }

+            get { return result.hasStart; }

           }

           public int Start {

             get { return result.Start; }

@@ -1411,7 +1411,7 @@
           }

           

           public bool HasEnd {

-            get { return result.HasEnd; }

+            get { return result.hasEnd; }

           }

           public int End {

             get { return result.End; }

@@ -1539,7 +1539,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasName) {

+      if (hasName) {

         output.WriteString(1, "name", Name);

       }

       if (field_.Count > 0) {

@@ -1557,7 +1557,7 @@
       if (extension_.Count > 0) {

         output.WriteArray(pbd::FieldType.Message, 6, "extension", extension_);

       }

-      if (HasOptions) {

+      if (hasOptions) {

         output.WriteMessage(7, "options", Options);

       }

       UnknownFields.WriteTo(output);

@@ -1570,7 +1570,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasName) {

+        if (hasName) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Name);

         }

         foreach (global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto element in FieldList) {

@@ -1588,7 +1588,7 @@
         foreach (global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange element in ExtensionRangeList) {

           size += pb::CodedOutputStream.ComputeMessageSize(5, element);

         }

-        if (HasOptions) {

+        if (hasOptions) {

           size += pb::CodedOutputStream.ComputeMessageSize(7, Options);

         }

         size += UnknownFields.SerializedSize;

@@ -1768,7 +1768,7 @@
             }

             case 58: {

               global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.CreateBuilder();

-              if (HasOptions) {

+              if (result.hasOptions) {

                 subBuilder.MergeFrom(Options);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -1786,7 +1786,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -1995,7 +1995,7 @@
       }

       

       public bool HasOptions {

-       get { return result.HasOptions; }

+       get { return result.hasOptions; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions Options {

         get { return result.Options; }

@@ -2015,7 +2015,7 @@
       }

       public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptions &&

+        if (result.hasOptions &&

             result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance) {

             result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();

         } else {

@@ -2190,28 +2190,28 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasName) {

+      if (hasName) {

         output.WriteString(1, "name", Name);

       }

-      if (HasExtendee) {

+      if (hasExtendee) {

         output.WriteString(2, "extendee", Extendee);

       }

-      if (HasNumber) {

+      if (hasNumber) {

         output.WriteInt32(3, "number", Number);

       }

-      if (HasLabel) {

+      if (hasLabel) {

         output.WriteEnum(4, "label", (int) Label, Label.ToString());

       }

-      if (HasType) {

+      if (hasType) {

         output.WriteEnum(5, "type", (int) Type, Type.ToString());

       }

-      if (HasTypeName) {

+      if (hasTypeName) {

         output.WriteString(6, "type_name", TypeName);

       }

-      if (HasDefaultValue) {

+      if (hasDefaultValue) {

         output.WriteString(7, "default_value", DefaultValue);

       }

-      if (HasOptions) {

+      if (hasOptions) {

         output.WriteMessage(8, "options", Options);

       }

       UnknownFields.WriteTo(output);

@@ -2224,28 +2224,28 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasName) {

+        if (hasName) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Name);

         }

-        if (HasNumber) {

+        if (hasNumber) {

           size += pb::CodedOutputStream.ComputeInt32Size(3, Number);

         }

-        if (HasLabel) {

+        if (hasLabel) {

           size += pb::CodedOutputStream.ComputeEnumSize(4, (int) Label);

         }

-        if (HasType) {

+        if (hasType) {

           size += pb::CodedOutputStream.ComputeEnumSize(5, (int) Type);

         }

-        if (HasTypeName) {

+        if (hasTypeName) {

           size += pb::CodedOutputStream.ComputeStringSize(6, TypeName);

         }

-        if (HasExtendee) {

+        if (hasExtendee) {

           size += pb::CodedOutputStream.ComputeStringSize(2, Extendee);

         }

-        if (HasDefaultValue) {

+        if (hasDefaultValue) {

           size += pb::CodedOutputStream.ComputeStringSize(7, DefaultValue);

         }

-        if (HasOptions) {

+        if (hasOptions) {

           size += pb::CodedOutputStream.ComputeMessageSize(8, Options);

         }

         size += UnknownFields.SerializedSize;

@@ -2443,7 +2443,7 @@
             }

             case 66: {

               global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.CreateBuilder();

-              if (HasOptions) {

+              if (result.hasOptions) {

                 subBuilder.MergeFrom(Options);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -2461,7 +2461,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -2480,7 +2480,7 @@
       }

       

       public bool HasNumber {

-        get { return result.HasNumber; }

+        get { return result.hasNumber; }

       }

       public int Number {

         get { return result.Number; }

@@ -2498,7 +2498,7 @@
       }

       

       public bool HasLabel {

-       get { return result.HasLabel; }

+       get { return result.hasLabel; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label Label {

         get { return result.Label; }

@@ -2516,7 +2516,7 @@
       }

       

       public bool HasType {

-       get { return result.HasType; }

+       get { return result.hasType; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type Type {

         get { return result.Type; }

@@ -2534,7 +2534,7 @@
       }

       

       public bool HasTypeName {

-        get { return result.HasTypeName; }

+        get { return result.hasTypeName; }

       }

       public string TypeName {

         get { return result.TypeName; }

@@ -2553,7 +2553,7 @@
       }

       

       public bool HasExtendee {

-        get { return result.HasExtendee; }

+        get { return result.hasExtendee; }

       }

       public string Extendee {

         get { return result.Extendee; }

@@ -2572,7 +2572,7 @@
       }

       

       public bool HasDefaultValue {

-        get { return result.HasDefaultValue; }

+        get { return result.hasDefaultValue; }

       }

       public string DefaultValue {

         get { return result.DefaultValue; }

@@ -2591,7 +2591,7 @@
       }

       

       public bool HasOptions {

-       get { return result.HasOptions; }

+       get { return result.hasOptions; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions Options {

         get { return result.Options; }

@@ -2611,7 +2611,7 @@
       }

       public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptions &&

+        if (result.hasOptions &&

             result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance) {

             result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();

         } else {

@@ -2702,13 +2702,13 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasName) {

+      if (hasName) {

         output.WriteString(1, "name", Name);

       }

       if (value_.Count > 0) {

         output.WriteArray(pbd::FieldType.Message, 2, "value", value_);

       }

-      if (HasOptions) {

+      if (hasOptions) {

         output.WriteMessage(3, "options", Options);

       }

       UnknownFields.WriteTo(output);

@@ -2721,13 +2721,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasName) {

+        if (hasName) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Name);

         }

         foreach (global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto element in ValueList) {

           size += pb::CodedOutputStream.ComputeMessageSize(2, element);

         }

-        if (HasOptions) {

+        if (hasOptions) {

           size += pb::CodedOutputStream.ComputeMessageSize(3, Options);

         }

         size += UnknownFields.SerializedSize;

@@ -2875,7 +2875,7 @@
             }

             case 26: {

               global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.CreateBuilder();

-              if (HasOptions) {

+              if (result.hasOptions) {

                 subBuilder.MergeFrom(Options);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -2893,7 +2893,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -2950,7 +2950,7 @@
       }

       

       public bool HasOptions {

-       get { return result.HasOptions; }

+       get { return result.hasOptions; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions Options {

         get { return result.Options; }

@@ -2970,7 +2970,7 @@
       }

       public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptions &&

+        if (result.hasOptions &&

             result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance) {

             result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();

         } else {

@@ -3056,13 +3056,13 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasName) {

+      if (hasName) {

         output.WriteString(1, "name", Name);

       }

-      if (HasNumber) {

+      if (hasNumber) {

         output.WriteInt32(2, "number", Number);

       }

-      if (HasOptions) {

+      if (hasOptions) {

         output.WriteMessage(3, "options", Options);

       }

       UnknownFields.WriteTo(output);

@@ -3075,13 +3075,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasName) {

+        if (hasName) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Name);

         }

-        if (HasNumber) {

+        if (hasNumber) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, Number);

         }

-        if (HasOptions) {

+        if (hasOptions) {

           size += pb::CodedOutputStream.ComputeMessageSize(3, Options);

         }

         size += UnknownFields.SerializedSize;

@@ -3228,7 +3228,7 @@
             }

             case 26: {

               global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.CreateBuilder();

-              if (HasOptions) {

+              if (result.hasOptions) {

                 subBuilder.MergeFrom(Options);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3246,7 +3246,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -3265,7 +3265,7 @@
       }

       

       public bool HasNumber {

-        get { return result.HasNumber; }

+        get { return result.hasNumber; }

       }

       public int Number {

         get { return result.Number; }

@@ -3283,7 +3283,7 @@
       }

       

       public bool HasOptions {

-       get { return result.HasOptions; }

+       get { return result.hasOptions; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions Options {

         get { return result.Options; }

@@ -3303,7 +3303,7 @@
       }

       public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptions &&

+        if (result.hasOptions &&

             result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance) {

             result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();

         } else {

@@ -3394,13 +3394,13 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasName) {

+      if (hasName) {

         output.WriteString(1, "name", Name);

       }

       if (method_.Count > 0) {

         output.WriteArray(pbd::FieldType.Message, 2, "method", method_);

       }

-      if (HasOptions) {

+      if (hasOptions) {

         output.WriteMessage(3, "options", Options);

       }

       UnknownFields.WriteTo(output);

@@ -3413,13 +3413,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasName) {

+        if (hasName) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Name);

         }

         foreach (global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto element in MethodList) {

           size += pb::CodedOutputStream.ComputeMessageSize(2, element);

         }

-        if (HasOptions) {

+        if (hasOptions) {

           size += pb::CodedOutputStream.ComputeMessageSize(3, Options);

         }

         size += UnknownFields.SerializedSize;

@@ -3567,7 +3567,7 @@
             }

             case 26: {

               global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.CreateBuilder();

-              if (HasOptions) {

+              if (result.hasOptions) {

                 subBuilder.MergeFrom(Options);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3585,7 +3585,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -3642,7 +3642,7 @@
       }

       

       public bool HasOptions {

-       get { return result.HasOptions; }

+       get { return result.hasOptions; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions Options {

         get { return result.Options; }

@@ -3662,7 +3662,7 @@
       }

       public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptions &&

+        if (result.hasOptions &&

             result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance) {

             result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();

         } else {

@@ -3758,16 +3758,16 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasName) {

+      if (hasName) {

         output.WriteString(1, "name", Name);

       }

-      if (HasInputType) {

+      if (hasInputType) {

         output.WriteString(2, "input_type", InputType);

       }

-      if (HasOutputType) {

+      if (hasOutputType) {

         output.WriteString(3, "output_type", OutputType);

       }

-      if (HasOptions) {

+      if (hasOptions) {

         output.WriteMessage(4, "options", Options);

       }

       UnknownFields.WriteTo(output);

@@ -3780,16 +3780,16 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasName) {

+        if (hasName) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Name);

         }

-        if (HasInputType) {

+        if (hasInputType) {

           size += pb::CodedOutputStream.ComputeStringSize(2, InputType);

         }

-        if (HasOutputType) {

+        if (hasOutputType) {

           size += pb::CodedOutputStream.ComputeStringSize(3, OutputType);

         }

-        if (HasOptions) {

+        if (hasOptions) {

           size += pb::CodedOutputStream.ComputeMessageSize(4, Options);

         }

         size += UnknownFields.SerializedSize;

@@ -3943,7 +3943,7 @@
             }

             case 34: {

               global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.CreateBuilder();

-              if (HasOptions) {

+              if (result.hasOptions) {

                 subBuilder.MergeFrom(Options);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3961,7 +3961,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -3980,7 +3980,7 @@
       }

       

       public bool HasInputType {

-        get { return result.HasInputType; }

+        get { return result.hasInputType; }

       }

       public string InputType {

         get { return result.InputType; }

@@ -3999,7 +3999,7 @@
       }

       

       public bool HasOutputType {

-        get { return result.HasOutputType; }

+        get { return result.hasOutputType; }

       }

       public string OutputType {

         get { return result.OutputType; }

@@ -4018,7 +4018,7 @@
       }

       

       public bool HasOptions {

-       get { return result.HasOptions; }

+       get { return result.hasOptions; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions Options {

         get { return result.Options; }

@@ -4038,7 +4038,7 @@
       }

       public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptions &&

+        if (result.hasOptions &&

             result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance) {

             result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();

         } else {

@@ -4194,25 +4194,25 @@
     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

       pb::ExtendableMessage<FileOptions, FileOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);

-      if (HasJavaPackage) {

+      if (hasJavaPackage) {

         output.WriteString(1, "java_package", JavaPackage);

       }

-      if (HasJavaOuterClassname) {

+      if (hasJavaOuterClassname) {

         output.WriteString(8, "java_outer_classname", JavaOuterClassname);

       }

-      if (HasOptimizeFor) {

+      if (hasOptimizeFor) {

         output.WriteEnum(9, "optimize_for", (int) OptimizeFor, OptimizeFor.ToString());

       }

-      if (HasJavaMultipleFiles) {

+      if (hasJavaMultipleFiles) {

         output.WriteBool(10, "java_multiple_files", JavaMultipleFiles);

       }

-      if (HasCcGenericServices) {

+      if (hasCcGenericServices) {

         output.WriteBool(16, "cc_generic_services", CcGenericServices);

       }

-      if (HasJavaGenericServices) {

+      if (hasJavaGenericServices) {

         output.WriteBool(17, "java_generic_services", JavaGenericServices);

       }

-      if (HasPyGenericServices) {

+      if (hasPyGenericServices) {

         output.WriteBool(18, "py_generic_services", PyGenericServices);

       }

       if (uninterpretedOption_.Count > 0) {

@@ -4229,25 +4229,25 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasJavaPackage) {

+        if (hasJavaPackage) {

           size += pb::CodedOutputStream.ComputeStringSize(1, JavaPackage);

         }

-        if (HasJavaOuterClassname) {

+        if (hasJavaOuterClassname) {

           size += pb::CodedOutputStream.ComputeStringSize(8, JavaOuterClassname);

         }

-        if (HasJavaMultipleFiles) {

+        if (hasJavaMultipleFiles) {

           size += pb::CodedOutputStream.ComputeBoolSize(10, JavaMultipleFiles);

         }

-        if (HasOptimizeFor) {

+        if (hasOptimizeFor) {

           size += pb::CodedOutputStream.ComputeEnumSize(9, (int) OptimizeFor);

         }

-        if (HasCcGenericServices) {

+        if (hasCcGenericServices) {

           size += pb::CodedOutputStream.ComputeBoolSize(16, CcGenericServices);

         }

-        if (HasJavaGenericServices) {

+        if (hasJavaGenericServices) {

           size += pb::CodedOutputStream.ComputeBoolSize(17, JavaGenericServices);

         }

-        if (HasPyGenericServices) {

+        if (hasPyGenericServices) {

           size += pb::CodedOutputStream.ComputeBoolSize(18, PyGenericServices);

         }

         foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {

@@ -4456,7 +4456,7 @@
       

       

       public bool HasJavaPackage {

-        get { return result.HasJavaPackage; }

+        get { return result.hasJavaPackage; }

       }

       public string JavaPackage {

         get { return result.JavaPackage; }

@@ -4475,7 +4475,7 @@
       }

       

       public bool HasJavaOuterClassname {

-        get { return result.HasJavaOuterClassname; }

+        get { return result.hasJavaOuterClassname; }

       }

       public string JavaOuterClassname {

         get { return result.JavaOuterClassname; }

@@ -4494,7 +4494,7 @@
       }

       

       public bool HasJavaMultipleFiles {

-        get { return result.HasJavaMultipleFiles; }

+        get { return result.hasJavaMultipleFiles; }

       }

       public bool JavaMultipleFiles {

         get { return result.JavaMultipleFiles; }

@@ -4512,7 +4512,7 @@
       }

       

       public bool HasOptimizeFor {

-       get { return result.HasOptimizeFor; }

+       get { return result.hasOptimizeFor; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode OptimizeFor {

         get { return result.OptimizeFor; }

@@ -4530,7 +4530,7 @@
       }

       

       public bool HasCcGenericServices {

-        get { return result.HasCcGenericServices; }

+        get { return result.hasCcGenericServices; }

       }

       public bool CcGenericServices {

         get { return result.CcGenericServices; }

@@ -4548,7 +4548,7 @@
       }

       

       public bool HasJavaGenericServices {

-        get { return result.HasJavaGenericServices; }

+        get { return result.hasJavaGenericServices; }

       }

       public bool JavaGenericServices {

         get { return result.JavaGenericServices; }

@@ -4566,7 +4566,7 @@
       }

       

       public bool HasPyGenericServices {

-        get { return result.HasPyGenericServices; }

+        get { return result.hasPyGenericServices; }

       }

       public bool PyGenericServices {

         get { return result.PyGenericServices; }

@@ -4696,10 +4696,10 @@
     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

       pb::ExtendableMessage<MessageOptions, MessageOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);

-      if (HasMessageSetWireFormat) {

+      if (hasMessageSetWireFormat) {

         output.WriteBool(1, "message_set_wire_format", MessageSetWireFormat);

       }

-      if (HasNoStandardDescriptorAccessor) {

+      if (hasNoStandardDescriptorAccessor) {

         output.WriteBool(2, "no_standard_descriptor_accessor", NoStandardDescriptorAccessor);

       }

       if (uninterpretedOption_.Count > 0) {

@@ -4716,10 +4716,10 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasMessageSetWireFormat) {

+        if (hasMessageSetWireFormat) {

           size += pb::CodedOutputStream.ComputeBoolSize(1, MessageSetWireFormat);

         }

-        if (HasNoStandardDescriptorAccessor) {

+        if (hasNoStandardDescriptorAccessor) {

           size += pb::CodedOutputStream.ComputeBoolSize(2, NoStandardDescriptorAccessor);

         }

         foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {

@@ -4885,7 +4885,7 @@
       

       

       public bool HasMessageSetWireFormat {

-        get { return result.HasMessageSetWireFormat; }

+        get { return result.hasMessageSetWireFormat; }

       }

       public bool MessageSetWireFormat {

         get { return result.MessageSetWireFormat; }

@@ -4903,7 +4903,7 @@
       }

       

       public bool HasNoStandardDescriptorAccessor {

-        get { return result.HasNoStandardDescriptorAccessor; }

+        get { return result.hasNoStandardDescriptorAccessor; }

       }

       public bool NoStandardDescriptorAccessor {

         get { return result.NoStandardDescriptorAccessor; }

@@ -5069,16 +5069,16 @@
     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

       pb::ExtendableMessage<FieldOptions, FieldOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);

-      if (HasCtype) {

+      if (hasCtype) {

         output.WriteEnum(1, "ctype", (int) Ctype, Ctype.ToString());

       }

-      if (HasPacked) {

+      if (hasPacked) {

         output.WriteBool(2, "packed", Packed);

       }

-      if (HasDeprecated) {

+      if (hasDeprecated) {

         output.WriteBool(3, "deprecated", Deprecated);

       }

-      if (HasExperimentalMapKey) {

+      if (hasExperimentalMapKey) {

         output.WriteString(9, "experimental_map_key", ExperimentalMapKey);

       }

       if (uninterpretedOption_.Count > 0) {

@@ -5095,16 +5095,16 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasCtype) {

+        if (hasCtype) {

           size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Ctype);

         }

-        if (HasPacked) {

+        if (hasPacked) {

           size += pb::CodedOutputStream.ComputeBoolSize(2, Packed);

         }

-        if (HasDeprecated) {

+        if (hasDeprecated) {

           size += pb::CodedOutputStream.ComputeBoolSize(3, Deprecated);

         }

-        if (HasExperimentalMapKey) {

+        if (hasExperimentalMapKey) {

           size += pb::CodedOutputStream.ComputeStringSize(9, ExperimentalMapKey);

         }

         foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {

@@ -5292,7 +5292,7 @@
       

       

       public bool HasCtype {

-       get { return result.HasCtype; }

+       get { return result.hasCtype; }

       }

       public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType Ctype {

         get { return result.Ctype; }

@@ -5310,7 +5310,7 @@
       }

       

       public bool HasPacked {

-        get { return result.HasPacked; }

+        get { return result.hasPacked; }

       }

       public bool Packed {

         get { return result.Packed; }

@@ -5328,7 +5328,7 @@
       }

       

       public bool HasDeprecated {

-        get { return result.HasDeprecated; }

+        get { return result.hasDeprecated; }

       }

       public bool Deprecated {

         get { return result.Deprecated; }

@@ -5346,7 +5346,7 @@
       }

       

       public bool HasExperimentalMapKey {

-        get { return result.HasExperimentalMapKey; }

+        get { return result.hasExperimentalMapKey; }

       }

       public string ExperimentalMapKey {

         get { return result.ExperimentalMapKey; }

@@ -6512,10 +6512,10 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasNamePart_) {

+          if (hasNamePart_) {

             output.WriteString(1, "name_part", NamePart_);

           }

-          if (HasIsExtension) {

+          if (hasIsExtension) {

             output.WriteBool(2, "is_extension", IsExtension);

           }

           UnknownFields.WriteTo(output);

@@ -6528,10 +6528,10 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasNamePart_) {

+            if (hasNamePart_) {

               size += pb::CodedOutputStream.ComputeStringSize(1, NamePart_);

             }

-            if (HasIsExtension) {

+            if (hasIsExtension) {

               size += pb::CodedOutputStream.ComputeBoolSize(2, IsExtension);

             }

             size += UnknownFields.SerializedSize;

@@ -6684,7 +6684,7 @@
           

           

           public bool HasNamePart_ {

-            get { return result.HasNamePart_; }

+            get { return result.hasNamePart_; }

           }

           public string NamePart_ {

             get { return result.NamePart_; }

@@ -6703,7 +6703,7 @@
           }

           

           public bool HasIsExtension {

-            get { return result.HasIsExtension; }

+            get { return result.hasIsExtension; }

           }

           public bool IsExtension {

             get { return result.IsExtension; }

@@ -6805,19 +6805,19 @@
       if (name_.Count > 0) {

         output.WriteArray(pbd::FieldType.Message, 2, "name", name_);

       }

-      if (HasIdentifierValue) {

+      if (hasIdentifierValue) {

         output.WriteString(3, "identifier_value", IdentifierValue);

       }

-      if (HasPositiveIntValue) {

+      if (hasPositiveIntValue) {

         output.WriteUInt64(4, "positive_int_value", PositiveIntValue);

       }

-      if (HasNegativeIntValue) {

+      if (hasNegativeIntValue) {

         output.WriteInt64(5, "negative_int_value", NegativeIntValue);

       }

-      if (HasDoubleValue) {

+      if (hasDoubleValue) {

         output.WriteDouble(6, "double_value", DoubleValue);

       }

-      if (HasStringValue) {

+      if (hasStringValue) {

         output.WriteBytes(7, "string_value", StringValue);

       }

       UnknownFields.WriteTo(output);

@@ -6833,19 +6833,19 @@
         foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart element in NameList) {

           size += pb::CodedOutputStream.ComputeMessageSize(2, element);

         }

-        if (HasIdentifierValue) {

+        if (hasIdentifierValue) {

           size += pb::CodedOutputStream.ComputeStringSize(3, IdentifierValue);

         }

-        if (HasPositiveIntValue) {

+        if (hasPositiveIntValue) {

           size += pb::CodedOutputStream.ComputeUInt64Size(4, PositiveIntValue);

         }

-        if (HasNegativeIntValue) {

+        if (hasNegativeIntValue) {

           size += pb::CodedOutputStream.ComputeInt64Size(5, NegativeIntValue);

         }

-        if (HasDoubleValue) {

+        if (hasDoubleValue) {

           size += pb::CodedOutputStream.ComputeDoubleSize(6, DoubleValue);

         }

-        if (HasStringValue) {

+        if (hasStringValue) {

           size += pb::CodedOutputStream.ComputeBytesSize(7, StringValue);

         }

         size += UnknownFields.SerializedSize;

@@ -7065,7 +7065,7 @@
       }

       

       public bool HasIdentifierValue {

-        get { return result.HasIdentifierValue; }

+        get { return result.hasIdentifierValue; }

       }

       public string IdentifierValue {

         get { return result.IdentifierValue; }

@@ -7084,7 +7084,7 @@
       }

       

       public bool HasPositiveIntValue {

-        get { return result.HasPositiveIntValue; }

+        get { return result.hasPositiveIntValue; }

       }

       [global::System.CLSCompliant(false)]

       public ulong PositiveIntValue {

@@ -7104,7 +7104,7 @@
       }

       

       public bool HasNegativeIntValue {

-        get { return result.HasNegativeIntValue; }

+        get { return result.hasNegativeIntValue; }

       }

       public long NegativeIntValue {

         get { return result.NegativeIntValue; }

@@ -7122,7 +7122,7 @@
       }

       

       public bool HasDoubleValue {

-        get { return result.HasDoubleValue; }

+        get { return result.hasDoubleValue; }

       }

       public double DoubleValue {

         get { return result.DoubleValue; }

@@ -7140,7 +7140,7 @@
       }

       

       public bool HasStringValue {

-        get { return result.HasStringValue; }

+        get { return result.hasStringValue; }

       }

       public pb::ByteString StringValue {

         get { return result.StringValue; }

diff --git a/src/ProtocolBuffers/ICodedOutputStream.cs b/src/ProtocolBuffers/ICodedOutputStream.cs
index f008e79..db7ea6e 100644
--- a/src/ProtocolBuffers/ICodedOutputStream.cs
+++ b/src/ProtocolBuffers/ICodedOutputStream.cs
@@ -79,7 +79,8 @@
         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();

     }

diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
index 04a46df..5f9e3b5 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
@@ -285,7 +285,7 @@
           

           

           public bool HasNumber {

-            get { return result.HasNumber; }

+            get { return result.hasNumber; }

           }

           public string Number {

             get { return result.Number; }

@@ -304,7 +304,7 @@
           }

           

           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 @@
           

           

           public bool HasAddress {

-            get { return result.HasAddress; }

+            get { return result.hasAddress; }

           }

           public string Address {

             get { return result.Address; }

@@ -501,7 +501,7 @@
           }

           

           public bool HasAddress2 {

-            get { return result.HasAddress2; }

+            get { return result.hasAddress2; }

           }

           public string Address2 {

             get { return result.Address2; }

@@ -520,7 +520,7 @@
           }

           

           public bool HasCity {

-            get { return result.HasCity; }

+            get { return result.hasCity; }

           }

           public string City {

             get { return result.City; }

@@ -539,7 +539,7 @@
           }

           

           public bool HasState {

-            get { return result.HasState; }

+            get { return result.hasState; }

           }

           public string State {

             get { return result.State; }

@@ -558,7 +558,7 @@
           }

           

           public bool HasZip {

-            get { return result.HasZip; }

+            get { return result.hasZip; }

           }

           [global::System.CLSCompliant(false)]

           public uint Zip {

@@ -734,7 +734,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -753,7 +753,7 @@
       }

       

       public bool HasId {

-        get { return result.HasId; }

+        get { return result.hasId; }

       }

       public int Id {

         get { return result.Id; }

@@ -771,7 +771,7 @@
       }

       

       public bool HasEmail {

-        get { return result.HasEmail; }

+        get { return result.hasEmail; }

       }

       public string Email {

         get { return result.Email; }

@@ -1011,7 +1011,7 @@
       

       

       public bool HasNumber {

-        get { return result.HasNumber; }

+        get { return result.hasNumber; }

       }

       public string Number {

         get { return result.Number; }

@@ -1192,7 +1192,7 @@
           

           

           public bool HasCount {

-            get { return result.HasCount; }

+            get { return result.hasCount; }

           }

           public int Count {

             get { return result.Count; }

@@ -1365,7 +1365,7 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -1384,7 +1384,7 @@
       }

       

       public bool HasId {

-        get { return result.HasId; }

+        get { return result.hasId; }

       }

       public int Id {

         get { return result.Id; }

@@ -1402,7 +1402,7 @@
       }

       

       public bool HasEmail {

-        get { return result.HasEmail; }

+        get { return result.hasEmail; }

       }

       public string Email {

         get { return result.Email; }

@@ -1421,7 +1421,7 @@
       }

       

       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 @@
       }

       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 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -1783,7 +1783,7 @@
       }

       

       public bool HasId {

-        get { return result.HasId; }

+        get { return result.hasId; }

       }

       public int Id {

         get { return result.Id; }

@@ -1801,7 +1801,7 @@
       }

       

       public bool HasWebsite {

-        get { return result.HasWebsite; }

+        get { return result.hasWebsite; }

       }

       public string Website {

         get { return result.Website; }

@@ -1820,7 +1820,7 @@
       }

       

       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 @@
       }

       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 {

diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
index efd9a9c..2c266b5 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
@@ -100,10 +100,10 @@
     

     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 @@
         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 @@
       

       

       public bool HasD {

-        get { return result.HasD; }

+        get { return result.hasD; }

       }

       public int D {

         get { return result.D; }

@@ -299,7 +299,7 @@
       }

       

       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 @@
         

         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 @@
             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 @@
           

           

           public bool HasNumber {

-            get { return result.HasNumber; }

+            get { return result.hasNumber; }

           }

           public string Number {

             get { return result.Number; }

@@ -597,7 +597,7 @@
           }

           

           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 @@
         

         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 @@
             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 @@
           

           

           public bool HasAddress {

-            get { return result.HasAddress; }

+            get { return result.hasAddress; }

           }

           public string Address {

             get { return result.Address; }

@@ -943,7 +943,7 @@
           }

           

           public bool HasAddress2 {

-            get { return result.HasAddress2; }

+            get { return result.hasAddress2; }

           }

           public string Address2 {

             get { return result.Address2; }

@@ -962,7 +962,7 @@
           }

           

           public bool HasCity {

-            get { return result.HasCity; }

+            get { return result.hasCity; }

           }

           public string City {

             get { return result.City; }

@@ -981,7 +981,7 @@
           }

           

           public bool HasState {

-            get { return result.HasState; }

+            get { return result.hasState; }

           }

           public string State {

             get { return result.State; }

@@ -1000,7 +1000,7 @@
           }

           

           public bool HasZip {

-            get { return result.HasZip; }

+            get { return result.hasZip; }

           }

           [global::System.CLSCompliant(false)]

           public uint Zip {

@@ -1109,13 +1109,13 @@
     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 @@
         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 @@
       

       

       public bool HasName {

-        get { return result.HasName; }

+        get { return result.hasName; }

       }

       public string Name {

         get { return result.Name; }

@@ -1396,7 +1396,7 @@
       }

       

       public bool HasId {

-        get { return result.HasId; }

+        get { return result.hasId; }

       }

       public int Id {

         get { return result.Id; }

@@ -1414,7 +1414,7 @@
       }

       

       public bool HasEmail {

-        get { return result.HasEmail; }

+        get { return result.hasEmail; }

       }

       public string Email {

         get { return result.Email; }

@@ -1575,7 +1575,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasNumber) {

+      if (hasNumber) {

         output.WriteString(1, "number", Number);

       }

     }

@@ -1587,7 +1587,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasNumber) {

+        if (hasNumber) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Number);

         }

         memoizedSerializedSize = size;

@@ -1736,7 +1736,7 @@
       

       

       public bool HasNumber {

-        get { return result.HasNumber; }

+        get { return result.hasNumber; }

       }

       public string Number {

         get { return result.Number; }

diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
index 19d8989..b2154af 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
@@ -72,7 +72,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasD) {

+      if (hasD) {

         output.WriteInt32(1, "d", D);

       }

     }

@@ -84,7 +84,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasD) {

+        if (hasD) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, D);

         }

         memoizedSerializedSize = size;

@@ -233,7 +233,7 @@
       

       

       public bool HasD {

-        get { return result.HasD; }

+        get { return result.hasD; }

       }

       public int D {

         get { return result.D; }

diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
index 7fd6259..111dfc4 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
@@ -108,7 +108,7 @@
     

     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 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasD) {

+        if (hasD) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, D);

         }

         size += UnknownFields.SerializedSize;

@@ -267,7 +267,7 @@
       

       

       public bool HasD {

-        get { return result.HasD; }

+        get { return result.hasD; }

       }

       public int D {

         get { return result.D; }

diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
index cc0a4c0..2d61bdc 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
@@ -61,7 +61,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasMessage) {

+      if (hasMessage) {

         output.WriteMessage(1, "message", Message);

       }

     }

@@ -73,7 +73,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasMessage) {

+        if (hasMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, Message);

         }

         memoizedSerializedSize = size;

@@ -212,7 +212,7 @@
             }

             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 @@
       

       

       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 @@
       }

       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 {

diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
index bc2b0a8..7daca0f 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
@@ -1287,7 +1287,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasBb) {

+          if (hasBb) {

             output.WriteInt32(1, "bb", Bb);

           }

         }

@@ -1299,7 +1299,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasBb) {

+            if (hasBb) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);

             }

             memoizedSerializedSize = size;

@@ -1448,7 +1448,7 @@
           

           

           public bool HasBb {

-            get { return result.HasBb; }

+            get { return result.hasBb; }

           }

           public int Bb {

             get { return result.Bb; }

@@ -1505,7 +1505,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(17, "a", A);

           }

         }

@@ -1517,7 +1517,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(17, A);

             }

             memoizedSerializedSize = size;

@@ -1666,7 +1666,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -1723,7 +1723,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(47, "a", A);

           }

         }

@@ -1735,7 +1735,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(47, A);

             }

             memoizedSerializedSize = size;

@@ -1884,7 +1884,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -2661,76 +2661,76 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasOptionalInt32) {

+      if (hasOptionalInt32) {

         output.WriteInt32(1, "optional_int32", OptionalInt32);

       }

-      if (HasOptionalInt64) {

+      if (hasOptionalInt64) {

         output.WriteInt64(2, "optional_int64", OptionalInt64);

       }

-      if (HasOptionalUint32) {

+      if (hasOptionalUint32) {

         output.WriteUInt32(3, "optional_uint32", OptionalUint32);

       }

-      if (HasOptionalUint64) {

+      if (hasOptionalUint64) {

         output.WriteUInt64(4, "optional_uint64", OptionalUint64);

       }

-      if (HasOptionalSint32) {

+      if (hasOptionalSint32) {

         output.WriteSInt32(5, "optional_sint32", OptionalSint32);

       }

-      if (HasOptionalSint64) {

+      if (hasOptionalSint64) {

         output.WriteSInt64(6, "optional_sint64", OptionalSint64);

       }

-      if (HasOptionalFixed32) {

+      if (hasOptionalFixed32) {

         output.WriteFixed32(7, "optional_fixed32", OptionalFixed32);

       }

-      if (HasOptionalFixed64) {

+      if (hasOptionalFixed64) {

         output.WriteFixed64(8, "optional_fixed64", OptionalFixed64);

       }

-      if (HasOptionalSfixed32) {

+      if (hasOptionalSfixed32) {

         output.WriteSFixed32(9, "optional_sfixed32", OptionalSfixed32);

       }

-      if (HasOptionalSfixed64) {

+      if (hasOptionalSfixed64) {

         output.WriteSFixed64(10, "optional_sfixed64", OptionalSfixed64);

       }

-      if (HasOptionalFloat) {

+      if (hasOptionalFloat) {

         output.WriteFloat(11, "optional_float", OptionalFloat);

       }

-      if (HasOptionalDouble) {

+      if (hasOptionalDouble) {

         output.WriteDouble(12, "optional_double", OptionalDouble);

       }

-      if (HasOptionalBool) {

+      if (hasOptionalBool) {

         output.WriteBool(13, "optional_bool", OptionalBool);

       }

-      if (HasOptionalString) {

+      if (hasOptionalString) {

         output.WriteString(14, "optional_string", OptionalString);

       }

-      if (HasOptionalBytes) {

+      if (hasOptionalBytes) {

         output.WriteBytes(15, "optional_bytes", OptionalBytes);

       }

-      if (HasOptionalGroup) {

+      if (hasOptionalGroup) {

         output.WriteGroup(16, "optionalgroup", OptionalGroup);

       }

-      if (HasOptionalNestedMessage) {

+      if (hasOptionalNestedMessage) {

         output.WriteMessage(18, "optional_nested_message", OptionalNestedMessage);

       }

-      if (HasOptionalForeignMessage) {

+      if (hasOptionalForeignMessage) {

         output.WriteMessage(19, "optional_foreign_message", OptionalForeignMessage);

       }

-      if (HasOptionalImportMessage) {

+      if (hasOptionalImportMessage) {

         output.WriteMessage(20, "optional_import_message", OptionalImportMessage);

       }

-      if (HasOptionalNestedEnum) {

+      if (hasOptionalNestedEnum) {

         output.WriteEnum(21, "optional_nested_enum", (int) OptionalNestedEnum, OptionalNestedEnum.ToString());

       }

-      if (HasOptionalForeignEnum) {

+      if (hasOptionalForeignEnum) {

         output.WriteEnum(22, "optional_foreign_enum", (int) OptionalForeignEnum, OptionalForeignEnum.ToString());

       }

-      if (HasOptionalImportEnum) {

+      if (hasOptionalImportEnum) {

         output.WriteEnum(23, "optional_import_enum", (int) OptionalImportEnum, OptionalImportEnum.ToString());

       }

-      if (HasOptionalStringPiece) {

+      if (hasOptionalStringPiece) {

         output.WriteString(24, "optional_string_piece", OptionalStringPiece);

       }

-      if (HasOptionalCord) {

+      if (hasOptionalCord) {

         output.WriteString(25, "optional_cord", OptionalCord);

       }

       if (repeatedInt32_.Count > 0) {

@@ -2805,64 +2805,64 @@
       if (repeatedCord_.Count > 0) {

         output.WriteArray(pbd::FieldType.String, 55, "repeated_cord", repeatedCord_);

       }

-      if (HasDefaultInt32) {

+      if (hasDefaultInt32) {

         output.WriteInt32(61, "default_int32", DefaultInt32);

       }

-      if (HasDefaultInt64) {

+      if (hasDefaultInt64) {

         output.WriteInt64(62, "default_int64", DefaultInt64);

       }

-      if (HasDefaultUint32) {

+      if (hasDefaultUint32) {

         output.WriteUInt32(63, "default_uint32", DefaultUint32);

       }

-      if (HasDefaultUint64) {

+      if (hasDefaultUint64) {

         output.WriteUInt64(64, "default_uint64", DefaultUint64);

       }

-      if (HasDefaultSint32) {

+      if (hasDefaultSint32) {

         output.WriteSInt32(65, "default_sint32", DefaultSint32);

       }

-      if (HasDefaultSint64) {

+      if (hasDefaultSint64) {

         output.WriteSInt64(66, "default_sint64", DefaultSint64);

       }

-      if (HasDefaultFixed32) {

+      if (hasDefaultFixed32) {

         output.WriteFixed32(67, "default_fixed32", DefaultFixed32);

       }

-      if (HasDefaultFixed64) {

+      if (hasDefaultFixed64) {

         output.WriteFixed64(68, "default_fixed64", DefaultFixed64);

       }

-      if (HasDefaultSfixed32) {

+      if (hasDefaultSfixed32) {

         output.WriteSFixed32(69, "default_sfixed32", DefaultSfixed32);

       }

-      if (HasDefaultSfixed64) {

+      if (hasDefaultSfixed64) {

         output.WriteSFixed64(70, "default_sfixed64", DefaultSfixed64);

       }

-      if (HasDefaultFloat) {

+      if (hasDefaultFloat) {

         output.WriteFloat(71, "default_float", DefaultFloat);

       }

-      if (HasDefaultDouble) {

+      if (hasDefaultDouble) {

         output.WriteDouble(72, "default_double", DefaultDouble);

       }

-      if (HasDefaultBool) {

+      if (hasDefaultBool) {

         output.WriteBool(73, "default_bool", DefaultBool);

       }

-      if (HasDefaultString) {

+      if (hasDefaultString) {

         output.WriteString(74, "default_string", DefaultString);

       }

-      if (HasDefaultBytes) {

+      if (hasDefaultBytes) {

         output.WriteBytes(75, "default_bytes", DefaultBytes);

       }

-      if (HasDefaultNestedEnum) {

+      if (hasDefaultNestedEnum) {

         output.WriteEnum(81, "default_nested_enum", (int) DefaultNestedEnum, DefaultNestedEnum.ToString());

       }

-      if (HasDefaultForeignEnum) {

+      if (hasDefaultForeignEnum) {

         output.WriteEnum(82, "default_foreign_enum", (int) DefaultForeignEnum, DefaultForeignEnum.ToString());

       }

-      if (HasDefaultImportEnum) {

+      if (hasDefaultImportEnum) {

         output.WriteEnum(83, "default_import_enum", (int) DefaultImportEnum, DefaultImportEnum.ToString());

       }

-      if (HasDefaultStringPiece) {

+      if (hasDefaultStringPiece) {

         output.WriteString(84, "default_string_piece", DefaultStringPiece);

       }

-      if (HasDefaultCord) {

+      if (hasDefaultCord) {

         output.WriteString(85, "default_cord", DefaultCord);

       }

     }

@@ -2874,76 +2874,76 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasOptionalInt32) {

+        if (hasOptionalInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);

         }

-        if (HasOptionalInt64) {

+        if (hasOptionalInt64) {

           size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);

         }

-        if (HasOptionalUint32) {

+        if (hasOptionalUint32) {

           size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);

         }

-        if (HasOptionalUint64) {

+        if (hasOptionalUint64) {

           size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);

         }

-        if (HasOptionalSint32) {

+        if (hasOptionalSint32) {

           size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);

         }

-        if (HasOptionalSint64) {

+        if (hasOptionalSint64) {

           size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);

         }

-        if (HasOptionalFixed32) {

+        if (hasOptionalFixed32) {

           size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);

         }

-        if (HasOptionalFixed64) {

+        if (hasOptionalFixed64) {

           size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);

         }

-        if (HasOptionalSfixed32) {

+        if (hasOptionalSfixed32) {

           size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);

         }

-        if (HasOptionalSfixed64) {

+        if (hasOptionalSfixed64) {

           size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);

         }

-        if (HasOptionalFloat) {

+        if (hasOptionalFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);

         }

-        if (HasOptionalDouble) {

+        if (hasOptionalDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);

         }

-        if (HasOptionalBool) {

+        if (hasOptionalBool) {

           size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);

         }

-        if (HasOptionalString) {

+        if (hasOptionalString) {

           size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);

         }

-        if (HasOptionalBytes) {

+        if (hasOptionalBytes) {

           size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);

         }

-        if (HasOptionalGroup) {

+        if (hasOptionalGroup) {

           size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);

         }

-        if (HasOptionalNestedMessage) {

+        if (hasOptionalNestedMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);

         }

-        if (HasOptionalForeignMessage) {

+        if (hasOptionalForeignMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);

         }

-        if (HasOptionalImportMessage) {

+        if (hasOptionalImportMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);

         }

-        if (HasOptionalNestedEnum) {

+        if (hasOptionalNestedEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);

         }

-        if (HasOptionalForeignEnum) {

+        if (hasOptionalForeignEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);

         }

-        if (HasOptionalImportEnum) {

+        if (hasOptionalImportEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);

         }

-        if (HasOptionalStringPiece) {

+        if (hasOptionalStringPiece) {

           size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);

         }

-        if (HasOptionalCord) {

+        if (hasOptionalCord) {

           size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);

         }

         {

@@ -3110,64 +3110,64 @@
           size += dataSize;

           size += 2 * repeatedCord_.Count;

         }

-        if (HasDefaultInt32) {

+        if (hasDefaultInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);

         }

-        if (HasDefaultInt64) {

+        if (hasDefaultInt64) {

           size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);

         }

-        if (HasDefaultUint32) {

+        if (hasDefaultUint32) {

           size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);

         }

-        if (HasDefaultUint64) {

+        if (hasDefaultUint64) {

           size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);

         }

-        if (HasDefaultSint32) {

+        if (hasDefaultSint32) {

           size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);

         }

-        if (HasDefaultSint64) {

+        if (hasDefaultSint64) {

           size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);

         }

-        if (HasDefaultFixed32) {

+        if (hasDefaultFixed32) {

           size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);

         }

-        if (HasDefaultFixed64) {

+        if (hasDefaultFixed64) {

           size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);

         }

-        if (HasDefaultSfixed32) {

+        if (hasDefaultSfixed32) {

           size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);

         }

-        if (HasDefaultSfixed64) {

+        if (hasDefaultSfixed64) {

           size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);

         }

-        if (HasDefaultFloat) {

+        if (hasDefaultFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);

         }

-        if (HasDefaultDouble) {

+        if (hasDefaultDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);

         }

-        if (HasDefaultBool) {

+        if (hasDefaultBool) {

           size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);

         }

-        if (HasDefaultString) {

+        if (hasDefaultString) {

           size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);

         }

-        if (HasDefaultBytes) {

+        if (hasDefaultBytes) {

           size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);

         }

-        if (HasDefaultNestedEnum) {

+        if (hasDefaultNestedEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);

         }

-        if (HasDefaultForeignEnum) {

+        if (hasDefaultForeignEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);

         }

-        if (HasDefaultImportEnum) {

+        if (hasDefaultImportEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);

         }

-        if (HasDefaultStringPiece) {

+        if (hasDefaultStringPiece) {

           size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);

         }

-        if (HasDefaultCord) {

+        if (hasDefaultCord) {

           size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);

         }

         memoizedSerializedSize = size;

@@ -3864,7 +3864,7 @@
             }

             case 131: {

               global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.CreateBuilder();

-              if (HasOptionalGroup) {

+              if (result.hasOptionalGroup) {

                 subBuilder.MergeFrom(OptionalGroup);

               }

               input.ReadGroup(16, subBuilder, extensionRegistry);

@@ -3873,7 +3873,7 @@
             }

             case 146: {

               global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder();

-              if (HasOptionalNestedMessage) {

+              if (result.hasOptionalNestedMessage) {

                 subBuilder.MergeFrom(OptionalNestedMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3882,7 +3882,7 @@
             }

             case 154: {

               global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.CreateBuilder();

-              if (HasOptionalForeignMessage) {

+              if (result.hasOptionalForeignMessage) {

                 subBuilder.MergeFrom(OptionalForeignMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3891,7 +3891,7 @@
             }

             case 162: {

               global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.CreateBuilder();

-              if (HasOptionalImportMessage) {

+              if (result.hasOptionalImportMessage) {

                 subBuilder.MergeFrom(OptionalImportMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -4145,7 +4145,7 @@
       

       

       public bool HasOptionalInt32 {

-        get { return result.HasOptionalInt32; }

+        get { return result.hasOptionalInt32; }

       }

       public int OptionalInt32 {

         get { return result.OptionalInt32; }

@@ -4163,7 +4163,7 @@
       }

       

       public bool HasOptionalInt64 {

-        get { return result.HasOptionalInt64; }

+        get { return result.hasOptionalInt64; }

       }

       public long OptionalInt64 {

         get { return result.OptionalInt64; }

@@ -4181,7 +4181,7 @@
       }

       

       public bool HasOptionalUint32 {

-        get { return result.HasOptionalUint32; }

+        get { return result.hasOptionalUint32; }

       }

       [global::System.CLSCompliant(false)]

       public uint OptionalUint32 {

@@ -4201,7 +4201,7 @@
       }

       

       public bool HasOptionalUint64 {

-        get { return result.HasOptionalUint64; }

+        get { return result.hasOptionalUint64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong OptionalUint64 {

@@ -4221,7 +4221,7 @@
       }

       

       public bool HasOptionalSint32 {

-        get { return result.HasOptionalSint32; }

+        get { return result.hasOptionalSint32; }

       }

       public int OptionalSint32 {

         get { return result.OptionalSint32; }

@@ -4239,7 +4239,7 @@
       }

       

       public bool HasOptionalSint64 {

-        get { return result.HasOptionalSint64; }

+        get { return result.hasOptionalSint64; }

       }

       public long OptionalSint64 {

         get { return result.OptionalSint64; }

@@ -4257,7 +4257,7 @@
       }

       

       public bool HasOptionalFixed32 {

-        get { return result.HasOptionalFixed32; }

+        get { return result.hasOptionalFixed32; }

       }

       [global::System.CLSCompliant(false)]

       public uint OptionalFixed32 {

@@ -4277,7 +4277,7 @@
       }

       

       public bool HasOptionalFixed64 {

-        get { return result.HasOptionalFixed64; }

+        get { return result.hasOptionalFixed64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong OptionalFixed64 {

@@ -4297,7 +4297,7 @@
       }

       

       public bool HasOptionalSfixed32 {

-        get { return result.HasOptionalSfixed32; }

+        get { return result.hasOptionalSfixed32; }

       }

       public int OptionalSfixed32 {

         get { return result.OptionalSfixed32; }

@@ -4315,7 +4315,7 @@
       }

       

       public bool HasOptionalSfixed64 {

-        get { return result.HasOptionalSfixed64; }

+        get { return result.hasOptionalSfixed64; }

       }

       public long OptionalSfixed64 {

         get { return result.OptionalSfixed64; }

@@ -4333,7 +4333,7 @@
       }

       

       public bool HasOptionalFloat {

-        get { return result.HasOptionalFloat; }

+        get { return result.hasOptionalFloat; }

       }

       public float OptionalFloat {

         get { return result.OptionalFloat; }

@@ -4351,7 +4351,7 @@
       }

       

       public bool HasOptionalDouble {

-        get { return result.HasOptionalDouble; }

+        get { return result.hasOptionalDouble; }

       }

       public double OptionalDouble {

         get { return result.OptionalDouble; }

@@ -4369,7 +4369,7 @@
       }

       

       public bool HasOptionalBool {

-        get { return result.HasOptionalBool; }

+        get { return result.hasOptionalBool; }

       }

       public bool OptionalBool {

         get { return result.OptionalBool; }

@@ -4387,7 +4387,7 @@
       }

       

       public bool HasOptionalString {

-        get { return result.HasOptionalString; }

+        get { return result.hasOptionalString; }

       }

       public string OptionalString {

         get { return result.OptionalString; }

@@ -4406,7 +4406,7 @@
       }

       

       public bool HasOptionalBytes {

-        get { return result.HasOptionalBytes; }

+        get { return result.hasOptionalBytes; }

       }

       public pb::ByteString OptionalBytes {

         get { return result.OptionalBytes; }

@@ -4425,7 +4425,7 @@
       }

       

       public bool HasOptionalGroup {

-       get { return result.HasOptionalGroup; }

+       get { return result.hasOptionalGroup; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup OptionalGroup {

         get { return result.OptionalGroup; }

@@ -4445,7 +4445,7 @@
       }

       public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalGroup &&

+        if (result.hasOptionalGroup &&

             result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance) {

             result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();

         } else {

@@ -4461,7 +4461,7 @@
       }

       

       public bool HasOptionalNestedMessage {

-       get { return result.HasOptionalNestedMessage; }

+       get { return result.hasOptionalNestedMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OptionalNestedMessage {

         get { return result.OptionalNestedMessage; }

@@ -4481,7 +4481,7 @@
       }

       public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalNestedMessage &&

+        if (result.hasOptionalNestedMessage &&

             result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance) {

             result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4497,7 +4497,7 @@
       }

       

       public bool HasOptionalForeignMessage {

-       get { return result.HasOptionalForeignMessage; }

+       get { return result.hasOptionalForeignMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite OptionalForeignMessage {

         get { return result.OptionalForeignMessage; }

@@ -4517,7 +4517,7 @@
       }

       public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalForeignMessage &&

+        if (result.hasOptionalForeignMessage &&

             result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance) {

             result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4533,7 +4533,7 @@
       }

       

       public bool HasOptionalImportMessage {

-       get { return result.HasOptionalImportMessage; }

+       get { return result.hasOptionalImportMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite OptionalImportMessage {

         get { return result.OptionalImportMessage; }

@@ -4553,7 +4553,7 @@
       }

       public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalImportMessage &&

+        if (result.hasOptionalImportMessage &&

             result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance) {

             result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4569,7 +4569,7 @@
       }

       

       public bool HasOptionalNestedEnum {

-       get { return result.HasOptionalNestedEnum; }

+       get { return result.hasOptionalNestedEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum OptionalNestedEnum {

         get { return result.OptionalNestedEnum; }

@@ -4587,7 +4587,7 @@
       }

       

       public bool HasOptionalForeignEnum {

-       get { return result.HasOptionalForeignEnum; }

+       get { return result.hasOptionalForeignEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite OptionalForeignEnum {

         get { return result.OptionalForeignEnum; }

@@ -4605,7 +4605,7 @@
       }

       

       public bool HasOptionalImportEnum {

-       get { return result.HasOptionalImportEnum; }

+       get { return result.hasOptionalImportEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite OptionalImportEnum {

         get { return result.OptionalImportEnum; }

@@ -4623,7 +4623,7 @@
       }

       

       public bool HasOptionalStringPiece {

-        get { return result.HasOptionalStringPiece; }

+        get { return result.hasOptionalStringPiece; }

       }

       public string OptionalStringPiece {

         get { return result.OptionalStringPiece; }

@@ -4642,7 +4642,7 @@
       }

       

       public bool HasOptionalCord {

-        get { return result.HasOptionalCord; }

+        get { return result.hasOptionalCord; }

       }

       public string OptionalCord {

         get { return result.OptionalCord; }

@@ -5361,7 +5361,7 @@
       }

       

       public bool HasDefaultInt32 {

-        get { return result.HasDefaultInt32; }

+        get { return result.hasDefaultInt32; }

       }

       public int DefaultInt32 {

         get { return result.DefaultInt32; }

@@ -5379,7 +5379,7 @@
       }

       

       public bool HasDefaultInt64 {

-        get { return result.HasDefaultInt64; }

+        get { return result.hasDefaultInt64; }

       }

       public long DefaultInt64 {

         get { return result.DefaultInt64; }

@@ -5397,7 +5397,7 @@
       }

       

       public bool HasDefaultUint32 {

-        get { return result.HasDefaultUint32; }

+        get { return result.hasDefaultUint32; }

       }

       [global::System.CLSCompliant(false)]

       public uint DefaultUint32 {

@@ -5417,7 +5417,7 @@
       }

       

       public bool HasDefaultUint64 {

-        get { return result.HasDefaultUint64; }

+        get { return result.hasDefaultUint64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong DefaultUint64 {

@@ -5437,7 +5437,7 @@
       }

       

       public bool HasDefaultSint32 {

-        get { return result.HasDefaultSint32; }

+        get { return result.hasDefaultSint32; }

       }

       public int DefaultSint32 {

         get { return result.DefaultSint32; }

@@ -5455,7 +5455,7 @@
       }

       

       public bool HasDefaultSint64 {

-        get { return result.HasDefaultSint64; }

+        get { return result.hasDefaultSint64; }

       }

       public long DefaultSint64 {

         get { return result.DefaultSint64; }

@@ -5473,7 +5473,7 @@
       }

       

       public bool HasDefaultFixed32 {

-        get { return result.HasDefaultFixed32; }

+        get { return result.hasDefaultFixed32; }

       }

       [global::System.CLSCompliant(false)]

       public uint DefaultFixed32 {

@@ -5493,7 +5493,7 @@
       }

       

       public bool HasDefaultFixed64 {

-        get { return result.HasDefaultFixed64; }

+        get { return result.hasDefaultFixed64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong DefaultFixed64 {

@@ -5513,7 +5513,7 @@
       }

       

       public bool HasDefaultSfixed32 {

-        get { return result.HasDefaultSfixed32; }

+        get { return result.hasDefaultSfixed32; }

       }

       public int DefaultSfixed32 {

         get { return result.DefaultSfixed32; }

@@ -5531,7 +5531,7 @@
       }

       

       public bool HasDefaultSfixed64 {

-        get { return result.HasDefaultSfixed64; }

+        get { return result.hasDefaultSfixed64; }

       }

       public long DefaultSfixed64 {

         get { return result.DefaultSfixed64; }

@@ -5549,7 +5549,7 @@
       }

       

       public bool HasDefaultFloat {

-        get { return result.HasDefaultFloat; }

+        get { return result.hasDefaultFloat; }

       }

       public float DefaultFloat {

         get { return result.DefaultFloat; }

@@ -5567,7 +5567,7 @@
       }

       

       public bool HasDefaultDouble {

-        get { return result.HasDefaultDouble; }

+        get { return result.hasDefaultDouble; }

       }

       public double DefaultDouble {

         get { return result.DefaultDouble; }

@@ -5585,7 +5585,7 @@
       }

       

       public bool HasDefaultBool {

-        get { return result.HasDefaultBool; }

+        get { return result.hasDefaultBool; }

       }

       public bool DefaultBool {

         get { return result.DefaultBool; }

@@ -5603,7 +5603,7 @@
       }

       

       public bool HasDefaultString {

-        get { return result.HasDefaultString; }

+        get { return result.hasDefaultString; }

       }

       public string DefaultString {

         get { return result.DefaultString; }

@@ -5622,7 +5622,7 @@
       }

       

       public bool HasDefaultBytes {

-        get { return result.HasDefaultBytes; }

+        get { return result.hasDefaultBytes; }

       }

       public pb::ByteString DefaultBytes {

         get { return result.DefaultBytes; }

@@ -5641,7 +5641,7 @@
       }

       

       public bool HasDefaultNestedEnum {

-       get { return result.HasDefaultNestedEnum; }

+       get { return result.hasDefaultNestedEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum DefaultNestedEnum {

         get { return result.DefaultNestedEnum; }

@@ -5659,7 +5659,7 @@
       }

       

       public bool HasDefaultForeignEnum {

-       get { return result.HasDefaultForeignEnum; }

+       get { return result.hasDefaultForeignEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite DefaultForeignEnum {

         get { return result.DefaultForeignEnum; }

@@ -5677,7 +5677,7 @@
       }

       

       public bool HasDefaultImportEnum {

-       get { return result.HasDefaultImportEnum; }

+       get { return result.hasDefaultImportEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite DefaultImportEnum {

         get { return result.DefaultImportEnum; }

@@ -5695,7 +5695,7 @@
       }

       

       public bool HasDefaultStringPiece {

-        get { return result.HasDefaultStringPiece; }

+        get { return result.hasDefaultStringPiece; }

       }

       public string DefaultStringPiece {

         get { return result.DefaultStringPiece; }

@@ -5714,7 +5714,7 @@
       }

       

       public bool HasDefaultCord {

-        get { return result.HasDefaultCord; }

+        get { return result.hasDefaultCord; }

       }

       public string DefaultCord {

         get { return result.DefaultCord; }

@@ -5772,7 +5772,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasC) {

+      if (hasC) {

         output.WriteInt32(1, "c", C);

       }

     }

@@ -5784,7 +5784,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasC) {

+        if (hasC) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, C);

         }

         memoizedSerializedSize = size;

@@ -5933,7 +5933,7 @@
       

       

       public bool HasC {

-        get { return result.HasC; }

+        get { return result.hasC; }

       }

       public int C {

         get { return result.C; }

@@ -8401,7 +8401,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(17, "a", A);

       }

     }

@@ -8413,7 +8413,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(17, A);

         }

         memoizedSerializedSize = size;

@@ -8562,7 +8562,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -8619,7 +8619,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(47, "a", A);

       }

     }

@@ -8631,7 +8631,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(47, A);

         }

         memoizedSerializedSize = size;

@@ -8780,7 +8780,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -9377,7 +9377,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasDeprecatedField) {

+      if (hasDeprecatedField) {

         output.WriteInt32(1, "deprecated_field", DeprecatedField);

       }

     }

@@ -9389,7 +9389,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasDeprecatedField) {

+        if (hasDeprecatedField) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedField);

         }

         memoizedSerializedSize = size;

@@ -9538,7 +9538,7 @@
       

       

       public bool HasDeprecatedField {

-        get { return result.HasDeprecatedField; }

+        get { return result.hasDeprecatedField; }

       }

       public int DeprecatedField {

         get { return result.DeprecatedField; }

diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
index 601bf7d..80c2246 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
@@ -1197,7 +1197,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasBb) {

+          if (hasBb) {

             output.WriteInt32(1, "bb", Bb);

           }

           UnknownFields.WriteTo(output);

@@ -1210,7 +1210,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasBb) {

+            if (hasBb) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);

             }

             size += UnknownFields.SerializedSize;

@@ -1356,7 +1356,7 @@
           

           

           public bool HasBb {

-            get { return result.HasBb; }

+            get { return result.hasBb; }

           }

           public int Bb {

             get { return result.Bb; }

@@ -1421,7 +1421,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(17, "a", A);

           }

           UnknownFields.WriteTo(output);

@@ -1434,7 +1434,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(17, A);

             }

             size += UnknownFields.SerializedSize;

@@ -1580,7 +1580,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -1645,7 +1645,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(47, "a", A);

           }

           UnknownFields.WriteTo(output);

@@ -1658,7 +1658,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(47, A);

             }

             size += UnknownFields.SerializedSize;

@@ -1804,7 +1804,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -2581,76 +2581,76 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasOptionalInt32) {

+      if (hasOptionalInt32) {

         output.WriteInt32(1, "optional_int32", OptionalInt32);

       }

-      if (HasOptionalInt64) {

+      if (hasOptionalInt64) {

         output.WriteInt64(2, "optional_int64", OptionalInt64);

       }

-      if (HasOptionalUint32) {

+      if (hasOptionalUint32) {

         output.WriteUInt32(3, "optional_uint32", OptionalUint32);

       }

-      if (HasOptionalUint64) {

+      if (hasOptionalUint64) {

         output.WriteUInt64(4, "optional_uint64", OptionalUint64);

       }

-      if (HasOptionalSint32) {

+      if (hasOptionalSint32) {

         output.WriteSInt32(5, "optional_sint32", OptionalSint32);

       }

-      if (HasOptionalSint64) {

+      if (hasOptionalSint64) {

         output.WriteSInt64(6, "optional_sint64", OptionalSint64);

       }

-      if (HasOptionalFixed32) {

+      if (hasOptionalFixed32) {

         output.WriteFixed32(7, "optional_fixed32", OptionalFixed32);

       }

-      if (HasOptionalFixed64) {

+      if (hasOptionalFixed64) {

         output.WriteFixed64(8, "optional_fixed64", OptionalFixed64);

       }

-      if (HasOptionalSfixed32) {

+      if (hasOptionalSfixed32) {

         output.WriteSFixed32(9, "optional_sfixed32", OptionalSfixed32);

       }

-      if (HasOptionalSfixed64) {

+      if (hasOptionalSfixed64) {

         output.WriteSFixed64(10, "optional_sfixed64", OptionalSfixed64);

       }

-      if (HasOptionalFloat) {

+      if (hasOptionalFloat) {

         output.WriteFloat(11, "optional_float", OptionalFloat);

       }

-      if (HasOptionalDouble) {

+      if (hasOptionalDouble) {

         output.WriteDouble(12, "optional_double", OptionalDouble);

       }

-      if (HasOptionalBool) {

+      if (hasOptionalBool) {

         output.WriteBool(13, "optional_bool", OptionalBool);

       }

-      if (HasOptionalString) {

+      if (hasOptionalString) {

         output.WriteString(14, "optional_string", OptionalString);

       }

-      if (HasOptionalBytes) {

+      if (hasOptionalBytes) {

         output.WriteBytes(15, "optional_bytes", OptionalBytes);

       }

-      if (HasOptionalGroup) {

+      if (hasOptionalGroup) {

         output.WriteGroup(16, "optionalgroup", OptionalGroup);

       }

-      if (HasOptionalNestedMessage) {

+      if (hasOptionalNestedMessage) {

         output.WriteMessage(18, "optional_nested_message", OptionalNestedMessage);

       }

-      if (HasOptionalForeignMessage) {

+      if (hasOptionalForeignMessage) {

         output.WriteMessage(19, "optional_foreign_message", OptionalForeignMessage);

       }

-      if (HasOptionalImportMessage) {

+      if (hasOptionalImportMessage) {

         output.WriteMessage(20, "optional_import_message", OptionalImportMessage);

       }

-      if (HasOptionalNestedEnum) {

+      if (hasOptionalNestedEnum) {

         output.WriteEnum(21, "optional_nested_enum", (int) OptionalNestedEnum, OptionalNestedEnum.ToString());

       }

-      if (HasOptionalForeignEnum) {

+      if (hasOptionalForeignEnum) {

         output.WriteEnum(22, "optional_foreign_enum", (int) OptionalForeignEnum, OptionalForeignEnum.ToString());

       }

-      if (HasOptionalImportEnum) {

+      if (hasOptionalImportEnum) {

         output.WriteEnum(23, "optional_import_enum", (int) OptionalImportEnum, OptionalImportEnum.ToString());

       }

-      if (HasOptionalStringPiece) {

+      if (hasOptionalStringPiece) {

         output.WriteString(24, "optional_string_piece", OptionalStringPiece);

       }

-      if (HasOptionalCord) {

+      if (hasOptionalCord) {

         output.WriteString(25, "optional_cord", OptionalCord);

       }

       if (repeatedInt32_.Count > 0) {

@@ -2725,64 +2725,64 @@
       if (repeatedCord_.Count > 0) {

         output.WriteArray(pbd::FieldType.String, 55, "repeated_cord", repeatedCord_);

       }

-      if (HasDefaultInt32) {

+      if (hasDefaultInt32) {

         output.WriteInt32(61, "default_int32", DefaultInt32);

       }

-      if (HasDefaultInt64) {

+      if (hasDefaultInt64) {

         output.WriteInt64(62, "default_int64", DefaultInt64);

       }

-      if (HasDefaultUint32) {

+      if (hasDefaultUint32) {

         output.WriteUInt32(63, "default_uint32", DefaultUint32);

       }

-      if (HasDefaultUint64) {

+      if (hasDefaultUint64) {

         output.WriteUInt64(64, "default_uint64", DefaultUint64);

       }

-      if (HasDefaultSint32) {

+      if (hasDefaultSint32) {

         output.WriteSInt32(65, "default_sint32", DefaultSint32);

       }

-      if (HasDefaultSint64) {

+      if (hasDefaultSint64) {

         output.WriteSInt64(66, "default_sint64", DefaultSint64);

       }

-      if (HasDefaultFixed32) {

+      if (hasDefaultFixed32) {

         output.WriteFixed32(67, "default_fixed32", DefaultFixed32);

       }

-      if (HasDefaultFixed64) {

+      if (hasDefaultFixed64) {

         output.WriteFixed64(68, "default_fixed64", DefaultFixed64);

       }

-      if (HasDefaultSfixed32) {

+      if (hasDefaultSfixed32) {

         output.WriteSFixed32(69, "default_sfixed32", DefaultSfixed32);

       }

-      if (HasDefaultSfixed64) {

+      if (hasDefaultSfixed64) {

         output.WriteSFixed64(70, "default_sfixed64", DefaultSfixed64);

       }

-      if (HasDefaultFloat) {

+      if (hasDefaultFloat) {

         output.WriteFloat(71, "default_float", DefaultFloat);

       }

-      if (HasDefaultDouble) {

+      if (hasDefaultDouble) {

         output.WriteDouble(72, "default_double", DefaultDouble);

       }

-      if (HasDefaultBool) {

+      if (hasDefaultBool) {

         output.WriteBool(73, "default_bool", DefaultBool);

       }

-      if (HasDefaultString) {

+      if (hasDefaultString) {

         output.WriteString(74, "default_string", DefaultString);

       }

-      if (HasDefaultBytes) {

+      if (hasDefaultBytes) {

         output.WriteBytes(75, "default_bytes", DefaultBytes);

       }

-      if (HasDefaultNestedEnum) {

+      if (hasDefaultNestedEnum) {

         output.WriteEnum(81, "default_nested_enum", (int) DefaultNestedEnum, DefaultNestedEnum.ToString());

       }

-      if (HasDefaultForeignEnum) {

+      if (hasDefaultForeignEnum) {

         output.WriteEnum(82, "default_foreign_enum", (int) DefaultForeignEnum, DefaultForeignEnum.ToString());

       }

-      if (HasDefaultImportEnum) {

+      if (hasDefaultImportEnum) {

         output.WriteEnum(83, "default_import_enum", (int) DefaultImportEnum, DefaultImportEnum.ToString());

       }

-      if (HasDefaultStringPiece) {

+      if (hasDefaultStringPiece) {

         output.WriteString(84, "default_string_piece", DefaultStringPiece);

       }

-      if (HasDefaultCord) {

+      if (hasDefaultCord) {

         output.WriteString(85, "default_cord", DefaultCord);

       }

       UnknownFields.WriteTo(output);

@@ -2795,76 +2795,76 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasOptionalInt32) {

+        if (hasOptionalInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);

         }

-        if (HasOptionalInt64) {

+        if (hasOptionalInt64) {

           size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);

         }

-        if (HasOptionalUint32) {

+        if (hasOptionalUint32) {

           size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);

         }

-        if (HasOptionalUint64) {

+        if (hasOptionalUint64) {

           size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);

         }

-        if (HasOptionalSint32) {

+        if (hasOptionalSint32) {

           size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);

         }

-        if (HasOptionalSint64) {

+        if (hasOptionalSint64) {

           size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);

         }

-        if (HasOptionalFixed32) {

+        if (hasOptionalFixed32) {

           size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);

         }

-        if (HasOptionalFixed64) {

+        if (hasOptionalFixed64) {

           size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);

         }

-        if (HasOptionalSfixed32) {

+        if (hasOptionalSfixed32) {

           size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);

         }

-        if (HasOptionalSfixed64) {

+        if (hasOptionalSfixed64) {

           size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);

         }

-        if (HasOptionalFloat) {

+        if (hasOptionalFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);

         }

-        if (HasOptionalDouble) {

+        if (hasOptionalDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);

         }

-        if (HasOptionalBool) {

+        if (hasOptionalBool) {

           size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);

         }

-        if (HasOptionalString) {

+        if (hasOptionalString) {

           size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);

         }

-        if (HasOptionalBytes) {

+        if (hasOptionalBytes) {

           size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);

         }

-        if (HasOptionalGroup) {

+        if (hasOptionalGroup) {

           size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);

         }

-        if (HasOptionalNestedMessage) {

+        if (hasOptionalNestedMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);

         }

-        if (HasOptionalForeignMessage) {

+        if (hasOptionalForeignMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);

         }

-        if (HasOptionalImportMessage) {

+        if (hasOptionalImportMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);

         }

-        if (HasOptionalNestedEnum) {

+        if (hasOptionalNestedEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);

         }

-        if (HasOptionalForeignEnum) {

+        if (hasOptionalForeignEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);

         }

-        if (HasOptionalImportEnum) {

+        if (hasOptionalImportEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);

         }

-        if (HasOptionalStringPiece) {

+        if (hasOptionalStringPiece) {

           size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);

         }

-        if (HasOptionalCord) {

+        if (hasOptionalCord) {

           size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);

         }

         {

@@ -3031,64 +3031,64 @@
           size += dataSize;

           size += 2 * repeatedCord_.Count;

         }

-        if (HasDefaultInt32) {

+        if (hasDefaultInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);

         }

-        if (HasDefaultInt64) {

+        if (hasDefaultInt64) {

           size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);

         }

-        if (HasDefaultUint32) {

+        if (hasDefaultUint32) {

           size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);

         }

-        if (HasDefaultUint64) {

+        if (hasDefaultUint64) {

           size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);

         }

-        if (HasDefaultSint32) {

+        if (hasDefaultSint32) {

           size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);

         }

-        if (HasDefaultSint64) {

+        if (hasDefaultSint64) {

           size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);

         }

-        if (HasDefaultFixed32) {

+        if (hasDefaultFixed32) {

           size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);

         }

-        if (HasDefaultFixed64) {

+        if (hasDefaultFixed64) {

           size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);

         }

-        if (HasDefaultSfixed32) {

+        if (hasDefaultSfixed32) {

           size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);

         }

-        if (HasDefaultSfixed64) {

+        if (hasDefaultSfixed64) {

           size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);

         }

-        if (HasDefaultFloat) {

+        if (hasDefaultFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);

         }

-        if (HasDefaultDouble) {

+        if (hasDefaultDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);

         }

-        if (HasDefaultBool) {

+        if (hasDefaultBool) {

           size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);

         }

-        if (HasDefaultString) {

+        if (hasDefaultString) {

           size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);

         }

-        if (HasDefaultBytes) {

+        if (hasDefaultBytes) {

           size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);

         }

-        if (HasDefaultNestedEnum) {

+        if (hasDefaultNestedEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);

         }

-        if (HasDefaultForeignEnum) {

+        if (hasDefaultForeignEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);

         }

-        if (HasDefaultImportEnum) {

+        if (hasDefaultImportEnum) {

           size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);

         }

-        if (HasDefaultStringPiece) {

+        if (hasDefaultStringPiece) {

           size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);

         }

-        if (HasDefaultCord) {

+        if (hasDefaultCord) {

           size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);

         }

         size += UnknownFields.SerializedSize;

@@ -3506,7 +3506,7 @@
             }

             case 131: {

               global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder();

-              if (HasOptionalGroup) {

+              if (result.hasOptionalGroup) {

                 subBuilder.MergeFrom(OptionalGroup);

               }

               input.ReadGroup(16, subBuilder, extensionRegistry);

@@ -3515,7 +3515,7 @@
             }

             case 146: {

               global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();

-              if (HasOptionalNestedMessage) {

+              if (result.hasOptionalNestedMessage) {

                 subBuilder.MergeFrom(OptionalNestedMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3524,7 +3524,7 @@
             }

             case 154: {

               global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();

-              if (HasOptionalForeignMessage) {

+              if (result.hasOptionalForeignMessage) {

                 subBuilder.MergeFrom(OptionalForeignMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3533,7 +3533,7 @@
             }

             case 162: {

               global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder();

-              if (HasOptionalImportMessage) {

+              if (result.hasOptionalImportMessage) {

                 subBuilder.MergeFrom(OptionalImportMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -3838,7 +3838,7 @@
       

       

       public bool HasOptionalInt32 {

-        get { return result.HasOptionalInt32; }

+        get { return result.hasOptionalInt32; }

       }

       public int OptionalInt32 {

         get { return result.OptionalInt32; }

@@ -3856,7 +3856,7 @@
       }

       

       public bool HasOptionalInt64 {

-        get { return result.HasOptionalInt64; }

+        get { return result.hasOptionalInt64; }

       }

       public long OptionalInt64 {

         get { return result.OptionalInt64; }

@@ -3874,7 +3874,7 @@
       }

       

       public bool HasOptionalUint32 {

-        get { return result.HasOptionalUint32; }

+        get { return result.hasOptionalUint32; }

       }

       [global::System.CLSCompliant(false)]

       public uint OptionalUint32 {

@@ -3894,7 +3894,7 @@
       }

       

       public bool HasOptionalUint64 {

-        get { return result.HasOptionalUint64; }

+        get { return result.hasOptionalUint64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong OptionalUint64 {

@@ -3914,7 +3914,7 @@
       }

       

       public bool HasOptionalSint32 {

-        get { return result.HasOptionalSint32; }

+        get { return result.hasOptionalSint32; }

       }

       public int OptionalSint32 {

         get { return result.OptionalSint32; }

@@ -3932,7 +3932,7 @@
       }

       

       public bool HasOptionalSint64 {

-        get { return result.HasOptionalSint64; }

+        get { return result.hasOptionalSint64; }

       }

       public long OptionalSint64 {

         get { return result.OptionalSint64; }

@@ -3950,7 +3950,7 @@
       }

       

       public bool HasOptionalFixed32 {

-        get { return result.HasOptionalFixed32; }

+        get { return result.hasOptionalFixed32; }

       }

       [global::System.CLSCompliant(false)]

       public uint OptionalFixed32 {

@@ -3970,7 +3970,7 @@
       }

       

       public bool HasOptionalFixed64 {

-        get { return result.HasOptionalFixed64; }

+        get { return result.hasOptionalFixed64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong OptionalFixed64 {

@@ -3990,7 +3990,7 @@
       }

       

       public bool HasOptionalSfixed32 {

-        get { return result.HasOptionalSfixed32; }

+        get { return result.hasOptionalSfixed32; }

       }

       public int OptionalSfixed32 {

         get { return result.OptionalSfixed32; }

@@ -4008,7 +4008,7 @@
       }

       

       public bool HasOptionalSfixed64 {

-        get { return result.HasOptionalSfixed64; }

+        get { return result.hasOptionalSfixed64; }

       }

       public long OptionalSfixed64 {

         get { return result.OptionalSfixed64; }

@@ -4026,7 +4026,7 @@
       }

       

       public bool HasOptionalFloat {

-        get { return result.HasOptionalFloat; }

+        get { return result.hasOptionalFloat; }

       }

       public float OptionalFloat {

         get { return result.OptionalFloat; }

@@ -4044,7 +4044,7 @@
       }

       

       public bool HasOptionalDouble {

-        get { return result.HasOptionalDouble; }

+        get { return result.hasOptionalDouble; }

       }

       public double OptionalDouble {

         get { return result.OptionalDouble; }

@@ -4062,7 +4062,7 @@
       }

       

       public bool HasOptionalBool {

-        get { return result.HasOptionalBool; }

+        get { return result.hasOptionalBool; }

       }

       public bool OptionalBool {

         get { return result.OptionalBool; }

@@ -4080,7 +4080,7 @@
       }

       

       public bool HasOptionalString {

-        get { return result.HasOptionalString; }

+        get { return result.hasOptionalString; }

       }

       public string OptionalString {

         get { return result.OptionalString; }

@@ -4099,7 +4099,7 @@
       }

       

       public bool HasOptionalBytes {

-        get { return result.HasOptionalBytes; }

+        get { return result.hasOptionalBytes; }

       }

       public pb::ByteString OptionalBytes {

         get { return result.OptionalBytes; }

@@ -4118,7 +4118,7 @@
       }

       

       public bool HasOptionalGroup {

-       get { return result.HasOptionalGroup; }

+       get { return result.hasOptionalGroup; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {

         get { return result.OptionalGroup; }

@@ -4138,7 +4138,7 @@
       }

       public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalGroup &&

+        if (result.hasOptionalGroup &&

             result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) {

             result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();

         } else {

@@ -4154,7 +4154,7 @@
       }

       

       public bool HasOptionalNestedMessage {

-       get { return result.HasOptionalNestedMessage; }

+       get { return result.hasOptionalNestedMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {

         get { return result.OptionalNestedMessage; }

@@ -4174,7 +4174,7 @@
       }

       public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalNestedMessage &&

+        if (result.hasOptionalNestedMessage &&

             result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {

             result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4190,7 +4190,7 @@
       }

       

       public bool HasOptionalForeignMessage {

-       get { return result.HasOptionalForeignMessage; }

+       get { return result.hasOptionalForeignMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {

         get { return result.OptionalForeignMessage; }

@@ -4210,7 +4210,7 @@
       }

       public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalForeignMessage &&

+        if (result.hasOptionalForeignMessage &&

             result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {

             result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4226,7 +4226,7 @@
       }

       

       public bool HasOptionalImportMessage {

-       get { return result.HasOptionalImportMessage; }

+       get { return result.hasOptionalImportMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {

         get { return result.OptionalImportMessage; }

@@ -4246,7 +4246,7 @@
       }

       public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalImportMessage &&

+        if (result.hasOptionalImportMessage &&

             result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) {

             result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -4262,7 +4262,7 @@
       }

       

       public bool HasOptionalNestedEnum {

-       get { return result.HasOptionalNestedEnum; }

+       get { return result.hasOptionalNestedEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {

         get { return result.OptionalNestedEnum; }

@@ -4280,7 +4280,7 @@
       }

       

       public bool HasOptionalForeignEnum {

-       get { return result.HasOptionalForeignEnum; }

+       get { return result.hasOptionalForeignEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {

         get { return result.OptionalForeignEnum; }

@@ -4298,7 +4298,7 @@
       }

       

       public bool HasOptionalImportEnum {

-       get { return result.HasOptionalImportEnum; }

+       get { return result.hasOptionalImportEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {

         get { return result.OptionalImportEnum; }

@@ -4316,7 +4316,7 @@
       }

       

       public bool HasOptionalStringPiece {

-        get { return result.HasOptionalStringPiece; }

+        get { return result.hasOptionalStringPiece; }

       }

       public string OptionalStringPiece {

         get { return result.OptionalStringPiece; }

@@ -4335,7 +4335,7 @@
       }

       

       public bool HasOptionalCord {

-        get { return result.HasOptionalCord; }

+        get { return result.hasOptionalCord; }

       }

       public string OptionalCord {

         get { return result.OptionalCord; }

@@ -5054,7 +5054,7 @@
       }

       

       public bool HasDefaultInt32 {

-        get { return result.HasDefaultInt32; }

+        get { return result.hasDefaultInt32; }

       }

       public int DefaultInt32 {

         get { return result.DefaultInt32; }

@@ -5072,7 +5072,7 @@
       }

       

       public bool HasDefaultInt64 {

-        get { return result.HasDefaultInt64; }

+        get { return result.hasDefaultInt64; }

       }

       public long DefaultInt64 {

         get { return result.DefaultInt64; }

@@ -5090,7 +5090,7 @@
       }

       

       public bool HasDefaultUint32 {

-        get { return result.HasDefaultUint32; }

+        get { return result.hasDefaultUint32; }

       }

       [global::System.CLSCompliant(false)]

       public uint DefaultUint32 {

@@ -5110,7 +5110,7 @@
       }

       

       public bool HasDefaultUint64 {

-        get { return result.HasDefaultUint64; }

+        get { return result.hasDefaultUint64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong DefaultUint64 {

@@ -5130,7 +5130,7 @@
       }

       

       public bool HasDefaultSint32 {

-        get { return result.HasDefaultSint32; }

+        get { return result.hasDefaultSint32; }

       }

       public int DefaultSint32 {

         get { return result.DefaultSint32; }

@@ -5148,7 +5148,7 @@
       }

       

       public bool HasDefaultSint64 {

-        get { return result.HasDefaultSint64; }

+        get { return result.hasDefaultSint64; }

       }

       public long DefaultSint64 {

         get { return result.DefaultSint64; }

@@ -5166,7 +5166,7 @@
       }

       

       public bool HasDefaultFixed32 {

-        get { return result.HasDefaultFixed32; }

+        get { return result.hasDefaultFixed32; }

       }

       [global::System.CLSCompliant(false)]

       public uint DefaultFixed32 {

@@ -5186,7 +5186,7 @@
       }

       

       public bool HasDefaultFixed64 {

-        get { return result.HasDefaultFixed64; }

+        get { return result.hasDefaultFixed64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong DefaultFixed64 {

@@ -5206,7 +5206,7 @@
       }

       

       public bool HasDefaultSfixed32 {

-        get { return result.HasDefaultSfixed32; }

+        get { return result.hasDefaultSfixed32; }

       }

       public int DefaultSfixed32 {

         get { return result.DefaultSfixed32; }

@@ -5224,7 +5224,7 @@
       }

       

       public bool HasDefaultSfixed64 {

-        get { return result.HasDefaultSfixed64; }

+        get { return result.hasDefaultSfixed64; }

       }

       public long DefaultSfixed64 {

         get { return result.DefaultSfixed64; }

@@ -5242,7 +5242,7 @@
       }

       

       public bool HasDefaultFloat {

-        get { return result.HasDefaultFloat; }

+        get { return result.hasDefaultFloat; }

       }

       public float DefaultFloat {

         get { return result.DefaultFloat; }

@@ -5260,7 +5260,7 @@
       }

       

       public bool HasDefaultDouble {

-        get { return result.HasDefaultDouble; }

+        get { return result.hasDefaultDouble; }

       }

       public double DefaultDouble {

         get { return result.DefaultDouble; }

@@ -5278,7 +5278,7 @@
       }

       

       public bool HasDefaultBool {

-        get { return result.HasDefaultBool; }

+        get { return result.hasDefaultBool; }

       }

       public bool DefaultBool {

         get { return result.DefaultBool; }

@@ -5296,7 +5296,7 @@
       }

       

       public bool HasDefaultString {

-        get { return result.HasDefaultString; }

+        get { return result.hasDefaultString; }

       }

       public string DefaultString {

         get { return result.DefaultString; }

@@ -5315,7 +5315,7 @@
       }

       

       public bool HasDefaultBytes {

-        get { return result.HasDefaultBytes; }

+        get { return result.hasDefaultBytes; }

       }

       public pb::ByteString DefaultBytes {

         get { return result.DefaultBytes; }

@@ -5334,7 +5334,7 @@
       }

       

       public bool HasDefaultNestedEnum {

-       get { return result.HasDefaultNestedEnum; }

+       get { return result.hasDefaultNestedEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {

         get { return result.DefaultNestedEnum; }

@@ -5352,7 +5352,7 @@
       }

       

       public bool HasDefaultForeignEnum {

-       get { return result.HasDefaultForeignEnum; }

+       get { return result.hasDefaultForeignEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {

         get { return result.DefaultForeignEnum; }

@@ -5370,7 +5370,7 @@
       }

       

       public bool HasDefaultImportEnum {

-       get { return result.HasDefaultImportEnum; }

+       get { return result.hasDefaultImportEnum; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {

         get { return result.DefaultImportEnum; }

@@ -5388,7 +5388,7 @@
       }

       

       public bool HasDefaultStringPiece {

-        get { return result.HasDefaultStringPiece; }

+        get { return result.hasDefaultStringPiece; }

       }

       public string DefaultStringPiece {

         get { return result.DefaultStringPiece; }

@@ -5407,7 +5407,7 @@
       }

       

       public bool HasDefaultCord {

-        get { return result.HasDefaultCord; }

+        get { return result.hasDefaultCord; }

       }

       public string DefaultCord {

         get { return result.DefaultCord; }

@@ -5473,7 +5473,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasDeprecatedInt32) {

+      if (hasDeprecatedInt32) {

         output.WriteInt32(1, "deprecated_int32", DeprecatedInt32);

       }

       UnknownFields.WriteTo(output);

@@ -5486,7 +5486,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasDeprecatedInt32) {

+        if (hasDeprecatedInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedInt32);

         }

         size += UnknownFields.SerializedSize;

@@ -5632,7 +5632,7 @@
       

       

       public bool HasDeprecatedInt32 {

-        get { return result.HasDeprecatedInt32; }

+        get { return result.hasDeprecatedInt32; }

       }

       public int DeprecatedInt32 {

         get { return result.DeprecatedInt32; }

@@ -5697,7 +5697,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasC) {

+      if (hasC) {

         output.WriteInt32(1, "c", C);

       }

       UnknownFields.WriteTo(output);

@@ -5710,7 +5710,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasC) {

+        if (hasC) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, C);

         }

         size += UnknownFields.SerializedSize;

@@ -5856,7 +5856,7 @@
       

       

       public bool HasC {

-        get { return result.HasC; }

+        get { return result.hasC; }

       }

       public int C {

         get { return result.C; }

@@ -6109,7 +6109,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(17, "a", A);

       }

       UnknownFields.WriteTo(output);

@@ -6122,7 +6122,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(17, A);

         }

         size += UnknownFields.SerializedSize;

@@ -6268,7 +6268,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -6333,7 +6333,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(47, "a", A);

       }

       UnknownFields.WriteTo(output);

@@ -6346,7 +6346,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(47, A);

         }

         size += UnknownFields.SerializedSize;

@@ -6492,7 +6492,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -7069,103 +7069,103 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(1, "a", A);

       }

-      if (HasDummy2) {

+      if (hasDummy2) {

         output.WriteInt32(2, "dummy2", Dummy2);

       }

-      if (HasB) {

+      if (hasB) {

         output.WriteInt32(3, "b", B);

       }

-      if (HasDummy4) {

+      if (hasDummy4) {

         output.WriteInt32(4, "dummy4", Dummy4);

       }

-      if (HasDummy5) {

+      if (hasDummy5) {

         output.WriteInt32(5, "dummy5", Dummy5);

       }

-      if (HasDummy6) {

+      if (hasDummy6) {

         output.WriteInt32(6, "dummy6", Dummy6);

       }

-      if (HasDummy7) {

+      if (hasDummy7) {

         output.WriteInt32(7, "dummy7", Dummy7);

       }

-      if (HasDummy8) {

+      if (hasDummy8) {

         output.WriteInt32(8, "dummy8", Dummy8);

       }

-      if (HasDummy9) {

+      if (hasDummy9) {

         output.WriteInt32(9, "dummy9", Dummy9);

       }

-      if (HasDummy10) {

+      if (hasDummy10) {

         output.WriteInt32(10, "dummy10", Dummy10);

       }

-      if (HasDummy11) {

+      if (hasDummy11) {

         output.WriteInt32(11, "dummy11", Dummy11);

       }

-      if (HasDummy12) {

+      if (hasDummy12) {

         output.WriteInt32(12, "dummy12", Dummy12);

       }

-      if (HasDummy13) {

+      if (hasDummy13) {

         output.WriteInt32(13, "dummy13", Dummy13);

       }

-      if (HasDummy14) {

+      if (hasDummy14) {

         output.WriteInt32(14, "dummy14", Dummy14);

       }

-      if (HasDummy15) {

+      if (hasDummy15) {

         output.WriteInt32(15, "dummy15", Dummy15);

       }

-      if (HasDummy16) {

+      if (hasDummy16) {

         output.WriteInt32(16, "dummy16", Dummy16);

       }

-      if (HasDummy17) {

+      if (hasDummy17) {

         output.WriteInt32(17, "dummy17", Dummy17);

       }

-      if (HasDummy18) {

+      if (hasDummy18) {

         output.WriteInt32(18, "dummy18", Dummy18);

       }

-      if (HasDummy19) {

+      if (hasDummy19) {

         output.WriteInt32(19, "dummy19", Dummy19);

       }

-      if (HasDummy20) {

+      if (hasDummy20) {

         output.WriteInt32(20, "dummy20", Dummy20);

       }

-      if (HasDummy21) {

+      if (hasDummy21) {

         output.WriteInt32(21, "dummy21", Dummy21);

       }

-      if (HasDummy22) {

+      if (hasDummy22) {

         output.WriteInt32(22, "dummy22", Dummy22);

       }

-      if (HasDummy23) {

+      if (hasDummy23) {

         output.WriteInt32(23, "dummy23", Dummy23);

       }

-      if (HasDummy24) {

+      if (hasDummy24) {

         output.WriteInt32(24, "dummy24", Dummy24);

       }

-      if (HasDummy25) {

+      if (hasDummy25) {

         output.WriteInt32(25, "dummy25", Dummy25);

       }

-      if (HasDummy26) {

+      if (hasDummy26) {

         output.WriteInt32(26, "dummy26", Dummy26);

       }

-      if (HasDummy27) {

+      if (hasDummy27) {

         output.WriteInt32(27, "dummy27", Dummy27);

       }

-      if (HasDummy28) {

+      if (hasDummy28) {

         output.WriteInt32(28, "dummy28", Dummy28);

       }

-      if (HasDummy29) {

+      if (hasDummy29) {

         output.WriteInt32(29, "dummy29", Dummy29);

       }

-      if (HasDummy30) {

+      if (hasDummy30) {

         output.WriteInt32(30, "dummy30", Dummy30);

       }

-      if (HasDummy31) {

+      if (hasDummy31) {

         output.WriteInt32(31, "dummy31", Dummy31);

       }

-      if (HasDummy32) {

+      if (hasDummy32) {

         output.WriteInt32(32, "dummy32", Dummy32);

       }

-      if (HasC) {

+      if (hasC) {

         output.WriteInt32(33, "c", C);

       }

       UnknownFields.WriteTo(output);

@@ -7178,103 +7178,103 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, A);

         }

-        if (HasDummy2) {

+        if (hasDummy2) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, Dummy2);

         }

-        if (HasB) {

+        if (hasB) {

           size += pb::CodedOutputStream.ComputeInt32Size(3, B);

         }

-        if (HasDummy4) {

+        if (hasDummy4) {

           size += pb::CodedOutputStream.ComputeInt32Size(4, Dummy4);

         }

-        if (HasDummy5) {

+        if (hasDummy5) {

           size += pb::CodedOutputStream.ComputeInt32Size(5, Dummy5);

         }

-        if (HasDummy6) {

+        if (hasDummy6) {

           size += pb::CodedOutputStream.ComputeInt32Size(6, Dummy6);

         }

-        if (HasDummy7) {

+        if (hasDummy7) {

           size += pb::CodedOutputStream.ComputeInt32Size(7, Dummy7);

         }

-        if (HasDummy8) {

+        if (hasDummy8) {

           size += pb::CodedOutputStream.ComputeInt32Size(8, Dummy8);

         }

-        if (HasDummy9) {

+        if (hasDummy9) {

           size += pb::CodedOutputStream.ComputeInt32Size(9, Dummy9);

         }

-        if (HasDummy10) {

+        if (hasDummy10) {

           size += pb::CodedOutputStream.ComputeInt32Size(10, Dummy10);

         }

-        if (HasDummy11) {

+        if (hasDummy11) {

           size += pb::CodedOutputStream.ComputeInt32Size(11, Dummy11);

         }

-        if (HasDummy12) {

+        if (hasDummy12) {

           size += pb::CodedOutputStream.ComputeInt32Size(12, Dummy12);

         }

-        if (HasDummy13) {

+        if (hasDummy13) {

           size += pb::CodedOutputStream.ComputeInt32Size(13, Dummy13);

         }

-        if (HasDummy14) {

+        if (hasDummy14) {

           size += pb::CodedOutputStream.ComputeInt32Size(14, Dummy14);

         }

-        if (HasDummy15) {

+        if (hasDummy15) {

           size += pb::CodedOutputStream.ComputeInt32Size(15, Dummy15);

         }

-        if (HasDummy16) {

+        if (hasDummy16) {

           size += pb::CodedOutputStream.ComputeInt32Size(16, Dummy16);

         }

-        if (HasDummy17) {

+        if (hasDummy17) {

           size += pb::CodedOutputStream.ComputeInt32Size(17, Dummy17);

         }

-        if (HasDummy18) {

+        if (hasDummy18) {

           size += pb::CodedOutputStream.ComputeInt32Size(18, Dummy18);

         }

-        if (HasDummy19) {

+        if (hasDummy19) {

           size += pb::CodedOutputStream.ComputeInt32Size(19, Dummy19);

         }

-        if (HasDummy20) {

+        if (hasDummy20) {

           size += pb::CodedOutputStream.ComputeInt32Size(20, Dummy20);

         }

-        if (HasDummy21) {

+        if (hasDummy21) {

           size += pb::CodedOutputStream.ComputeInt32Size(21, Dummy21);

         }

-        if (HasDummy22) {

+        if (hasDummy22) {

           size += pb::CodedOutputStream.ComputeInt32Size(22, Dummy22);

         }

-        if (HasDummy23) {

+        if (hasDummy23) {

           size += pb::CodedOutputStream.ComputeInt32Size(23, Dummy23);

         }

-        if (HasDummy24) {

+        if (hasDummy24) {

           size += pb::CodedOutputStream.ComputeInt32Size(24, Dummy24);

         }

-        if (HasDummy25) {

+        if (hasDummy25) {

           size += pb::CodedOutputStream.ComputeInt32Size(25, Dummy25);

         }

-        if (HasDummy26) {

+        if (hasDummy26) {

           size += pb::CodedOutputStream.ComputeInt32Size(26, Dummy26);

         }

-        if (HasDummy27) {

+        if (hasDummy27) {

           size += pb::CodedOutputStream.ComputeInt32Size(27, Dummy27);

         }

-        if (HasDummy28) {

+        if (hasDummy28) {

           size += pb::CodedOutputStream.ComputeInt32Size(28, Dummy28);

         }

-        if (HasDummy29) {

+        if (hasDummy29) {

           size += pb::CodedOutputStream.ComputeInt32Size(29, Dummy29);

         }

-        if (HasDummy30) {

+        if (hasDummy30) {

           size += pb::CodedOutputStream.ComputeInt32Size(30, Dummy30);

         }

-        if (HasDummy31) {

+        if (hasDummy31) {

           size += pb::CodedOutputStream.ComputeInt32Size(31, Dummy31);

         }

-        if (HasDummy32) {

+        if (hasDummy32) {

           size += pb::CodedOutputStream.ComputeInt32Size(32, Dummy32);

         }

-        if (HasC) {

+        if (hasC) {

           size += pb::CodedOutputStream.ComputeInt32Size(33, C);

         }

         size += UnknownFields.SerializedSize;

@@ -7644,7 +7644,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -7662,7 +7662,7 @@
       }

       

       public bool HasDummy2 {

-        get { return result.HasDummy2; }

+        get { return result.hasDummy2; }

       }

       public int Dummy2 {

         get { return result.Dummy2; }

@@ -7680,7 +7680,7 @@
       }

       

       public bool HasB {

-        get { return result.HasB; }

+        get { return result.hasB; }

       }

       public int B {

         get { return result.B; }

@@ -7698,7 +7698,7 @@
       }

       

       public bool HasDummy4 {

-        get { return result.HasDummy4; }

+        get { return result.hasDummy4; }

       }

       public int Dummy4 {

         get { return result.Dummy4; }

@@ -7716,7 +7716,7 @@
       }

       

       public bool HasDummy5 {

-        get { return result.HasDummy5; }

+        get { return result.hasDummy5; }

       }

       public int Dummy5 {

         get { return result.Dummy5; }

@@ -7734,7 +7734,7 @@
       }

       

       public bool HasDummy6 {

-        get { return result.HasDummy6; }

+        get { return result.hasDummy6; }

       }

       public int Dummy6 {

         get { return result.Dummy6; }

@@ -7752,7 +7752,7 @@
       }

       

       public bool HasDummy7 {

-        get { return result.HasDummy7; }

+        get { return result.hasDummy7; }

       }

       public int Dummy7 {

         get { return result.Dummy7; }

@@ -7770,7 +7770,7 @@
       }

       

       public bool HasDummy8 {

-        get { return result.HasDummy8; }

+        get { return result.hasDummy8; }

       }

       public int Dummy8 {

         get { return result.Dummy8; }

@@ -7788,7 +7788,7 @@
       }

       

       public bool HasDummy9 {

-        get { return result.HasDummy9; }

+        get { return result.hasDummy9; }

       }

       public int Dummy9 {

         get { return result.Dummy9; }

@@ -7806,7 +7806,7 @@
       }

       

       public bool HasDummy10 {

-        get { return result.HasDummy10; }

+        get { return result.hasDummy10; }

       }

       public int Dummy10 {

         get { return result.Dummy10; }

@@ -7824,7 +7824,7 @@
       }

       

       public bool HasDummy11 {

-        get { return result.HasDummy11; }

+        get { return result.hasDummy11; }

       }

       public int Dummy11 {

         get { return result.Dummy11; }

@@ -7842,7 +7842,7 @@
       }

       

       public bool HasDummy12 {

-        get { return result.HasDummy12; }

+        get { return result.hasDummy12; }

       }

       public int Dummy12 {

         get { return result.Dummy12; }

@@ -7860,7 +7860,7 @@
       }

       

       public bool HasDummy13 {

-        get { return result.HasDummy13; }

+        get { return result.hasDummy13; }

       }

       public int Dummy13 {

         get { return result.Dummy13; }

@@ -7878,7 +7878,7 @@
       }

       

       public bool HasDummy14 {

-        get { return result.HasDummy14; }

+        get { return result.hasDummy14; }

       }

       public int Dummy14 {

         get { return result.Dummy14; }

@@ -7896,7 +7896,7 @@
       }

       

       public bool HasDummy15 {

-        get { return result.HasDummy15; }

+        get { return result.hasDummy15; }

       }

       public int Dummy15 {

         get { return result.Dummy15; }

@@ -7914,7 +7914,7 @@
       }

       

       public bool HasDummy16 {

-        get { return result.HasDummy16; }

+        get { return result.hasDummy16; }

       }

       public int Dummy16 {

         get { return result.Dummy16; }

@@ -7932,7 +7932,7 @@
       }

       

       public bool HasDummy17 {

-        get { return result.HasDummy17; }

+        get { return result.hasDummy17; }

       }

       public int Dummy17 {

         get { return result.Dummy17; }

@@ -7950,7 +7950,7 @@
       }

       

       public bool HasDummy18 {

-        get { return result.HasDummy18; }

+        get { return result.hasDummy18; }

       }

       public int Dummy18 {

         get { return result.Dummy18; }

@@ -7968,7 +7968,7 @@
       }

       

       public bool HasDummy19 {

-        get { return result.HasDummy19; }

+        get { return result.hasDummy19; }

       }

       public int Dummy19 {

         get { return result.Dummy19; }

@@ -7986,7 +7986,7 @@
       }

       

       public bool HasDummy20 {

-        get { return result.HasDummy20; }

+        get { return result.hasDummy20; }

       }

       public int Dummy20 {

         get { return result.Dummy20; }

@@ -8004,7 +8004,7 @@
       }

       

       public bool HasDummy21 {

-        get { return result.HasDummy21; }

+        get { return result.hasDummy21; }

       }

       public int Dummy21 {

         get { return result.Dummy21; }

@@ -8022,7 +8022,7 @@
       }

       

       public bool HasDummy22 {

-        get { return result.HasDummy22; }

+        get { return result.hasDummy22; }

       }

       public int Dummy22 {

         get { return result.Dummy22; }

@@ -8040,7 +8040,7 @@
       }

       

       public bool HasDummy23 {

-        get { return result.HasDummy23; }

+        get { return result.hasDummy23; }

       }

       public int Dummy23 {

         get { return result.Dummy23; }

@@ -8058,7 +8058,7 @@
       }

       

       public bool HasDummy24 {

-        get { return result.HasDummy24; }

+        get { return result.hasDummy24; }

       }

       public int Dummy24 {

         get { return result.Dummy24; }

@@ -8076,7 +8076,7 @@
       }

       

       public bool HasDummy25 {

-        get { return result.HasDummy25; }

+        get { return result.hasDummy25; }

       }

       public int Dummy25 {

         get { return result.Dummy25; }

@@ -8094,7 +8094,7 @@
       }

       

       public bool HasDummy26 {

-        get { return result.HasDummy26; }

+        get { return result.hasDummy26; }

       }

       public int Dummy26 {

         get { return result.Dummy26; }

@@ -8112,7 +8112,7 @@
       }

       

       public bool HasDummy27 {

-        get { return result.HasDummy27; }

+        get { return result.hasDummy27; }

       }

       public int Dummy27 {

         get { return result.Dummy27; }

@@ -8130,7 +8130,7 @@
       }

       

       public bool HasDummy28 {

-        get { return result.HasDummy28; }

+        get { return result.hasDummy28; }

       }

       public int Dummy28 {

         get { return result.Dummy28; }

@@ -8148,7 +8148,7 @@
       }

       

       public bool HasDummy29 {

-        get { return result.HasDummy29; }

+        get { return result.hasDummy29; }

       }

       public int Dummy29 {

         get { return result.Dummy29; }

@@ -8166,7 +8166,7 @@
       }

       

       public bool HasDummy30 {

-        get { return result.HasDummy30; }

+        get { return result.hasDummy30; }

       }

       public int Dummy30 {

         get { return result.Dummy30; }

@@ -8184,7 +8184,7 @@
       }

       

       public bool HasDummy31 {

-        get { return result.HasDummy31; }

+        get { return result.hasDummy31; }

       }

       public int Dummy31 {

         get { return result.Dummy31; }

@@ -8202,7 +8202,7 @@
       }

       

       public bool HasDummy32 {

-        get { return result.HasDummy32; }

+        get { return result.hasDummy32; }

       }

       public int Dummy32 {

         get { return result.Dummy32; }

@@ -8220,7 +8220,7 @@
       }

       

       public bool HasC {

-        get { return result.HasC; }

+        get { return result.hasC; }

       }

       public int C {

         get { return result.C; }

@@ -8313,13 +8313,13 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasOptionalMessage) {

+      if (hasOptionalMessage) {

         output.WriteMessage(1, "optional_message", OptionalMessage);

       }

       if (repeatedMessage_.Count > 0) {

         output.WriteArray(pbd::FieldType.Message, 2, "repeated_message", repeatedMessage_);

       }

-      if (HasDummy) {

+      if (hasDummy) {

         output.WriteInt32(3, "dummy", Dummy);

       }

       UnknownFields.WriteTo(output);

@@ -8332,13 +8332,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasOptionalMessage) {

+        if (hasOptionalMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalMessage);

         }

         foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {

           size += pb::CodedOutputStream.ComputeMessageSize(2, element);

         }

-        if (HasDummy) {

+        if (hasDummy) {

           size += pb::CodedOutputStream.ComputeInt32Size(3, Dummy);

         }

         size += UnknownFields.SerializedSize;

@@ -8478,7 +8478,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder();

-              if (HasOptionalMessage) {

+              if (result.hasOptionalMessage) {

                 subBuilder.MergeFrom(OptionalMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -8504,7 +8504,7 @@
       

       

       public bool HasOptionalMessage {

-       get { return result.HasOptionalMessage; }

+       get { return result.hasOptionalMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {

         get { return result.OptionalMessage; }

@@ -8524,7 +8524,7 @@
       }

       public Builder MergeOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalMessage &&

+        if (result.hasOptionalMessage &&

             result.optionalMessage_ != global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) {

             result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder(result.optionalMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -8578,7 +8578,7 @@
       }

       

       public bool HasDummy {

-        get { return result.HasDummy; }

+        get { return result.hasDummy; }

       }

       public int Dummy {

         get { return result.Dummy; }

@@ -8643,7 +8643,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasForeignNested) {

+      if (hasForeignNested) {

         output.WriteMessage(1, "foreign_nested", ForeignNested);

       }

       UnknownFields.WriteTo(output);

@@ -8656,7 +8656,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasForeignNested) {

+        if (hasForeignNested) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, ForeignNested);

         }

         size += UnknownFields.SerializedSize;

@@ -8789,7 +8789,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();

-              if (HasForeignNested) {

+              if (result.hasForeignNested) {

                 subBuilder.MergeFrom(ForeignNested);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -8807,7 +8807,7 @@
       

       

       public bool HasForeignNested {

-       get { return result.HasForeignNested; }

+       get { return result.hasForeignNested; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {

         get { return result.ForeignNested; }

@@ -8827,7 +8827,7 @@
       }

       public Builder MergeForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasForeignNested &&

+        if (result.hasForeignNested &&

             result.foreignNested_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {

             result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.foreignNested_).MergeFrom(value).BuildPartial();

         } else {

@@ -9461,10 +9461,10 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(1, "a", A);

       }

-      if (HasBb) {

+      if (hasBb) {

         output.WriteInt32(268435455, "bb", Bb);

       }

       UnknownFields.WriteTo(output);

@@ -9477,10 +9477,10 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, A);

         }

-        if (HasBb) {

+        if (hasBb) {

           size += pb::CodedOutputStream.ComputeInt32Size(268435455, Bb);

         }

         size += UnknownFields.SerializedSize;

@@ -9633,7 +9633,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -9651,7 +9651,7 @@
       }

       

       public bool HasBb {

-        get { return result.HasBb; }

+        get { return result.hasBb; }

       }

       public int Bb {

         get { return result.Bb; }

@@ -9726,10 +9726,10 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteMessage(1, "a", A);

       }

-      if (HasI) {

+      if (hasI) {

         output.WriteInt32(2, "i", I);

       }

       UnknownFields.WriteTo(output);

@@ -9742,10 +9742,10 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, A);

         }

-        if (HasI) {

+        if (hasI) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, I);

         }

         size += UnknownFields.SerializedSize;

@@ -9881,7 +9881,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder();

-              if (HasA) {

+              if (result.hasA) {

                 subBuilder.MergeFrom(A);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -9903,7 +9903,7 @@
       

       

       public bool HasA {

-       get { return result.HasA; }

+       get { return result.hasA; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {

         get { return result.A; }

@@ -9923,7 +9923,7 @@
       }

       public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasA &&

+        if (result.hasA &&

             result.a_ != global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) {

             result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();

         } else {

@@ -9939,7 +9939,7 @@
       }

       

       public bool HasI {

-        get { return result.HasI; }

+        get { return result.hasI; }

       }

       public int I {

         get { return result.I; }

@@ -10004,7 +10004,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasBb) {

+      if (hasBb) {

         output.WriteMessage(1, "bb", Bb);

       }

       UnknownFields.WriteTo(output);

@@ -10017,7 +10017,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasBb) {

+        if (hasBb) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, Bb);

         }

         size += UnknownFields.SerializedSize;

@@ -10150,7 +10150,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder();

-              if (HasBb) {

+              if (result.hasBb) {

                 subBuilder.MergeFrom(Bb);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -10168,7 +10168,7 @@
       

       

       public bool HasBb {

-       get { return result.HasBb; }

+       get { return result.hasBb; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {

         get { return result.Bb; }

@@ -10188,7 +10188,7 @@
       }

       public Builder MergeBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasBb &&

+        if (result.hasBb &&

             result.bb_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) {

             result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder(result.bb_).MergeFrom(value).BuildPartial();

         } else {

@@ -10261,10 +10261,10 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteMessage(1, "a", A);

       }

-      if (HasOptionalInt32) {

+      if (hasOptionalInt32) {

         output.WriteInt32(2, "optional_int32", OptionalInt32);

       }

       UnknownFields.WriteTo(output);

@@ -10277,10 +10277,10 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, A);

         }

-        if (HasOptionalInt32) {

+        if (hasOptionalInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(2, OptionalInt32);

         }

         size += UnknownFields.SerializedSize;

@@ -10416,7 +10416,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder();

-              if (HasA) {

+              if (result.hasA) {

                 subBuilder.MergeFrom(A);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -10438,7 +10438,7 @@
       

       

       public bool HasA {

-       get { return result.HasA; }

+       get { return result.hasA; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {

         get { return result.A; }

@@ -10458,7 +10458,7 @@
       }

       public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasA &&

+        if (result.hasA &&

             result.a_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) {

             result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();

         } else {

@@ -10474,7 +10474,7 @@
       }

       

       public bool HasOptionalInt32 {

-        get { return result.HasOptionalInt32; }

+        get { return result.hasOptionalInt32; }

       }

       public int OptionalInt32 {

         get { return result.OptionalInt32; }

@@ -10569,7 +10569,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(1, "a", A);

           }

           UnknownFields.WriteTo(output);

@@ -10582,7 +10582,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, A);

             }

             size += UnknownFields.SerializedSize;

@@ -10728,7 +10728,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -10793,7 +10793,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasA) {

+          if (hasA) {

             output.WriteInt32(1, "a", A);

           }

           UnknownFields.WriteTo(output);

@@ -10806,7 +10806,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasA) {

+            if (hasA) {

               size += pb::CodedOutputStream.ComputeInt32Size(1, A);

             }

             size += UnknownFields.SerializedSize;

@@ -10952,7 +10952,7 @@
           

           

           public bool HasA {

-            get { return result.HasA; }

+            get { return result.hasA; }

           }

           public int A {

             get { return result.A; }

@@ -11015,13 +11015,13 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasA) {

+      if (hasA) {

         output.WriteInt32(1, "a", A);

       }

-      if (HasFoo) {

+      if (hasFoo) {

         output.WriteGroup(2, "foo", Foo);

       }

-      if (HasBar) {

+      if (hasBar) {

         output.WriteGroup(3, "bar", Bar);

       }

       UnknownFields.WriteTo(output);

@@ -11034,13 +11034,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasA) {

+        if (hasA) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, A);

         }

-        if (HasFoo) {

+        if (hasFoo) {

           size += pb::CodedOutputStream.ComputeGroupSize(2, Foo);

         }

-        if (HasBar) {

+        if (hasBar) {

           size += pb::CodedOutputStream.ComputeGroupSize(3, Bar);

         }

         size += UnknownFields.SerializedSize;

@@ -11183,7 +11183,7 @@
             }

             case 19: {

               global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder();

-              if (HasFoo) {

+              if (result.hasFoo) {

                 subBuilder.MergeFrom(Foo);

               }

               input.ReadGroup(2, subBuilder, extensionRegistry);

@@ -11192,7 +11192,7 @@
             }

             case 27: {

               global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder();

-              if (HasBar) {

+              if (result.hasBar) {

                 subBuilder.MergeFrom(Bar);

               }

               input.ReadGroup(3, subBuilder, extensionRegistry);

@@ -11210,7 +11210,7 @@
       

       

       public bool HasA {

-        get { return result.HasA; }

+        get { return result.hasA; }

       }

       public int A {

         get { return result.A; }

@@ -11228,7 +11228,7 @@
       }

       

       public bool HasFoo {

-       get { return result.HasFoo; }

+       get { return result.hasFoo; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {

         get { return result.Foo; }

@@ -11248,7 +11248,7 @@
       }

       public Builder MergeFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasFoo &&

+        if (result.hasFoo &&

             result.foo_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) {

             result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder(result.foo_).MergeFrom(value).BuildPartial();

         } else {

@@ -11264,7 +11264,7 @@
       }

       

       public bool HasBar {

-       get { return result.HasBar; }

+       get { return result.hasBar; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {

         get { return result.Bar; }

@@ -11284,7 +11284,7 @@
       }

       public Builder MergeBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasBar &&

+        if (result.hasBar &&

             result.bar_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) {

             result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder(result.bar_).MergeFrom(value).BuildPartial();

         } else {

@@ -11660,7 +11660,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasOptionalNestedMessage) {

+      if (hasOptionalNestedMessage) {

         output.WriteMessage(1, "optional_nested_message", OptionalNestedMessage);

       }

       UnknownFields.WriteTo(output);

@@ -11673,7 +11673,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasOptionalNestedMessage) {

+        if (hasOptionalNestedMessage) {

           size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalNestedMessage);

         }

         size += UnknownFields.SerializedSize;

@@ -11806,7 +11806,7 @@
             }

             case 10: {

               global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder();

-              if (HasOptionalNestedMessage) {

+              if (result.hasOptionalNestedMessage) {

                 subBuilder.MergeFrom(OptionalNestedMessage);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -11824,7 +11824,7 @@
       

       

       public bool HasOptionalNestedMessage {

-       get { return result.HasOptionalNestedMessage; }

+       get { return result.hasOptionalNestedMessage; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {

         get { return result.OptionalNestedMessage; }

@@ -11844,7 +11844,7 @@
       }

       public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasOptionalNestedMessage &&

+        if (result.hasOptionalNestedMessage &&

             result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) {

             result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();

         } else {

@@ -12029,22 +12029,22 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasPrimitiveField) {

+      if (hasPrimitiveField) {

         output.WriteInt32(1, "PrimitiveField", PrimitiveField);

       }

-      if (HasStringField) {

+      if (hasStringField) {

         output.WriteString(2, "StringField", StringField);

       }

-      if (HasEnumField) {

+      if (hasEnumField) {

         output.WriteEnum(3, "EnumField", (int) EnumField, EnumField.ToString());

       }

-      if (HasMessageField) {

+      if (hasMessageField) {

         output.WriteMessage(4, "MessageField", MessageField);

       }

-      if (HasStringPieceField) {

+      if (hasStringPieceField) {

         output.WriteString(5, "StringPieceField", StringPieceField);

       }

-      if (HasCordField) {

+      if (hasCordField) {

         output.WriteString(6, "CordField", CordField);

       }

       if (repeatedPrimitiveField_.Count > 0) {

@@ -12075,22 +12075,22 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasPrimitiveField) {

+        if (hasPrimitiveField) {

           size += pb::CodedOutputStream.ComputeInt32Size(1, PrimitiveField);

         }

-        if (HasStringField) {

+        if (hasStringField) {

           size += pb::CodedOutputStream.ComputeStringSize(2, StringField);

         }

-        if (HasEnumField) {

+        if (hasEnumField) {

           size += pb::CodedOutputStream.ComputeEnumSize(3, (int) EnumField);

         }

-        if (HasMessageField) {

+        if (hasMessageField) {

           size += pb::CodedOutputStream.ComputeMessageSize(4, MessageField);

         }

-        if (HasStringPieceField) {

+        if (hasStringPieceField) {

           size += pb::CodedOutputStream.ComputeStringSize(5, StringPieceField);

         }

-        if (HasCordField) {

+        if (hasCordField) {

           size += pb::CodedOutputStream.ComputeStringSize(6, CordField);

         }

         {

@@ -12327,7 +12327,7 @@
             }

             case 34: {

               global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();

-              if (HasMessageField) {

+              if (result.hasMessageField) {

                 subBuilder.MergeFrom(MessageField);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -12388,7 +12388,7 @@
       

       

       public bool HasPrimitiveField {

-        get { return result.HasPrimitiveField; }

+        get { return result.hasPrimitiveField; }

       }

       public int PrimitiveField {

         get { return result.PrimitiveField; }

@@ -12406,7 +12406,7 @@
       }

       

       public bool HasStringField {

-        get { return result.HasStringField; }

+        get { return result.hasStringField; }

       }

       public string StringField {

         get { return result.StringField; }

@@ -12425,7 +12425,7 @@
       }

       

       public bool HasEnumField {

-       get { return result.HasEnumField; }

+       get { return result.hasEnumField; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {

         get { return result.EnumField; }

@@ -12443,7 +12443,7 @@
       }

       

       public bool HasMessageField {

-       get { return result.HasMessageField; }

+       get { return result.hasMessageField; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {

         get { return result.MessageField; }

@@ -12463,7 +12463,7 @@
       }

       public Builder MergeMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasMessageField &&

+        if (result.hasMessageField &&

             result.messageField_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {

             result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageField_).MergeFrom(value).BuildPartial();

         } else {

@@ -12479,7 +12479,7 @@
       }

       

       public bool HasStringPieceField {

-        get { return result.HasStringPieceField; }

+        get { return result.hasStringPieceField; }

       }

       public string StringPieceField {

         get { return result.StringPieceField; }

@@ -12498,7 +12498,7 @@
       }

       

       public bool HasCordField {

-        get { return result.HasCordField; }

+        get { return result.hasCordField; }

       }

       public string CordField {

         get { return result.CordField; }

@@ -12760,15 +12760,15 @@
     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

       pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);

-      if (HasMyInt) {

+      if (hasMyInt) {

         output.WriteInt64(1, "my_int", MyInt);

       }

       extensionWriter.WriteUntil(11, output);

-      if (HasMyString) {

+      if (hasMyString) {

         output.WriteString(11, "my_string", MyString);

       }

       extensionWriter.WriteUntil(101, output);

-      if (HasMyFloat) {

+      if (hasMyFloat) {

         output.WriteFloat(101, "my_float", MyFloat);

       }

       UnknownFields.WriteTo(output);

@@ -12781,13 +12781,13 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasMyString) {

+        if (hasMyString) {

           size += pb::CodedOutputStream.ComputeStringSize(11, MyString);

         }

-        if (HasMyInt) {

+        if (hasMyInt) {

           size += pb::CodedOutputStream.ComputeInt64Size(1, MyInt);

         }

-        if (HasMyFloat) {

+        if (hasMyFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(101, MyFloat);

         }

         size += ExtensionsSerializedSize;

@@ -12949,7 +12949,7 @@
       

       

       public bool HasMyString {

-        get { return result.HasMyString; }

+        get { return result.hasMyString; }

       }

       public string MyString {

         get { return result.MyString; }

@@ -12968,7 +12968,7 @@
       }

       

       public bool HasMyInt {

-        get { return result.HasMyInt; }

+        get { return result.hasMyInt; }

       }

       public long MyInt {

         get { return result.MyInt; }

@@ -12986,7 +12986,7 @@
       }

       

       public bool HasMyFloat {

-        get { return result.HasMyFloat; }

+        get { return result.hasMyFloat; }

       }

       public float MyFloat {

         get { return result.MyFloat; }

@@ -13233,61 +13233,61 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasEscapedBytes) {

+      if (hasEscapedBytes) {

         output.WriteBytes(1, "escaped_bytes", EscapedBytes);

       }

-      if (HasLargeUint32) {

+      if (hasLargeUint32) {

         output.WriteUInt32(2, "large_uint32", LargeUint32);

       }

-      if (HasLargeUint64) {

+      if (hasLargeUint64) {

         output.WriteUInt64(3, "large_uint64", LargeUint64);

       }

-      if (HasSmallInt32) {

+      if (hasSmallInt32) {

         output.WriteInt32(4, "small_int32", SmallInt32);

       }

-      if (HasSmallInt64) {

+      if (hasSmallInt64) {

         output.WriteInt64(5, "small_int64", SmallInt64);

       }

-      if (HasUtf8String) {

+      if (hasUtf8String) {

         output.WriteString(6, "utf8_string", Utf8String);

       }

-      if (HasZeroFloat) {

+      if (hasZeroFloat) {

         output.WriteFloat(7, "zero_float", ZeroFloat);

       }

-      if (HasOneFloat) {

+      if (hasOneFloat) {

         output.WriteFloat(8, "one_float", OneFloat);

       }

-      if (HasSmallFloat) {

+      if (hasSmallFloat) {

         output.WriteFloat(9, "small_float", SmallFloat);

       }

-      if (HasNegativeOneFloat) {

+      if (hasNegativeOneFloat) {

         output.WriteFloat(10, "negative_one_float", NegativeOneFloat);

       }

-      if (HasNegativeFloat) {

+      if (hasNegativeFloat) {

         output.WriteFloat(11, "negative_float", NegativeFloat);

       }

-      if (HasLargeFloat) {

+      if (hasLargeFloat) {

         output.WriteFloat(12, "large_float", LargeFloat);

       }

-      if (HasSmallNegativeFloat) {

+      if (hasSmallNegativeFloat) {

         output.WriteFloat(13, "small_negative_float", SmallNegativeFloat);

       }

-      if (HasInfDouble) {

+      if (hasInfDouble) {

         output.WriteDouble(14, "inf_double", InfDouble);

       }

-      if (HasNegInfDouble) {

+      if (hasNegInfDouble) {

         output.WriteDouble(15, "neg_inf_double", NegInfDouble);

       }

-      if (HasNanDouble) {

+      if (hasNanDouble) {

         output.WriteDouble(16, "nan_double", NanDouble);

       }

-      if (HasInfFloat) {

+      if (hasInfFloat) {

         output.WriteFloat(17, "inf_float", InfFloat);

       }

-      if (HasNegInfFloat) {

+      if (hasNegInfFloat) {

         output.WriteFloat(18, "neg_inf_float", NegInfFloat);

       }

-      if (HasNanFloat) {

+      if (hasNanFloat) {

         output.WriteFloat(19, "nan_float", NanFloat);

       }

       UnknownFields.WriteTo(output);

@@ -13300,61 +13300,61 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasEscapedBytes) {

+        if (hasEscapedBytes) {

           size += pb::CodedOutputStream.ComputeBytesSize(1, EscapedBytes);

         }

-        if (HasLargeUint32) {

+        if (hasLargeUint32) {

           size += pb::CodedOutputStream.ComputeUInt32Size(2, LargeUint32);

         }

-        if (HasLargeUint64) {

+        if (hasLargeUint64) {

           size += pb::CodedOutputStream.ComputeUInt64Size(3, LargeUint64);

         }

-        if (HasSmallInt32) {

+        if (hasSmallInt32) {

           size += pb::CodedOutputStream.ComputeInt32Size(4, SmallInt32);

         }

-        if (HasSmallInt64) {

+        if (hasSmallInt64) {

           size += pb::CodedOutputStream.ComputeInt64Size(5, SmallInt64);

         }

-        if (HasUtf8String) {

+        if (hasUtf8String) {

           size += pb::CodedOutputStream.ComputeStringSize(6, Utf8String);

         }

-        if (HasZeroFloat) {

+        if (hasZeroFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(7, ZeroFloat);

         }

-        if (HasOneFloat) {

+        if (hasOneFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(8, OneFloat);

         }

-        if (HasSmallFloat) {

+        if (hasSmallFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(9, SmallFloat);

         }

-        if (HasNegativeOneFloat) {

+        if (hasNegativeOneFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(10, NegativeOneFloat);

         }

-        if (HasNegativeFloat) {

+        if (hasNegativeFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(11, NegativeFloat);

         }

-        if (HasLargeFloat) {

+        if (hasLargeFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(12, LargeFloat);

         }

-        if (HasSmallNegativeFloat) {

+        if (hasSmallNegativeFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(13, SmallNegativeFloat);

         }

-        if (HasInfDouble) {

+        if (hasInfDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(14, InfDouble);

         }

-        if (HasNegInfDouble) {

+        if (hasNegInfDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(15, NegInfDouble);

         }

-        if (HasNanDouble) {

+        if (hasNanDouble) {

           size += pb::CodedOutputStream.ComputeDoubleSize(16, NanDouble);

         }

-        if (HasInfFloat) {

+        if (hasInfFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(17, InfFloat);

         }

-        if (HasNegInfFloat) {

+        if (hasNegInfFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(18, NegInfFloat);

         }

-        if (HasNanFloat) {

+        if (hasNanFloat) {

           size += pb::CodedOutputStream.ComputeFloatSize(19, NanFloat);

         }

         size += UnknownFields.SerializedSize;

@@ -13626,7 +13626,7 @@
       

       

       public bool HasEscapedBytes {

-        get { return result.HasEscapedBytes; }

+        get { return result.hasEscapedBytes; }

       }

       public pb::ByteString EscapedBytes {

         get { return result.EscapedBytes; }

@@ -13645,7 +13645,7 @@
       }

       

       public bool HasLargeUint32 {

-        get { return result.HasLargeUint32; }

+        get { return result.hasLargeUint32; }

       }

       [global::System.CLSCompliant(false)]

       public uint LargeUint32 {

@@ -13665,7 +13665,7 @@
       }

       

       public bool HasLargeUint64 {

-        get { return result.HasLargeUint64; }

+        get { return result.hasLargeUint64; }

       }

       [global::System.CLSCompliant(false)]

       public ulong LargeUint64 {

@@ -13685,7 +13685,7 @@
       }

       

       public bool HasSmallInt32 {

-        get { return result.HasSmallInt32; }

+        get { return result.hasSmallInt32; }

       }

       public int SmallInt32 {

         get { return result.SmallInt32; }

@@ -13703,7 +13703,7 @@
       }

       

       public bool HasSmallInt64 {

-        get { return result.HasSmallInt64; }

+        get { return result.hasSmallInt64; }

       }

       public long SmallInt64 {

         get { return result.SmallInt64; }

@@ -13721,7 +13721,7 @@
       }

       

       public bool HasUtf8String {

-        get { return result.HasUtf8String; }

+        get { return result.hasUtf8String; }

       }

       public string Utf8String {

         get { return result.Utf8String; }

@@ -13740,7 +13740,7 @@
       }

       

       public bool HasZeroFloat {

-        get { return result.HasZeroFloat; }

+        get { return result.hasZeroFloat; }

       }

       public float ZeroFloat {

         get { return result.ZeroFloat; }

@@ -13758,7 +13758,7 @@
       }

       

       public bool HasOneFloat {

-        get { return result.HasOneFloat; }

+        get { return result.hasOneFloat; }

       }

       public float OneFloat {

         get { return result.OneFloat; }

@@ -13776,7 +13776,7 @@
       }

       

       public bool HasSmallFloat {

-        get { return result.HasSmallFloat; }

+        get { return result.hasSmallFloat; }

       }

       public float SmallFloat {

         get { return result.SmallFloat; }

@@ -13794,7 +13794,7 @@
       }

       

       public bool HasNegativeOneFloat {

-        get { return result.HasNegativeOneFloat; }

+        get { return result.hasNegativeOneFloat; }

       }

       public float NegativeOneFloat {

         get { return result.NegativeOneFloat; }

@@ -13812,7 +13812,7 @@
       }

       

       public bool HasNegativeFloat {

-        get { return result.HasNegativeFloat; }

+        get { return result.hasNegativeFloat; }

       }

       public float NegativeFloat {

         get { return result.NegativeFloat; }

@@ -13830,7 +13830,7 @@
       }

       

       public bool HasLargeFloat {

-        get { return result.HasLargeFloat; }

+        get { return result.hasLargeFloat; }

       }

       public float LargeFloat {

         get { return result.LargeFloat; }

@@ -13848,7 +13848,7 @@
       }

       

       public bool HasSmallNegativeFloat {

-        get { return result.HasSmallNegativeFloat; }

+        get { return result.hasSmallNegativeFloat; }

       }

       public float SmallNegativeFloat {

         get { return result.SmallNegativeFloat; }

@@ -13866,7 +13866,7 @@
       }

       

       public bool HasInfDouble {

-        get { return result.HasInfDouble; }

+        get { return result.hasInfDouble; }

       }

       public double InfDouble {

         get { return result.InfDouble; }

@@ -13884,7 +13884,7 @@
       }

       

       public bool HasNegInfDouble {

-        get { return result.HasNegInfDouble; }

+        get { return result.hasNegInfDouble; }

       }

       public double NegInfDouble {

         get { return result.NegInfDouble; }

@@ -13902,7 +13902,7 @@
       }

       

       public bool HasNanDouble {

-        get { return result.HasNanDouble; }

+        get { return result.hasNanDouble; }

       }

       public double NanDouble {

         get { return result.NanDouble; }

@@ -13920,7 +13920,7 @@
       }

       

       public bool HasInfFloat {

-        get { return result.HasInfFloat; }

+        get { return result.hasInfFloat; }

       }

       public float InfFloat {

         get { return result.InfFloat; }

@@ -13938,7 +13938,7 @@
       }

       

       public bool HasNegInfFloat {

-        get { return result.HasNegInfFloat; }

+        get { return result.hasNegInfFloat; }

       }

       public float NegInfFloat {

         get { return result.NegInfFloat; }

@@ -13956,7 +13956,7 @@
       }

       

       public bool HasNanFloat {

-        get { return result.HasNanFloat; }

+        get { return result.hasNanFloat; }

       }

       public float NanFloat {

         get { return result.NanFloat; }

@@ -14021,7 +14021,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasData) {

+      if (hasData) {

         output.WriteString(1, "data", Data);

       }

       UnknownFields.WriteTo(output);

@@ -14034,7 +14034,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasData) {

+        if (hasData) {

           size += pb::CodedOutputStream.ComputeStringSize(1, Data);

         }

         size += UnknownFields.SerializedSize;

@@ -14180,7 +14180,7 @@
       

       

       public bool HasData {

-        get { return result.HasData; }

+        get { return result.hasData; }

       }

       public string Data {

         get { return result.Data; }

@@ -14246,7 +14246,7 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasData) {

+      if (hasData) {

         output.WriteBytes(1, "data", Data);

       }

       UnknownFields.WriteTo(output);

@@ -14259,7 +14259,7 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasData) {

+        if (hasData) {

           size += pb::CodedOutputStream.ComputeBytesSize(1, Data);

         }

         size += UnknownFields.SerializedSize;

@@ -14405,7 +14405,7 @@
       

       

       public bool HasData {

-        get { return result.HasData; }

+        get { return result.hasData; }

       }

       public pb::ByteString Data {

         get { return result.Data; }

@@ -16980,7 +16980,7 @@
         

         public override void WriteTo(pb::ICodedOutputStream output) {

           int size = SerializedSize;

-          if (HasDynamicField) {

+          if (hasDynamicField) {

             output.WriteInt32(2100, "dynamic_field", DynamicField);

           }

           UnknownFields.WriteTo(output);

@@ -16993,7 +16993,7 @@
             if (size != -1) return size;

             

             size = 0;

-            if (HasDynamicField) {

+            if (hasDynamicField) {

               size += pb::CodedOutputStream.ComputeInt32Size(2100, DynamicField);

             }

             size += UnknownFields.SerializedSize;

@@ -17139,7 +17139,7 @@
           

           

           public bool HasDynamicField {

-            get { return result.HasDynamicField; }

+            get { return result.hasDynamicField; }

           }

           public int DynamicField {

             get { return result.DynamicField; }

@@ -17248,19 +17248,19 @@
     

     public override void WriteTo(pb::ICodedOutputStream output) {

       int size = SerializedSize;

-      if (HasScalarExtension) {

+      if (hasScalarExtension) {

         output.WriteFixed32(2000, "scalar_extension", ScalarExtension);

       }

-      if (HasEnumExtension) {

+      if (hasEnumExtension) {

         output.WriteEnum(2001, "enum_extension", (int) EnumExtension, EnumExtension.ToString());

       }

-      if (HasDynamicEnumExtension) {

+      if (hasDynamicEnumExtension) {

         output.WriteEnum(2002, "dynamic_enum_extension", (int) DynamicEnumExtension, DynamicEnumExtension.ToString());

       }

-      if (HasMessageExtension) {

+      if (hasMessageExtension) {

         output.WriteMessage(2003, "message_extension", MessageExtension);

       }

-      if (HasDynamicMessageExtension) {

+      if (hasDynamicMessageExtension) {

         output.WriteMessage(2004, "dynamic_message_extension", DynamicMessageExtension);

       }

       if (repeatedExtension_.Count > 0) {

@@ -17279,19 +17279,19 @@
         if (size != -1) return size;

         

         size = 0;

-        if (HasScalarExtension) {

+        if (hasScalarExtension) {

           size += pb::CodedOutputStream.ComputeFixed32Size(2000, ScalarExtension);

         }

-        if (HasEnumExtension) {

+        if (hasEnumExtension) {

           size += pb::CodedOutputStream.ComputeEnumSize(2001, (int) EnumExtension);

         }

-        if (HasDynamicEnumExtension) {

+        if (hasDynamicEnumExtension) {

           size += pb::CodedOutputStream.ComputeEnumSize(2002, (int) DynamicEnumExtension);

         }

-        if (HasMessageExtension) {

+        if (hasMessageExtension) {

           size += pb::CodedOutputStream.ComputeMessageSize(2003, MessageExtension);

         }

-        if (HasDynamicMessageExtension) {

+        if (hasDynamicMessageExtension) {

           size += pb::CodedOutputStream.ComputeMessageSize(2004, DynamicMessageExtension);

         }

         {

@@ -17491,7 +17491,7 @@
             }

             case 16026: {

               global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();

-              if (HasMessageExtension) {

+              if (result.hasMessageExtension) {

                 subBuilder.MergeFrom(MessageExtension);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -17500,7 +17500,7 @@
             }

             case 16034: {

               global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder();

-              if (HasDynamicMessageExtension) {

+              if (result.hasDynamicMessageExtension) {

                 subBuilder.MergeFrom(DynamicMessageExtension);

               }

               input.ReadMessage(subBuilder, extensionRegistry);

@@ -17527,7 +17527,7 @@
       

       

       public bool HasScalarExtension {

-        get { return result.HasScalarExtension; }

+        get { return result.hasScalarExtension; }

       }

       [global::System.CLSCompliant(false)]

       public uint ScalarExtension {

@@ -17547,7 +17547,7 @@
       }

       

       public bool HasEnumExtension {

-       get { return result.HasEnumExtension; }

+       get { return result.hasEnumExtension; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {

         get { return result.EnumExtension; }

@@ -17565,7 +17565,7 @@
       }

       

       public bool HasDynamicEnumExtension {

-       get { return result.HasDynamicEnumExtension; }

+       get { return result.hasDynamicEnumExtension; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {

         get { return result.DynamicEnumExtension; }

@@ -17583,7 +17583,7 @@
       }

       

       public bool HasMessageExtension {

-       get { return result.HasMessageExtension; }

+       get { return result.hasMessageExtension; }

       }

       public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {

         get { return result.MessageExtension; }

@@ -17603,7 +17603,7 @@
       }

       public Builder MergeMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasMessageExtension &&

+        if (result.hasMessageExtension &&

             result.messageExtension_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {

             result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageExtension_).MergeFrom(value).BuildPartial();

         } else {

@@ -17619,7 +17619,7 @@
       }

       

       public bool HasDynamicMessageExtension {

-       get { return result.HasDynamicMessageExtension; }

+       get { return result.hasDynamicMessageExtension; }

       }

       public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {

         get { return result.DynamicMessageExtension; }

@@ -17639,7 +17639,7 @@
       }

       public Builder MergeDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {

         pb::ThrowHelper.ThrowIfNull(value, "value");

-        if (result.HasDynamicMessageExtension &&

+        if (result.hasDynamicMessageExtension &&

             result.dynamicMessageExtension_ != global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) {

             result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder(result.dynamicMessageExtension_).MergeFrom(value).BuildPartial();

         } else {