From 8729cf46284633bb7c9e7dfff57fea74510b8121 Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Fri, 5 Jun 2009 22:49:05 +0100 Subject: Added the ability to use an IEnumerable when adding to a list, so you can do: new Foo.Builder { RepeatedValue = { x.Select(y) } }; ... a bit like LINQ to XML. --- src/ProtoGen/RepeatedEnumFieldGenerator.cs | 3 ++- src/ProtoGen/RepeatedMessageFieldGenerator.cs | 3 ++- src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/ProtoGen') diff --git a/src/ProtoGen/RepeatedEnumFieldGenerator.cs b/src/ProtoGen/RepeatedEnumFieldGenerator.cs index 473970f9..9e7f8a70 100644 --- a/src/ProtoGen/RepeatedEnumFieldGenerator.cs +++ b/src/ProtoGen/RepeatedEnumFieldGenerator.cs @@ -29,7 +29,8 @@ namespace Google.ProtocolBuffers.ProtoGen { public void GenerateBuilderMembers(TextGenerator writer) { // Note: We can return the original list here, because we make it unmodifiable when we build - writer.WriteLine("public scg::IList<{0}> {1}List {{", TypeName, PropertyName); + // We return it via IPopsicleList so that collection initializers work more pleasantly. + writer.WriteLine("public pbc::IPopsicleList<{0}> {1}List {{", TypeName, PropertyName); writer.WriteLine(" get {{ return result.{0}_; }}", Name); writer.WriteLine("}"); writer.WriteLine("public int {0}Count {{", PropertyName); diff --git a/src/ProtoGen/RepeatedMessageFieldGenerator.cs b/src/ProtoGen/RepeatedMessageFieldGenerator.cs index 6a9f8e99..af868c89 100644 --- a/src/ProtoGen/RepeatedMessageFieldGenerator.cs +++ b/src/ProtoGen/RepeatedMessageFieldGenerator.cs @@ -28,7 +28,8 @@ namespace Google.ProtocolBuffers.ProtoGen { public void GenerateBuilderMembers(TextGenerator writer) { // Note: We can return the original list here, because we make it unmodifiable when we build - writer.WriteLine("public scg::IList<{0}> {1}List {{", TypeName, PropertyName); + // We return it via IPopsicleList so that collection initializers work more pleasantly. + writer.WriteLine("public pbc::IPopsicleList<{0}> {1}List {{", TypeName, PropertyName); writer.WriteLine(" get {{ return result.{0}_; }}", Name); writer.WriteLine("}"); writer.WriteLine("public int {0}Count {{", PropertyName); diff --git a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs index 09e9fa08..dd1675f8 100644 --- a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs +++ b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs @@ -34,8 +34,9 @@ namespace Google.ProtocolBuffers.ProtoGen { public void GenerateBuilderMembers(TextGenerator writer) { // Note: We can return the original list here, because we make it unmodifiable when we build + // We return it via IPopsicleList so that collection initializers work more pleasantly. AddClsComplianceCheck(writer); - writer.WriteLine("public scg::IList<{0}> {1}List {{", TypeName, PropertyName); + writer.WriteLine("public pbc::IPopsicleList<{0}> {1}List {{", TypeName, PropertyName); writer.WriteLine(" get {{ return result.{0}_; }}", Name); writer.WriteLine("}"); writer.WriteLine("public int {0}Count {{", PropertyName); -- cgit v1.2.3