Sfoglia il codice sorgente

Added field constant generation

Jon Skeet 16 anni fa
parent
commit
7ee85c4e9f

+ 7 - 0
src/AddressBook/AddressBookProtos.cs

@@ -100,6 +100,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
           get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable; }
         }
         
+        public const int NumberFieldNumber = 1;
         private bool hasNumber;
         private string number_ = "";
         public bool HasNumber {
@@ -109,6 +110,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
           get { return number_; }
         }
         
+        public const int TypeFieldNumber = 2;
         private bool hasType;
         private global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType type_ = global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType.HOME;
         public bool HasType {
@@ -332,6 +334,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
     }
     #endregion
     
+    public const int NameFieldNumber = 1;
     private bool hasName;
     private string name_ = "";
     public bool HasName {
@@ -341,6 +344,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
       get { return name_; }
     }
     
+    public const int IdFieldNumber = 2;
     private bool hasId;
     private int id_ = 0;
     public bool HasId {
@@ -350,6 +354,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
       get { return id_; }
     }
     
+    public const int EmailFieldNumber = 3;
     private bool hasEmail;
     private string email_ = "";
     public bool HasEmail {
@@ -359,6 +364,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
       get { return email_; }
     }
     
+    public const int PhoneFieldNumber = 4;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> phone_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber>();
     public scg::IList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> PhoneList {
       get { return phone_; }
@@ -685,6 +691,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
       get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_AddressBook__FieldAccessorTable; }
     }
     
