diff options
author | csharptest <roger@csharptest.net> | 2010-11-07 18:49:42 -0600 |
---|---|---|
committer | csharptest <roger@csharptest.net> | 2010-11-07 18:49:42 -0600 |
commit | 487da48ad2c88d7c07451c546c3541d7db7ceae6 (patch) | |
tree | 98a502866fad09e1b775c69b0b58383cb69bd1b8 /src/ProtoGen | |
parent | 80824a51c2730cad30395cf8c54b2a44546cd744 (diff) | |
download | protobuf-487da48ad2c88d7c07451c546c3541d7db7ceae6.tar.gz protobuf-487da48ad2c88d7c07451c546c3541d7db7ceae6.tar.bz2 protobuf-487da48ad2c88d7c07451c546c3541d7db7ceae6.zip |
Fix for repeated extensions.
Diffstat (limited to 'src/ProtoGen')
-rw-r--r-- | src/ProtoGen/ExtensionGenerator.cs | 8 |
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); |