aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2008-08-14 20:35:29 +0100
committerJon Skeet <skeet@pobox.com>2008-08-14 20:35:29 +0100
commitca4cbda9ded3b96f7c2053fdf091055b871ed30e (patch)
tree51d1ec70702cd70bac7b5ed824c7f55a858de540
parentd6c9495797d202a19a93dee724c3c9fc0d6564c6 (diff)
downloadprotobuf-ca4cbda9ded3b96f7c2053fdf091055b871ed30e.tar.gz
protobuf-ca4cbda9ded3b96f7c2053fdf091055b871ed30e.tar.bz2
protobuf-ca4cbda9ded3b96f7c2053fdf091055b871ed30e.zip
Extensions don't need to go under a separate type.
-rw-r--r--csharp/ProtocolBuffers.Test/DescriptorsTest.cs2
-rw-r--r--csharp/ProtocolBuffers.Test/MessageTest.cs8
-rw-r--r--csharp/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs8
-rw-r--r--csharp/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs4
-rw-r--r--csharp/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs10
-rw-r--r--csharp/ProtocolBuffers.Test/WireFormatTest.cs12
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_message.cc12
7 files changed, 29 insertions, 27 deletions
diff --git a/csharp/ProtocolBuffers.Test/DescriptorsTest.cs b/csharp/ProtocolBuffers.Test/DescriptorsTest.cs
index 5f47de1b..6e406af5 100644
--- a/csharp/ProtocolBuffers.Test/DescriptorsTest.cs
+++ b/csharp/ProtocolBuffers.Test/DescriptorsTest.cs
@@ -114,7 +114,7 @@ namespace Google.ProtocolBuffers {
FieldDescriptor messageField = messageType.FindDescriptor<FieldDescriptor>("optional_foreign_message");
FieldDescriptor cordField = messageType.FindDescriptor<FieldDescriptor>("optional_cord");
FieldDescriptor extension = UnitTestProtoFile.OptionalInt32Extension.Descriptor;
- FieldDescriptor nestedExtension = TestRequired.Types.Single.Descriptor;
+ FieldDescriptor nestedExtension = TestRequired.Single.Descriptor;
Assert.AreEqual("optional_int32", primitiveField.Name);
Assert.AreEqual("protobuf_unittest.TestAllTypes.optional_int32",
diff --git a/csharp/ProtocolBuffers.Test/MessageTest.cs b/csharp/ProtocolBuffers.Test/MessageTest.cs
index c03be0ce..6d56f0e5 100644
--- a/csharp/ProtocolBuffers.Test/MessageTest.cs
+++ b/csharp/ProtocolBuffers.Test/MessageTest.cs
@@ -116,16 +116,16 @@ namespace Google.ProtocolBuffers {
Assert.IsTrue(builder.IsInitialized);
- builder.SetExtension(TestRequired.Types.Single, TestRequiredUninitialized);
+ builder.SetExtension(TestRequired.Single, TestRequiredUninitialized);
Assert.IsFalse(builder.IsInitialized);
- builder.SetExtension(TestRequired.Types.Single, TestRequiredInitialized);
+ builder.SetExtension(TestRequired.Single, TestRequiredInitialized);
Assert.IsTrue(builder.IsInitialized);
- builder.AddExtension(TestRequired.Types.Multi, TestRequiredUninitialized);
+ builder.AddExtension(TestRequired.Multi, TestRequiredUninitialized);
Assert.IsFalse(builder.IsInitialized);
- builder.SetExtension(TestRequired.Types.Multi, 0, TestRequiredInitialized);
+ builder.SetExtension(TestRequired.Multi, 0, TestRequiredInitialized);
Assert.IsTrue(builder.IsInitialized);
}
diff --git a/csharp/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs b/csharp/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
index 8599f65b..a1189c83 100644
--- a/csharp/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
+++ b/csharp/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
@@ -518,10 +518,10 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return self::UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable; }
}
+ public static readonly pb::GeneratedExtensionBase<self::TestMessageSetExtension1> MessageSetExtension =
+ pb::GeneratedSingleExtension<self::TestMessageSetExtension1>.CreateInstance(Descriptor.Extensions[0]);
#region Nested types
public static class Types {
- public static readonly pb::GeneratedExtensionBase<self::TestMessageSetExtension1> MessageSetExtension =
- pb::GeneratedSingleExtension<self::TestMessageSetExtension1>.CreateInstance(Descriptor.Extensions[0]);
}
#endregion
@@ -728,10 +728,10 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return self::UnitTestMessageSetProtoFile.internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable; }
}
+ public static readonly pb::GeneratedExtensionBase<self::TestMessageSetExtension2> MessageSetExtension =
+ pb::GeneratedSingleExtension<self::TestMessageSetExtension2>.CreateInstance(Descriptor.Extensions[0]);
#region Nested types
public static class Types {
- public static readonly pb::GeneratedExtensionBase<self::TestMessageSetExtension2> MessageSetExtension =
- pb::GeneratedSingleExtension<self::TestMessageSetExtension2>.CreateInstance(Descriptor.Extensions[0]);
}
#endregion
diff --git a/csharp/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs b/csharp/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
index b38a26b1..46b90843 100644
--- a/csharp/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
+++ b/csharp/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
@@ -75,10 +75,10 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return self::UnitTestOptimizeForProtoFile.internal__static_protobuf_unittest_TestOptimizedForSize__FieldAccessorTable; }
}
+ public static readonly pb::GeneratedExtensionBase<int> TestExtension =
+ pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[0]);
#region Nested types
public static class Types {
- public static readonly pb::GeneratedExtensionBase<int> TestExtension =
- pb::GeneratedSingleExtension<int>.CreateInstance(Descriptor.Extensions[0]);
}
#endregion
diff --git a/csharp/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs b/csharp/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
index 4c7dd75d..9a22a800 100644
--- a/csharp/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
+++ b/csharp/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
@@ -6147,13 +6147,13 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return self::UnitTestProtoFile.internal__static_protobuf_unittest_TestRequired__FieldAccessorTable; }
}
+ public static readonly pb::GeneratedExtensionBase<self::TestRequired> Single =
+ pb::GeneratedSingleExtension<self::TestRequired>.CreateInstance(Descriptor.Extensions[0]);
+ public static readonly
+ pb::GeneratedExtensionBase<scg::IList<self::TestRequired>> Multi =
+ pb::GeneratedRepeatExtension<self::TestRequired>.CreateInstance(Descriptor.Extensions[1]);
#region Nested types
public static class Types {
- public static readonly pb::GeneratedExtensionBase<self::TestRequired> Single =
- pb::GeneratedSingleExtension<self::TestRequired>.CreateInstance(Descriptor.Extensions[0]);
- public static readonly
- pb::GeneratedExtensionBase<scg::IList<self::TestRequired>> Multi =
- pb::GeneratedRepeatExtension<self::TestRequired>.CreateInstance(Descriptor.Extensions[1]);
}
#endregion
diff --git a/csharp/ProtocolBuffers.Test/WireFormatTest.cs b/csharp/ProtocolBuffers.Test/WireFormatTest.cs
index ecf87306..e0451f89 100644
--- a/csharp/ProtocolBuffers.Test/WireFormatTest.cs
+++ b/csharp/ProtocolBuffers.Test/WireFormatTest.cs
@@ -121,10 +121,10 @@ namespace Google.ProtocolBuffers {
TestMessageSet messageSet =
TestMessageSet.CreateBuilder()
.SetExtension(
- TestMessageSetExtension1.Types.MessageSetExtension,
+ TestMessageSetExtension1.MessageSetExtension,
TestMessageSetExtension1.CreateBuilder().SetI(123).Build())
.SetExtension(
- TestMessageSetExtension2.Types.MessageSetExtension,
+ TestMessageSetExtension2.MessageSetExtension,
TestMessageSetExtension2.CreateBuilder().SetStr("foo").Build())
.SetUnknownFields(
UnknownFieldSet.CreateBuilder()
@@ -159,8 +159,8 @@ namespace Google.ProtocolBuffers {
[Test]
public void ParseMessageSet() {
ExtensionRegistry extensionRegistry = ExtensionRegistry.CreateInstance();
- extensionRegistry.Add(TestMessageSetExtension1.Types.MessageSetExtension);
- extensionRegistry.Add(TestMessageSetExtension2.Types.MessageSetExtension);
+ extensionRegistry.Add(TestMessageSetExtension1.MessageSetExtension);
+ extensionRegistry.Add(TestMessageSetExtension2.MessageSetExtension);
// Set up a RawMessageSet with two known messages and an unknown one.
RawMessageSet raw =
@@ -194,8 +194,8 @@ namespace Google.ProtocolBuffers {
TestMessageSet messageSet =
TestMessageSet.ParseFrom(data, extensionRegistry);
- Assert.AreEqual(123, messageSet.GetExtension(TestMessageSetExtension1.Types.MessageSetExtension).I);
- Assert.AreEqual("foo", messageSet.GetExtension(TestMessageSetExtension2.Types.MessageSetExtension).Str);
+ Assert.AreEqual(123, messageSet.GetExtension(TestMessageSetExtension1.MessageSetExtension).I);
+ Assert.AreEqual("foo", messageSet.GetExtension(TestMessageSetExtension2.MessageSetExtension).Str);
// Check for unknown field with type LENGTH_DELIMITED,
// number UNKNOWN_TYPE_ID, and contents "bar".
diff --git a/src/google/protobuf/compiler/csharp/csharp_message.cc b/src/google/protobuf/compiler/csharp/csharp_message.cc
index c74fb4b3..689e4acc 100644
--- a/src/google/protobuf/compiler/csharp/csharp_message.cc
+++ b/src/google/protobuf/compiler/csharp/csharp_message.cc
@@ -237,9 +237,14 @@ void MessageGenerator::Generate(io::Printer* printer) {
"fileclass", ClassName(descriptor_->file()),
"identifier", UniqueFileScopeIdentifier(descriptor_));
+ // Extensions don't need to go in an extra nested type
+ for (int i = 0; i < descriptor_->extension_count(); i++) {
+ ExtensionGenerator(descriptor_->extension(i)).Generate(printer);
+ }
+
if (descriptor_->enum_type_count()
- + descriptor_->nested_type_count()
- + descriptor_->extension_count() > 0) {
+ + descriptor_->nested_type_count()
+ + descriptor_->extension_count() > 0) {
printer->Print("#region Nested types\r\n");
printer->Print("public static class Types {\r\n");
printer->Indent();
@@ -252,9 +257,6 @@ void MessageGenerator::Generate(io::Printer* printer) {
MessageGenerator(descriptor_->nested_type(i)).Generate(printer);
}
- for (int i = 0; i < descriptor_->extension_count(); i++) {
- ExtensionGenerator(descriptor_->extension(i)).Generate(printer);
- }
printer->Outdent();
printer->Print("}\r\n");
printer->Print("#endregion\r\n\r\n");