+    public const int PersonFieldNumber = 1;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person> person_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person>();
     public scg::IList<global::Google.ProtocolBuffers.Examples.AddressBook.Person> PersonList {
       get { return person_; }

+ 1 - 0
src/ProtoGen/ExtensionGenerator.cs

@@ -24,6 +24,7 @@ namespace Google.ProtocolBuffers.ProtoGen {
           break;
       }
 
+      writer.WriteLine ("public const int {0} = {1};", GetFieldConstantName(Descriptor), Descriptor.FieldNumber);
       if (Descriptor.IsRepeated) {
         writer.WriteLine("{0} static readonly", ClassAccessLevel);
         writer.WriteLine("    pb::GeneratedExtensionBase<scg::IList<{0}>> {1} =", type, name);

+ 2 - 1
src/ProtoGen/MessageGenerator.cs

@@ -107,6 +107,7 @@ namespace Google.ProtocolBuffers.ProtoGen {
 
       foreach(FieldDescriptor fieldDescriptor in Descriptor.Fields) {
         // Rats: we lose the debug comment here :(
+        writer.WriteLine("public const int {0} = {1};", GetFieldConstantName(fieldDescriptor), fieldDescriptor.FieldNumber);
         SourceGenerators.CreateFieldGenerator(fieldDescriptor).GenerateMembers(writer);
         writer.WriteLine();
       }
@@ -186,7 +187,7 @@ namespace Google.ProtocolBuffers.ProtoGen {
       writer.WriteLine();
     }
 
-    private void GenerateSerializeOneField(TextGenerator writer, FieldDescriptor fieldDescriptor) {
+    private static void GenerateSerializeOneField(TextGenerator writer, FieldDescriptor fieldDescriptor) {
       SourceGenerators.CreateFieldGenerator(fieldDescriptor).GenerateSerializationCode(writer);
     }
 

+ 4 - 0
src/ProtoGen/SourceGeneratorBase.cs

@@ -30,6 +30,10 @@ namespace Google.ProtocolBuffers.ProtoGen {
       }
     }
 
+    internal static string GetFieldConstantName(FieldDescriptor field) {
+      return NameHelpers.UnderscoresToPascalCase(GetFieldName(field)) + "FieldNumber";
+    }
+
     private static string ToCSharpName(string name, FileDescriptor file) {
       string result = file.CSharpOptions.Namespace;
       if (file.CSharpOptions.NestClasses) {

+ 27 - 0
src/ProtocolBuffers.Test/GeneratedMessageTest.cs

@@ -397,5 +397,32 @@ namespace Google.ProtocolBuffers {
       TestAllTypes message = builder.Build();
       TestUtil.AssertAllFieldsSet(message.ToBuilder().Build());
     }
+
+    [Test]
+    public void FieldConstantValues() {
+      Assert.AreEqual(TestAllTypes.Types.NestedMessage.BbFieldNumber, 1);
+      Assert.AreEqual(TestAllTypes.OptionalInt32FieldNumber, 1);
+      Assert.AreEqual(TestAllTypes.OptionalGroupFieldNumber, 16);
+      Assert.AreEqual(TestAllTypes.OptionalNestedMessageFieldNumber, 18);
+      Assert.AreEqual(TestAllTypes.OptionalNestedEnumFieldNumber, 21);
+      Assert.AreEqual(TestAllTypes.RepeatedInt32FieldNumber, 31);
+      Assert.AreEqual(TestAllTypes.RepeatedGroupFieldNumber, 46);
+      Assert.AreEqual(TestAllTypes.RepeatedNestedMessageFieldNumber, 48);
+      Assert.AreEqual(TestAllTypes.RepeatedNestedEnumFieldNumber, 51);
+    }
+
+    [Test]
+    public void ExtensionConstantValues() {
+      Assert.AreEqual(TestRequired.SingleFieldNumber, 1000);
+      Assert.AreEqual(TestRequired.MultiFieldNumber, 1001);
+      Assert.AreEqual(UnitTestProtoFile.OptionalInt32ExtensionFieldNumber, 1);
+      Assert.AreEqual(UnitTestProtoFile.OptionalGroupExtensionFieldNumber, 16);
+      Assert.AreEqual(UnitTestProtoFile.OptionalNestedMessageExtensionFieldNumber, 18);
+      Assert.AreEqual(UnitTestProtoFile.OptionalNestedEnumExtensionFieldNumber, 21);
+      Assert.AreEqual(UnitTestProtoFile.RepeatedInt32ExtensionFieldNumber, 31);
+      Assert.AreEqual(UnitTestProtoFile.RepeatedGroupExtensionFieldNumber, 46);
+      Assert.AreEqual(UnitTestProtoFile.RepeatedNestedMessageExtensionFieldNumber, 48);
+      Assert.AreEqual(UnitTestProtoFile.RepeatedNestedEnumExtensionFieldNumber, 51);
+    }
   }
 }

+ 43 - 0
src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs

@@ -115,68 +115,100 @@ namespace Google.ProtocolBuffers.TestProtos {
     #endregion
     
     #region Extensions
+    public const int FileOpt1FieldNumber = 7736974;
     public static readonly pb::GeneratedExtensionBase<ulong> FileOpt1 =
         pb::GeneratedSingleExtension<ulong>.CreateInstance(Descriptor.Extensions[0]);
+    public const int MessageOpt1FieldNumber = 7739036;
     public static readonly pb::GeneratedExtensionBase<int> MessageOpt1 =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[1]);
+    public const int FieldOpt1FieldNumber = 7740936;
     public static readonly pb::GeneratedExtensionBase<ulong> FieldOpt1 =
         pb::GeneratedSingleExtension<ulong>.CreateInstance(Descriptor.Extensions[2]);
+    public const int FieldOpt2FieldNumber = 7753913;
     public static readonly pb::GeneratedExtensionBase<int> FieldOpt2 =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[3]);
+    public const int EnumOpt1FieldNumber = 7753576;
     public static readonly pb::GeneratedExtensionBase<int> EnumOpt1 =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[4]);
+    public const int ServiceOpt1FieldNumber = 7887650;
     public static readonly pb::GeneratedExtensionBase<long> ServiceOpt1 =
         pb::GeneratedSingleExtension<long>.CreateInstance(Descriptor.Extensions[5]);
+    public const int MethodOpt1FieldNumber = 7890860;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.MethodOpt1> MethodOpt1 =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.MethodOpt1>.CreateInstance(Descriptor.Extensions[6]);
+    public const int BoolOptFieldNumber = 7706090;
     public static readonly pb::GeneratedExtensionBase<bool> BoolOpt =
         pb::GeneratedSingleExtension<bool>.CreateInstance(Descriptor.Extensions[7]);
+    public const int Int32OptFieldNumber = 7705709;
     public static readonly pb::GeneratedExtensionBase<int> Int32Opt =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[8]);
+    public const int Int64OptFieldNumber = 7705542;
     public static readonly pb::GeneratedExtensionBase<long> Int64Opt =
         pb::GeneratedSingleExtension<long>.CreateInstance(Descriptor.Extensions[9]);
+    public const int Uint32OptFieldNumber = 7704880;
     public static readonly pb::GeneratedExtensionBase<uint> Uint32Opt =
         pb::GeneratedSingleExtension<uint>.CreateInstance(Descriptor.Extensions[10]);
