Changes from review e805fdfd3a6b
diff --git a/src/ProtoGen/FieldGeneratorBase.cs b/src/ProtoGen/FieldGeneratorBase.cs
index c64608d..5429419 100644
--- a/src/ProtoGen/FieldGeneratorBase.cs
+++ b/src/ProtoGen/FieldGeneratorBase.cs
@@ -72,6 +72,10 @@
             return true;

         }

 

+        /// <summary>

+        /// This returns true if the field has a non-default default value.  For instance this returns 

+        /// false for numerics with a default of zero '0', or booleans with a default of false.

+        /// </summary>

         protected bool HasDefaultValue

         {

             get

diff --git a/src/ProtocolBuffers/CodedOutputStream.cs b/src/ProtocolBuffers/CodedOutputStream.cs
index 5b1d2ce..c14f5e0 100644
--- a/src/ProtocolBuffers/CodedOutputStream.cs
+++ b/src/ProtocolBuffers/CodedOutputStream.cs
@@ -370,7 +370,7 @@
             WriteRawVarint32(value);

         }

 

-        public void WriteEnum(int fieldNumber, string fieldName, int value, object textValue)

+        public void WriteEnum(int fieldNumber, string fieldName, int value, object rawValue)

         {

             WriteTag(fieldNumber, WireFormat.WireType.Varint);

             WriteRawVarint32((uint) value);

diff --git a/src/ProtocolBuffers/Collections/PopsicleList.cs b/src/ProtocolBuffers/Collections/PopsicleList.cs
index 6cabb44..dc5c583 100644
--- a/src/ProtocolBuffers/Collections/PopsicleList.cs
+++ b/src/ProtocolBuffers/Collections/PopsicleList.cs
@@ -42,7 +42,7 @@
     /// </summary>

     public sealed class PopsicleList<T> : IPopsicleList<T>, ICastArray

     {

-        private static readonly IEnumerable<T> EmptySet = new T[0];

+        private static readonly T[] EmptySet = new T[0];

 

         private List<T> items;

         private bool readOnly;

@@ -134,7 +134,8 @@
 

         public IEnumerator<T> GetEnumerator()

         {

-            return items == null ? EmptySet.GetEnumerator() : items.GetEnumerator();

+            IEnumerable<T> tenum = (IEnumerable<T>)items ?? EmptySet;

+            return tenum.GetEnumerator();

         }

 

         IEnumerator IEnumerable.GetEnumerator()

@@ -171,7 +172,7 @@
         {

             if (items == null)

             {

-                return new TItemType[0];

+                return PopsicleList<TItemType>.EmptySet;

             }

             return (TItemType[]) (object) items.ToArray();

         }

diff --git a/src/ProtocolBuffers/ProtocolBuffers.csproj b/src/ProtocolBuffers/ProtocolBuffers.csproj
index 22f3c13..d278d8a 100644
--- a/src/ProtocolBuffers/ProtocolBuffers.csproj
+++ b/src/ProtocolBuffers/ProtocolBuffers.csproj
@@ -88,6 +88,7 @@
   <ItemGroup>

     <Reference Include="mscorlib" />

     <Reference Include="System" />

+    <Reference Include="System.Data" />

     <Reference Include="System.Xml" />

   </ItemGroup>

   <ItemGroup>