aboutsummaryrefslogtreecommitdiff
path: root/src/ProtoGen/ExtensionGenerator.cs
diff options
context:
space:
mode:
authorcsharptest <roger@csharptest.net>2010-11-07 18:49:42 -0600
committercsharptest <roger@csharptest.net>2010-11-07 18:49:42 -0600
commit487da48ad2c88d7c07451c546c3541d7db7ceae6 (patch)
tree98a502866fad09e1b775c69b0b58383cb69bd1b8 /src/ProtoGen/ExtensionGenerator.cs
parent80824a51c2730cad30395cf8c54b2a44546cd744 (diff)
downloadprotobuf-487da48ad2c88d7c07451c546c3541d7db7ceae6.tar.gz
protobuf-487da48ad2c88d7c07451c546c3541d7db7ceae6.tar.bz2
protobuf-487da48ad2c88d7c07451c546c3541d7db7ceae6.zip
Fix for repeated extensions.
Diffstat (limited to 'src/ProtoGen/ExtensionGenerator.cs')
-rw-r--r--src/ProtoGen/ExtensionGenerator.cs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/ProtoGen/ExtensionGenerator.cs b/src/ProtoGen/ExtensionGenerator.cs
index 214e56d5..108f1a73 100644
--- a/src/ProtoGen/ExtensionGenerator.cs
+++ b/src/ProtoGen/ExtensionGenerator.cs
@@ -73,7 +73,8 @@ namespace Google.ProtocolBuffers.ProtoGen {
if (!Descriptor.IsCLSCompliant && Descriptor.File.CSharpOptions.ClsCompliance) {
writer.WriteLine("[global::System.CLSCompliant(false)]");
}
- writer.WriteLine("{0} static pb::GeneratedExtensionLite<{1}, {2}> {3};", ClassAccessLevel, extends, type, name);
+ writer.WriteLine("{0} static pb::{4}<{1}, {2}> {3};", ClassAccessLevel, extends, type, name,
+ Descriptor.IsRepeated ? "GeneratedRepeatExtensionLite" : "GeneratedExtensionLite");
} else if (Descriptor.IsRepeated) {
if (!Descriptor.IsCLSCompliant && Descriptor.File.CSharpOptions.ClsCompliance) {
writer.WriteLine("[global::System.CLSCompliant(false)]");
@@ -91,10 +92,11 @@ namespace Google.ProtocolBuffers.ProtoGen {
if (UseLiteRuntime) {
writer.WriteLine("{0}.{1} = ", scope, name);
writer.Indent();
- writer.WriteLine("new pb::GeneratedExtensionLite<{0}, {1}>(", extends, type);
+ writer.WriteLine("new pb::{0}<{1}, {2}>(", Descriptor.IsRepeated ? "GeneratedRepeatExtensionLite" : "GeneratedExtensionLite", extends, type);
writer.Indent();
writer.WriteLine("{0}.DefaultInstance,", extends);
- writer.WriteLine("{0},", Descriptor.HasDefaultValue ? DefaultValue : IsNullableType ? "null" : "default(" + type + ")");
+ if(!Descriptor.IsRepeated)
+ writer.WriteLine("{0},", Descriptor.HasDefaultValue ? DefaultValue : IsNullableType ? "null" : "default(" + type + ")");
writer.WriteLine("{0},", (Descriptor.MappedType == MappedType.Message) ? type + ".DefaultInstance" : "null");
writer.WriteLine("{0},", (Descriptor.MappedType == MappedType.Enum) ? "new EnumLiteMap<" + type + ">()" : "null");
writer.WriteLine("{0},", Descriptor.Index);