+    public const int Uint64OptFieldNumber = 7702367;
     public static readonly pb::GeneratedExtensionBase<ulong> Uint64Opt =
         pb::GeneratedSingleExtension<ulong>.CreateInstance(Descriptor.Extensions[11]);
+    public const int Sint32OptFieldNumber = 7701568;
     public static readonly pb::GeneratedExtensionBase<int> Sint32Opt =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[12]);
+    public const int Sint64OptFieldNumber = 7700863;
     public static readonly pb::GeneratedExtensionBase<long> Sint64Opt =
         pb::GeneratedSingleExtension<long>.CreateInstance(Descriptor.Extensions[13]);
+    public const int Fixed32OptFieldNumber = 7700307;
     public static readonly pb::GeneratedExtensionBase<uint> Fixed32Opt =
         pb::GeneratedSingleExtension<uint>.CreateInstance(Descriptor.Extensions[14]);
+    public const int Fixed64OptFieldNumber = 7700194;
     public static readonly pb::GeneratedExtensionBase<ulong> Fixed64Opt =
         pb::GeneratedSingleExtension<ulong>.CreateInstance(Descriptor.Extensions[15]);
+    public const int Sfixed32OptFieldNumber = 7698645;
     public static readonly pb::GeneratedExtensionBase<int> Sfixed32Opt =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[16]);
+    public const int Sfixed64OptFieldNumber = 7685475;
     public static readonly pb::GeneratedExtensionBase<long> Sfixed64Opt =
         pb::GeneratedSingleExtension<long>.CreateInstance(Descriptor.Extensions[17]);
+    public const int FloatOptFieldNumber = 7675390;
     public static readonly pb::GeneratedExtensionBase<float> FloatOpt =
         pb::GeneratedSingleExtension<float>.CreateInstance(Descriptor.Extensions[18]);
+    public const int DoubleOptFieldNumber = 7673293;
     public static readonly pb::GeneratedExtensionBase<double> DoubleOpt =
         pb::GeneratedSingleExtension<double>.CreateInstance(Descriptor.Extensions[19]);
+    public const int StringOptFieldNumber = 7673285;
     public static readonly pb::GeneratedExtensionBase<string> StringOpt =
         pb::GeneratedSingleExtension<string>.CreateInstance(Descriptor.Extensions[20]);
+    public const int BytesOptFieldNumber = 7673238;
     public static readonly pb::GeneratedExtensionBase<pb::ByteString> BytesOpt =
         pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(Descriptor.Extensions[21]);
+    public const int EnumOptFieldNumber = 7673233;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Types.TestEnumType> EnumOpt =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Types.TestEnumType>.CreateInstance(Descriptor.Extensions[22]);
+    public const int MessageTypeOptFieldNumber = 7665967;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType> MessageTypeOpt =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType>.CreateInstance(Descriptor.Extensions[23]);
+    public const int QuuxFieldNumber = 7663707;
     public static readonly pb::GeneratedExtensionBase<int> Quux =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[24]);
+    public const int CorgeFieldNumber = 7663442;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3> Corge =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3>.CreateInstance(Descriptor.Extensions[25]);
+    public const int GraultFieldNumber = 7650927;
     public static readonly pb::GeneratedExtensionBase<int> Grault =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[26]);
+    public const int GarplyFieldNumber = 7649992;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1> Garply =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1>.CreateInstance(Descriptor.Extensions[27]);
+    public const int ComplexOpt1FieldNumber = 7646756;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1> ComplexOpt1 =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1>.CreateInstance(Descriptor.Extensions[28]);
+    public const int ComplexOpt2FieldNumber = 7636949;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2> ComplexOpt2 =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2>.CreateInstance(Descriptor.Extensions[29]);
+    public const int ComplexOpt3FieldNumber = 7636463;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3> ComplexOpt3 =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3>.CreateInstance(Descriptor.Extensions[30]);
+    public const int ComplexOpt6FieldNumber = 7595468;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOpt6> ComplexOpt6 =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOpt6>.CreateInstance(Descriptor.Extensions[31]);
     #endregion
@@ -310,6 +342,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     }
     #endregion
     
+    public const int Field1FieldNumber = 1;
     private bool hasField1;
     private string field1_ = "";
     public bool HasField1 {
@@ -1258,6 +1291,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.internal__static_protobuf_unittest_ComplexOptionType1__FieldAccessorTable; }
     }
     
+    public const int FooFieldNumber = 1;
     private bool hasFoo;
     private int foo_ = 0;
     public bool HasFoo {
@@ -1400,8 +1434,10 @@ namespace Google.ProtocolBuffers.TestProtos {
           get { return global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__FieldAccessorTable; }
         }
         
+        public const int ComplexOpt4FieldNumber = 7633546;
         public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> ComplexOpt4 =
             pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4>.CreateInstance(Descriptor.Extensions[0]);
+        public const int WaldoFieldNumber = 1;
         private bool hasWaldo;
         private int waldo_ = 0;
         public bool HasWaldo {
@@ -1501,6 +1537,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     }
     #endregion
     
+    public const int BarFieldNumber = 1;
     private bool hasBar;
     private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 bar_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance;
     public bool HasBar {
@@ -1510,6 +1547,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return bar_; }
     }
     
+    public const int BazFieldNumber = 2;
     private bool hasBaz;
     private int baz_ = 0;
     public bool HasBaz {
@@ -1519,6 +1557,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return baz_; }
     }
     
+    public const int FredFieldNumber = 3;
     private bool hasFred;
     private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 fred_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance;
     public bool HasFred {
@@ -1733,6 +1772,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           get { return global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__FieldAccessorTable; }
         }
         
+        public const int PlughFieldNumber = 3;
         private bool hasPlugh;
         private int plugh_ = 0;
         public bool HasPlugh {
@@ -1832,6 +1872,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     }
     #endregion
     
+    public const int QuxFieldNumber = 1;
     private bool hasQux;
     private int qux_ = 0;
     public bool HasQux {
@@ -1841,6 +1882,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return qux_; }
     }
     
+    public const int ComplexOptionType5FieldNumber = 2;
     private bool hasComplexOptionType5;
     private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 complexOptionType5_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance;
     public bool HasComplexOptionType5 {
@@ -1995,6 +2037,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.internal__static_protobuf_unittest_ComplexOpt6__FieldAccessorTable; }
     }
     
+    public const int XyzzyFieldNumber = 7593951;
     private bool hasXyzzy;
     private int xyzzy_ = 0;
     public bool HasXyzzy {

+ 2 - 0
src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs

@@ -60,6 +60,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestEmbedOptimizeForProtoFile.internal__static_protobuf_unittest_TestEmbedOptimizedForSize__FieldAccessorTable; }
     }
     
+    public const int OptionalMessageFieldNumber = 1;
     private bool hasOptionalMessage;
     private global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.DefaultInstance;
     public bool HasOptionalMessage {
@@ -69,6 +70,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return optionalMessage_; }
     }
     
+    public const int RepeatedMessageFieldNumber = 2;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize> repeatedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize>();
     public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize> RepeatedMessageList {
       get { return repeatedMessage_; }

+ 1 - 0
src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs

@@ -66,6 +66,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable; }
     }
     
+    public const int DFieldNumber = 1;
     private bool hasD;
     private int d_ = 0;
     public bool HasD {

+ 8 - 0
src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs

@@ -257,6 +257,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable; }
     }
     
+    public const int MessageSetFieldNumber = 1;
     private bool hasMessageSet;
     private global::Google.ProtocolBuffers.TestProtos.TestMessageSet messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance;
     public bool HasMessageSet {
@@ -481,8 +482,10 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable; }
     }
     
+    public const int MessageSetExtensionFieldNumber = 1545008;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1> MessageSetExtension =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1>.CreateInstance(Descriptor.Extensions[0]);
+    public const int IFieldNumber = 15;
     private bool hasI;
     private int i_ = 0;
     public bool HasI {
@@ -684,8 +687,10 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable; }
     }
     
+    public const int MessageSetExtensionFieldNumber = 1547769;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2> MessageSetExtension =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2>.CreateInstance(Descriptor.Extensions[0]);
+    public const int StrFieldNumber = 25;
     private bool hasStr;
     private string str_ = "";
     public bool HasStr {
@@ -912,6 +917,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           get { return global::Google.ProtocolBuffers.TestProtos.UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable; }
         }
         
+        public const int TypeIdFieldNumber = 2;
         private bool hasTypeId;
         private int typeId_ = 0;
         public bool HasTypeId {
@@ -921,6 +927,7 @@ namespace Google.ProtocolBuffers.TestProtos {
           get { return typeId_; }
         }
         
+        public const int MessageFieldNumber = 3;
         private bool hasMessage;
         private pb::ByteString message_ = pb::ByteString.Empty;
         public bool HasMessage {
@@ -1137,6 +1144,7 @@ namespace Google.ProtocolBuffers.TestProtos {
     }
     #endregion
     
+    public const int ItemFieldNumber = 1;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> item_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item>();
     public scg::IList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> ItemList {
       get { return item_; }

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

@@ -75,10 +75,13 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestOptimizeForProtoFile.internal__static_protobuf_unittest_TestOptimizedForSize__FieldAccessorTable; }
     }
     
+    public const int TestExtensionFieldNumber = 1234;
     public static readonly pb::GeneratedExtensionBase<int> TestExtension =
         pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[0]);
+    public const int TestExtension2FieldNumber = 1235;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize> TestExtension2 =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize>.CreateInstance(Descriptor.Extensions[1]);
+    public const int IFieldNumber = 1;
     private bool hasI;
     private int i_ = 0;
     public bool HasI {
@@ -88,6 +91,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return i_; }
     }
     
+    public const int MsgFieldNumber = 19;
     private bool hasMsg;
     private global::Google.ProtocolBuffers.TestProtos.ForeignMessage msg_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
     public bool HasMsg {
@@ -242,6 +246,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestOptimizeForProtoFile.internal__static_protobuf_unittest_TestRequiredOptimizedForSize__FieldAccessorTable; }
     }
     
+    public const int XFieldNumber = 1;
     private bool hasX;
     private int x_ = 0;
     public bool HasX {
@@ -360,6 +365,7 @@ namespace Google.ProtocolBuffers.TestProtos {
       get { return global::Google.ProtocolBuffers.TestProtos.UnitTestOptimizeForProtoFile.internal__static_protobuf_unittest_TestOptionalOptimizedForSize__FieldAccessorTable; }
     }
     
+    public const int OFieldNumber = 1;
     private bool hasO;
     private global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize o_ = global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.DefaultInstance;
     public bool HasO {

File diff suppressed because it is too large
+ 174 - 0
src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs


+ 8 - 0
src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs

@@ -31,8 +31,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     #endregion
     
     #region Extensions
+    public const int CsharpFileOptionsFieldNumber = 1000;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.DescriptorProtos.CSharpFileOptions> CSharpFileOptions =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.DescriptorProtos.CSharpFileOptions>.CreateInstance(Descriptor.Extensions[0]);
+    public const int CsharpFieldOptionsFieldNumber = 1000;
     public static readonly pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.DescriptorProtos.CSharpFieldOptions> CSharpFieldOptions =
         pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.DescriptorProtos.CSharpFieldOptions>.CreateInstance(Descriptor.Extensions[1]);
     #endregion
@@ -73,6 +75,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.internal__static_google_protobuf_CSharpFileOptions__FieldAccessorTable; }
     }
     
+    public const int NamespaceFieldNumber = 1;
     private bool hasNamespace;
     private string namespace_ = "";
     public bool HasNamespace {
@@ -82,6 +85,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return namespace_; }
     }
     
+    public const int UmbrellaClassnameFieldNumber = 2;
     private bool hasUmbrellaClassname;
     private string umbrellaClassname_ = "";
     public bool HasUmbrellaClassname {
@@ -91,6 +95,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return umbrellaClassname_; }
     }
     
+    public const int PublicClassesFieldNumber = 3;
     private bool hasPublicClasses;
     private bool publicClasses_ = false;
     public bool HasPublicClasses {
@@ -100,6 +105,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return publicClasses_; }
     }
     
+    public const int MultipleFilesFieldNumber = 4;
     private bool hasMultipleFiles;
     private bool multipleFiles_ = false;
     public bool HasMultipleFiles {
@@ -109,6 +115,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return multipleFiles_; }
     }
     
+    public const int NestClassesFieldNumber = 5;
     private bool hasNestClasses;
     private bool nestClasses_ = false;
     public bool HasNestClasses {
@@ -301,6 +308,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.internal__static_google_protobuf_CSharpFieldOptions__FieldAccessorTable; }
     }
     
+    public const int PropertyNameFieldNumber = 1;
     private bool hasPropertyName;
     private string propertyName_ = "";
     public bool HasPropertyName {

+ 62 - 0
src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs

@@ -211,6 +211,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorSet__FieldAccessorTable; }
     }
     
+    public const int FileFieldNumber = 1;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto> file_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto> FileList {
       get { return file_; }
@@ -440,6 +441,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorProto__FieldAccessorTable; }
     }
     
+    public const int NameFieldNumber = 1;
     private bool hasName;
     private string name_ = "";
     public bool HasName {
@@ -449,6 +451,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return name_; }
     }
     
+    public const int PackageFieldNumber = 2;
     private bool hasPackage;
     private string package_ = "";
     public bool HasPackage {
@@ -458,6 +461,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return package_; }
     }
     
+    public const int DependencyFieldNumber = 3;
     private pbc::PopsicleList<string> dependency_ = new pbc::PopsicleList<string>();
     public scg::IList<string> DependencyList {
       get { return pbc::Lists.AsReadOnly(dependency_); }
@@ -469,6 +473,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return dependency_[index];
     }
     
+    public const int MessageTypeFieldNumber = 4;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> messageType_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> MessageTypeList {
       get { return messageType_; }
@@ -480,6 +485,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return messageType_[index];
     }
     
+    public const int EnumTypeFieldNumber = 5;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> enumType_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> EnumTypeList {
       get { return enumType_; }
@@ -491,6 +497,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return enumType_[index];
     }
     
+    public const int ServiceFieldNumber = 6;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto> service_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto> ServiceList {
       get { return service_; }
@@ -502,6 +509,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return service_[index];
     }
     
+    public const int ExtensionFieldNumber = 7;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> extension_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> ExtensionList {
       get { return extension_; }
@@ -513,6 +521,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return extension_[index];
     }
     
+    public const int OptionsFieldNumber = 8;
     private bool hasOptions;
     private global::Google.ProtocolBuffers.DescriptorProtos.FileOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance;
     public bool HasOptions {
@@ -1105,6 +1114,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
           get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ExtensionRange__FieldAccessorTable; }
         }
         
+        public const int StartFieldNumber = 1;
         private bool hasStart;
         private int start_ = 0;
         public bool HasStart {
@@ -1114,6 +1124,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
           get { return start_; }
         }
         
+        public const int EndFieldNumber = 2;
         private bool hasEnd;
         private int end_ = 0;
         public bool HasEnd {
@@ -1327,6 +1338,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     }
     #endregion
     
+    public const int NameFieldNumber = 1;
     private bool hasName;
     private string name_ = "";
     public bool HasName {
@@ -1336,6 +1348,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return name_; }
     }
     
+    public const int FieldFieldNumber = 2;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> field_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> FieldList {
       get { return field_; }
@@ -1347,6 +1360,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return field_[index];
     }
     
+    public const int ExtensionFieldNumber = 6;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> extension_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> ExtensionList {
       get { return extension_; }
@@ -1358,6 +1372,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return extension_[index];
     }
     
+    public const int NestedTypeFieldNumber = 3;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> nestedType_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> NestedTypeList {
       get { return nestedType_; }
@@ -1369,6 +1384,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return nestedType_[index];
     }
     
+    public const int EnumTypeFieldNumber = 4;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> enumType_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> EnumTypeList {
       get { return enumType_; }
@@ -1380,6 +1396,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return enumType_[index];
     }
     
+    public const int ExtensionRangeFieldNumber = 5;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange> extensionRange_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange> ExtensionRangeList {
       get { return extensionRange_; }
@@ -1391,6 +1408,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return extensionRange_[index];
     }
     
+    public const int OptionsFieldNumber = 7;
     private bool hasOptions;
     private global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance;
     public bool HasOptions {
@@ -1964,6 +1982,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     }
     #endregion
     
+    public const int NameFieldNumber = 1;
     private bool hasName;
     private string name_ = "";
     public bool HasName {
@@ -1973,6 +1992,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return name_; }
     }
     
+    public const int NumberFieldNumber = 3;
     private bool hasNumber;
     private int number_ = 0;
     public bool HasNumber {
@@ -1982,6 +2002,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return number_; }
     }
     
+    public const int LabelFieldNumber = 4;
     private bool hasLabel;
     private global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label label_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label.LABEL_OPTIONAL;
     public bool HasLabel {
@@ -1991,6 +2012,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return label_; }
     }
     
+    public const int TypeFieldNumber = 5;
     private bool hasType;
     private global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type type_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type.TYPE_DOUBLE;
     public bool HasType {
@@ -2000,6 +2022,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return type_; }
     }
     
+    public const int TypeNameFieldNumber = 6;
     private bool hasTypeName;
     private string typeName_ = "";
     public bool HasTypeName {
@@ -2009,6 +2032,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return typeName_; }
     }
     
+    public const int ExtendeeFieldNumber = 2;
     private bool hasExtendee;
     private string extendee_ = "";
     public bool HasExtendee {
@@ -2018,6 +2042,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return extendee_; }
     }
     
+    public const int DefaultValueFieldNumber = 7;
     private bool hasDefaultValue;
     private string defaultValue_ = "";
     public bool HasDefaultValue {
@@ -2027,6 +2052,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return defaultValue_; }
     }
     
+    public const int OptionsFieldNumber = 8;
     private bool hasOptions;
     private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance;
     public bool HasOptions {
@@ -2491,6 +2517,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumDescriptorProto__FieldAccessorTable; }
     }
     
+    public const int NameFieldNumber = 1;
     private bool hasName;
     private string name_ = "";
     public bool HasName {
@@ -2500,6 +2527,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return name_; }
     }
     
+    public const int ValueFieldNumber = 2;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto> value_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto> ValueList {
       get { return value_; }
@@ -2511,6 +2539,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return value_[index];
     }
     
+    public const int OptionsFieldNumber = 3;
     private bool hasOptions;
     private global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance;
     public bool HasOptions {
@@ -2827,6 +2856,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueDescriptorProto__FieldAccessorTable; }
     }
     
+    public const int NameFieldNumber = 1;
     private bool hasName;
     private string name_ = "";
     public bool HasName {
@@ -2836,6 +2866,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return name_; }
     }
     
+    public const int NumberFieldNumber = 2;
     private bool hasNumber;
     private int number_ = 0;
     public bool HasNumber {
@@ -2845,6 +2876,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return number_; }
     }
     
+    public const int OptionsFieldNumber = 3;
     private bool hasOptions;
     private global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance;
     public bool HasOptions {
@@ -3135,6 +3167,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceDescriptorProto__FieldAccessorTable; }
     }
     
+    public const int NameFieldNumber = 1;
     private bool hasName;
     private string name_ = "";
     public bool HasName {
@@ -3144,6 +3177,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return name_; }
     }
     
+    public const int MethodFieldNumber = 2;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto> method_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto> MethodList {
       get { return method_; }
@@ -3155,6 +3189,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return method_[index];
     }
     
+    public const int OptionsFieldNumber = 3;
     private bool hasOptions;
     private global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance;
     public bool HasOptions {
@@ -3471,6 +3506,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodDescriptorProto__FieldAccessorTable; }
     }
     
+    public const int NameFieldNumber = 1;
     private bool hasName;
     private string name_ = "";
     public bool HasName {
@@ -3480,6 +3516,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return name_; }
     }
     
+    public const int InputTypeFieldNumber = 2;
     private bool hasInputType;
     private string inputType_ = "";
     public bool HasInputType {
@@ -3489,6 +3526,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return inputType_; }
     }
     
+    public const int OutputTypeFieldNumber = 3;
     private bool hasOutputType;
     private string outputType_ = "";
     public bool HasOutputType {
@@ -3498,6 +3536,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return outputType_; }
     }
     
+    public const int OptionsFieldNumber = 4;
     private bool hasOptions;
     private global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance;
     public bool HasOptions {
@@ -3831,6 +3870,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     }
     #endregion
     
+    public const int JavaPackageFieldNumber = 1;
     private bool hasJavaPackage;
     private string javaPackage_ = "";
     public bool HasJavaPackage {
@@ -3840,6 +3880,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return javaPackage_; }
     }
     
+    public const int JavaOuterClassnameFieldNumber = 8;
     private bool hasJavaOuterClassname;
     private string javaOuterClassname_ = "";
     public bool HasJavaOuterClassname {
@@ -3849,6 +3890,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return javaOuterClassname_; }
     }
     
+    public const int JavaMultipleFilesFieldNumber = 10;
     private bool hasJavaMultipleFiles;
     private bool javaMultipleFiles_ = false;
     public bool HasJavaMultipleFiles {
@@ -3858,6 +3900,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return javaMultipleFiles_; }
     }
     
+    public const int OptimizeForFieldNumber = 9;
     private bool hasOptimizeFor;
     private global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode optimizeFor_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode.CODE_SIZE;
     public bool HasOptimizeFor {
@@ -3867,6 +3910,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return optimizeFor_; }
     }
     
+    public const int UninterpretedOptionFieldNumber = 999;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
       get { return uninterpretedOption_; }
@@ -4235,6 +4279,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MessageOptions__FieldAccessorTable; }
     }
     
+    public const int MessageSetWireFormatFieldNumber = 1;
     private bool hasMessageSetWireFormat;
     private bool messageSetWireFormat_ = false;
     public bool HasMessageSetWireFormat {
@@ -4244,6 +4289,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return messageSetWireFormat_; }
     }
     
+    public const int UninterpretedOptionFieldNumber = 999;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
       get { return uninterpretedOption_; }
@@ -4519,6 +4565,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     }
     #endregion
     
+    public const int CtypeFieldNumber = 1;
     private bool hasCtype;
     private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType ctype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType.CORD;
     public bool HasCtype {
@@ -4528,6 +4575,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return ctype_; }
     }
     
+    public const int PackedFieldNumber = 2;
     private bool hasPacked;
     private bool packed_ = false;
     public bool HasPacked {
@@ -4537,6 +4585,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return packed_; }
     }
     
+    public const int ExperimentalMapKeyFieldNumber = 9;
     private bool hasExperimentalMapKey;
     private string experimentalMapKey_ = "";
     public bool HasExperimentalMapKey {
@@ -4546,6 +4595,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return experimentalMapKey_; }
     }
     
+    public const int UninterpretedOptionFieldNumber = 999;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
       get { return uninterpretedOption_; }
@@ -4882,6 +4932,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumOptions__FieldAccessorTable; }
     }
     
+    public const int UninterpretedOptionFieldNumber = 999;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
       get { return uninterpretedOption_; }
@@ -5116,6 +5167,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueOptions__FieldAccessorTable; }
     }
     
+    public const int UninterpretedOptionFieldNumber = 999;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
       get { return uninterpretedOption_; }
@@ -5350,6 +5402,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceOptions__FieldAccessorTable; }
     }
     
+    public const int UninterpretedOptionFieldNumber = 999;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
       get { return uninterpretedOption_; }
@@ -5584,6 +5637,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodOptions__FieldAccessorTable; }
     }
     
+    public const int UninterpretedOptionFieldNumber = 999;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
       get { return uninterpretedOption_; }
@@ -5842,6 +5896,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
           get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption_NamePart__FieldAccessorTable; }
         }
         
+        public const int NamePartFieldNumber = 1;
         private bool hasNamePart_;
         private string namePart_ = "";
         public bool HasNamePart_ {
@@ -5851,6 +5906,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
           get { return namePart_; }
         }
         
+        public const int IsExtensionFieldNumber = 2;
         private bool hasIsExtension;
         private bool isExtension_ = false;
         public bool HasIsExtension {
@@ -6067,6 +6123,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
     }
     #endregion
     
+    public const int NameFieldNumber = 2;
     private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart> name_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart>();
     public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart> NameList {
       get { return name_; }
@@ -6078,6 +6135,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       return name_[index];
     }
     
+    public const int IdentifierValueFieldNumber = 3;
     private bool hasIdentifierValue;
     private string identifierValue_ = "";
     public bool HasIdentifierValue {
@@ -6087,6 +6145,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return identifierValue_; }
     }
     
+    public const int PositiveIntValueFieldNumber = 4;
     private bool hasPositiveIntValue;
     private ulong positiveIntValue_ = 0UL;
     public bool HasPositiveIntValue {
@@ -6096,6 +6155,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return positiveIntValue_; }
     }
     
+    public const int NegativeIntValueFieldNumber = 5;
     private bool hasNegativeIntValue;
     private long negativeIntValue_ = 0L;
     public bool HasNegativeIntValue {
@@ -6105,6 +6165,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return negativeIntValue_; }
     }
     
+    public const int DoubleValueFieldNumber = 6;
     private bool hasDoubleValue;
     private double doubleValue_ = 0D;
     public bool HasDoubleValue {
@@ -6114,6 +6175,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
       get { return doubleValue_; }
     }
     
+    public const int StringValueFieldNumber = 7;
     private bool hasStringValue;
     private pb::ByteString stringValue_ = pb::ByteString.Empty;
     public bool HasStringValue {

+ 4 - 1
todo.txt

@@ -9,6 +9,9 @@ Current task list (not in order)
 - Avoid using reflection for messages which don't need it (is this
   possible?)
 - Add RegisterAllExtensions
-- Add ToBuilder changes from Google's r92
+- Add ToBuilder changes from Google's r92 (done? Need to check)
 - Silverlight changes (as per email to Jon)
+- Extension registration/initialization code?
 
+From latest Java code:
+r120: (Lots)

Some files were not shown because too many files changed in this diff