Browse Source

remove leading whitespace in C# xml comments

Jan Tattermusch 8 years ago
parent
commit
fda9049ead

+ 3 - 3
csharp/src/AddressBook/Addressbook.cs

@@ -43,7 +43,7 @@ namespace Google.Protobuf.Examples.AddressBook {
   }
   #region Messages
   /// <summary>
-  ///  [START messages]
+  /// [START messages]
   /// </summary>
   public sealed partial class Person : pb::IMessage<Person> {
     private static readonly pb::MessageParser<Person> _parser = new pb::MessageParser<Person>(() => new Person());
@@ -95,7 +95,7 @@ namespace Google.Protobuf.Examples.AddressBook {
     public const int IdFieldNumber = 2;
     private int id_;
     /// <summary>
-    ///  Unique ID number for this person.
+    /// Unique ID number for this person.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Id {
@@ -400,7 +400,7 @@ namespace Google.Protobuf.Examples.AddressBook {
   }
 
   /// <summary>
-  ///  Our address book file is just one of these.
+  /// Our address book file is just one of these.
   /// </summary>
   public sealed partial class AddressBook : pb::IMessage<AddressBook> {
     private static readonly pb::MessageParser<AddressBook> _parser = new pb::MessageParser<AddressBook>(() => new AddressBook());

+ 22 - 22
csharp/src/Google.Protobuf.Conformance/Conformance.cs

@@ -54,11 +54,11 @@ namespace Conformance {
 
   #region Messages
   /// <summary>
-  ///  Represents a single test case's input.  The testee should:
+  /// Represents a single test case's input.  The testee should:
   ///
-  ///    1. parse this proto (which should always succeed)
-  ///    2. parse the protobuf or JSON payload in "payload" (which may fail)
-  ///    3. if the parse succeeded, serialize the message in the requested format.
+  ///   1. parse this proto (which should always succeed)
+  ///   2. parse the protobuf or JSON payload in "payload" (which may fail)
+  ///   3. if the parse succeeded, serialize the message in the requested format.
   /// </summary>
   public sealed partial class ConformanceRequest : pb::IMessage<ConformanceRequest> {
     private static readonly pb::MessageParser<ConformanceRequest> _parser = new pb::MessageParser<ConformanceRequest>(() => new ConformanceRequest());
@@ -127,7 +127,7 @@ namespace Conformance {
     public const int RequestedOutputFormatFieldNumber = 3;
     private global::Conformance.WireFormat requestedOutputFormat_ = 0;
     /// <summary>
-    ///  Which format should the testee serialize its message to?
+    /// Which format should the testee serialize its message to?
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Conformance.WireFormat RequestedOutputFormat {
@@ -268,7 +268,7 @@ namespace Conformance {
   }
 
   /// <summary>
-  ///  Represents a single test case's output.
+  /// Represents a single test case's output.
   /// </summary>
   public sealed partial class ConformanceResponse : pb::IMessage<ConformanceResponse> {
     private static readonly pb::MessageParser<ConformanceResponse> _parser = new pb::MessageParser<ConformanceResponse>(() => new ConformanceResponse());
@@ -325,11 +325,11 @@ namespace Conformance {
     /// <summary>Field number for the "parse_error" field.</summary>
     public const int ParseErrorFieldNumber = 1;
     /// <summary>
-    ///  This string should be set to indicate parsing failed.  The string can
-    ///  provide more information about the parse error if it is available.
+    /// This string should be set to indicate parsing failed.  The string can
+    /// provide more information about the parse error if it is available.
     ///
-    ///  Setting this string does not necessarily mean the testee failed the
-    ///  test.  Some of the test cases are intentionally invalid input.
+    /// Setting this string does not necessarily mean the testee failed the
+    /// test.  Some of the test cases are intentionally invalid input.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string ParseError {
@@ -343,9 +343,9 @@ namespace Conformance {
     /// <summary>Field number for the "serialize_error" field.</summary>
     public const int SerializeErrorFieldNumber = 6;
     /// <summary>
-    ///  If the input was successfully parsed but errors occurred when
-    ///  serializing it to the requested output format, set the error message in
-    ///  this field.
+    /// If the input was successfully parsed but errors occurred when
+    /// serializing it to the requested output format, set the error message in
+    /// this field.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string SerializeError {
@@ -359,9 +359,9 @@ namespace Conformance {
     /// <summary>Field number for the "runtime_error" field.</summary>
     public const int RuntimeErrorFieldNumber = 2;
     /// <summary>
-    ///  This should be set if some other error occurred.  This will always
-    ///  indicate that the test failed.  The string can provide more information
-    ///  about the failure.
+    /// This should be set if some other error occurred.  This will always
+    /// indicate that the test failed.  The string can provide more information
+    /// about the failure.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string RuntimeError {
@@ -375,8 +375,8 @@ namespace Conformance {
     /// <summary>Field number for the "protobuf_payload" field.</summary>
     public const int ProtobufPayloadFieldNumber = 3;
     /// <summary>
-    ///  If the input was successfully parsed and the requested output was
-    ///  protobuf, serialize it to protobuf and set it in this field.
+    /// If the input was successfully parsed and the requested output was
+    /// protobuf, serialize it to protobuf and set it in this field.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pb::ByteString ProtobufPayload {
@@ -390,8 +390,8 @@ namespace Conformance {
     /// <summary>Field number for the "json_payload" field.</summary>
     public const int JsonPayloadFieldNumber = 4;
     /// <summary>
-    ///  If the input was successfully parsed and the requested output was JSON,
-    ///  serialize to JSON and set it in this field.
+    /// If the input was successfully parsed and the requested output was JSON,
+    /// serialize to JSON and set it in this field.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string JsonPayload {
@@ -405,8 +405,8 @@ namespace Conformance {
     /// <summary>Field number for the "skipped" field.</summary>
     public const int SkippedFieldNumber = 5;
     /// <summary>
-    ///  For when the testee skipped the test, likely because a certain feature
-    ///  wasn't supported, like JSON input/output.
+    /// For when the testee skipped the test, likely because a certain feature
+    /// wasn't supported, like JSON input/output.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Skipped {

+ 5 - 5
csharp/src/Google.Protobuf.Test/TestProtos/MapUnittestProto3.cs

@@ -172,7 +172,7 @@ namespace Google.Protobuf.TestProtos {
 
   #region Messages
   /// <summary>
-  ///  Tests maps.
+  /// Tests maps.
   /// </summary>
   public sealed partial class TestMap : pb::IMessage<TestMap> {
     private static readonly pb::MessageParser<TestMap> _parser = new pb::MessageParser<TestMap>(() => new TestMap());
@@ -836,7 +836,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Two map fields share the same entry default instance.
+  /// Two map fields share the same entry default instance.
   /// </summary>
   public sealed partial class TestSameTypeMap : pb::IMessage<TestSameTypeMap> {
     private static readonly pb::MessageParser<TestSameTypeMap> _parser = new pb::MessageParser<TestSameTypeMap>(() => new TestSameTypeMap());
@@ -1357,8 +1357,8 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Previously, message containing enum called Type cannot be used as value of
-  ///  map field.
+  /// Previously, message containing enum called Type cannot be used as value of
+  /// map field.
   /// </summary>
   public sealed partial class MessageContainingEnumCalledType : pb::IMessage<MessageContainingEnumCalledType> {
     private static readonly pb::MessageParser<MessageContainingEnumCalledType> _parser = new pb::MessageParser<MessageContainingEnumCalledType>(() => new MessageContainingEnumCalledType());
@@ -1481,7 +1481,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Previously, message cannot contain map field called "entry".
+  /// Previously, message cannot contain map field called "entry".
   /// </summary>
   public sealed partial class MessageContainingMapCalledEntry : pb::IMessage<MessageContainingMapCalledEntry> {
     private static readonly pb::MessageParser<MessageContainingMapCalledEntry> _parser = new pb::MessageParser<MessageContainingMapCalledEntry>(() => new MessageContainingMapCalledEntry());

+ 13 - 13
csharp/src/Google.Protobuf.Test/TestProtos/TestMessagesProto3.cs

@@ -219,13 +219,13 @@ namespace ProtobufTestMessages.Proto3 {
 
   #region Messages
   /// <summary>
-  ///  This proto includes every type of field in both singular and repeated
-  ///  forms.
+  /// This proto includes every type of field in both singular and repeated
+  /// forms.
   ///
-  ///  Also, crucially, all messages and enums in this file are eventually
-  ///  submessages of this message.  So for example, a fuzz test of TestAllTypes
-  ///  could trigger bugs that occur in any message type in this file.  We verify
-  ///  this stays true in a unit test.
+  /// Also, crucially, all messages and enums in this file are eventually
+  /// submessages of this message.  So for example, a fuzz test of TestAllTypes
+  /// could trigger bugs that occur in any message type in this file.  We verify
+  /// this stays true in a unit test.
   /// </summary>
   public sealed partial class TestAllTypes : pb::IMessage<TestAllTypes> {
     private static readonly pb::MessageParser<TestAllTypes> _parser = new pb::MessageParser<TestAllTypes>(() => new TestAllTypes());
@@ -402,7 +402,7 @@ namespace ProtobufTestMessages.Proto3 {
     public const int OptionalInt32FieldNumber = 1;
     private int optionalInt32_;
     /// <summary>
-    ///  Singular
+    /// Singular
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int OptionalInt32 {
@@ -649,7 +649,7 @@ namespace ProtobufTestMessages.Proto3 {
         = pb::FieldCodec.ForInt32(250);
     private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();
     /// <summary>
-    ///  Repeated
+    /// Repeated
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<int> RepeatedInt32 {
@@ -862,7 +862,7 @@ namespace ProtobufTestMessages.Proto3 {
         = new pbc::MapField<int, int>.Codec(pb::FieldCodec.ForInt32(8), pb::FieldCodec.ForInt32(16), 450);
     private readonly pbc::MapField<int, int> mapInt32Int32_ = new pbc::MapField<int, int>();
     /// <summary>
-    ///  Map
+    /// Map
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::MapField<int, int> MapInt32Int32 {
@@ -1153,7 +1153,7 @@ namespace ProtobufTestMessages.Proto3 {
     private static readonly pb::FieldCodec<bool?> _single_optionalBoolWrapper_codec = pb::FieldCodec.ForStructWrapper<bool>(1610);
     private bool? optionalBoolWrapper_;
     /// <summary>
-    ///  Well-known types
+    /// Well-known types
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public bool? OptionalBoolWrapper {
@@ -1479,8 +1479,8 @@ namespace ProtobufTestMessages.Proto3 {
     public const int Fieldname1FieldNumber = 401;
     private int fieldname1_;
     /// <summary>
-    ///  Test field-name-to-JSON-name convention.
-    ///  (protobuf says names can be any valid C/C++ identifier.)
+    /// Test field-name-to-JSON-name convention.
+    /// (protobuf says names can be any valid C/C++ identifier.)
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Fieldname1 {
@@ -3403,7 +3403,7 @@ namespace ProtobufTestMessages.Proto3 {
         [pbr::OriginalName("BAR")] Bar = 1,
         [pbr::OriginalName("BAZ")] Baz = 2,
         /// <summary>
-        ///  Intentionally negative.
+        /// Intentionally negative.
         /// </summary>
         [pbr::OriginalName("NEG")] Neg = -1,
       }

+ 15 - 15
csharp/src/Google.Protobuf.Test/TestProtos/UnittestIssues.cs

@@ -79,8 +79,8 @@ namespace UnitTest.Issues.TestProtos {
 
   #region Messages
   /// <summary>
-  ///  Issue 307: when generating doubly-nested types, any references
-  ///  should be of the form A.Types.B.Types.C.
+  /// Issue 307: when generating doubly-nested types, any references
+  /// should be of the form A.Types.B.Types.C.
   /// </summary>
   public sealed partial class Issue307 : pb::IMessage<Issue307> {
     private static readonly pb::MessageParser<Issue307> _parser = new pb::MessageParser<Issue307>(() => new Issue307());
@@ -859,7 +859,7 @@ namespace UnitTest.Issues.TestProtos {
   }
 
   /// <summary>
-  ///  Issue 45: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=45
+  /// Issue 45: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=45
   /// </summary>
   public sealed partial class ItemField : pb::IMessage<ItemField> {
     private static readonly pb::MessageParser<ItemField> _parser = new pb::MessageParser<ItemField>(() => new ItemField());
@@ -1126,7 +1126,7 @@ namespace UnitTest.Issues.TestProtos {
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static partial class Types {
       /// <summary>
-      ///  Force a nested type called Types
+      /// Force a nested type called Types
       /// </summary>
       public sealed partial class SomeNestedType : pb::IMessage<SomeNestedType> {
         private static readonly pb::MessageParser<SomeNestedType> _parser = new pb::MessageParser<SomeNestedType>(() => new SomeNestedType());
@@ -1223,16 +1223,16 @@ namespace UnitTest.Issues.TestProtos {
   }
 
   /// <summary>
-  ///  These fields are deliberately not declared in numeric
-  ///  order, and the oneof fields aren't contiguous either.
-  ///  This allows for reasonably robust tests of JSON output
-  ///  ordering.
-  ///  TestFieldOrderings in unittest_proto3.proto is similar,
-  ///  but doesn't include oneofs.
-  ///  TODO: Consider adding oneofs to TestFieldOrderings, although
-  ///  that will require fixing other tests in multiple platforms.
-  ///  Alternatively, consider just adding this to
-  ///  unittest_proto3.proto if multiple platforms want it.
+  /// These fields are deliberately not declared in numeric
+  /// order, and the oneof fields aren't contiguous either.
+  /// This allows for reasonably robust tests of JSON output
+  /// ordering.
+  /// TestFieldOrderings in unittest_proto3.proto is similar,
+  /// but doesn't include oneofs.
+  /// TODO: Consider adding oneofs to TestFieldOrderings, although
+  /// that will require fixing other tests in multiple platforms.
+  /// Alternatively, consider just adding this to
+  /// unittest_proto3.proto if multiple platforms want it.
   /// </summary>
   public sealed partial class TestJsonFieldOrdering : pb::IMessage<TestJsonFieldOrdering> {
     private static readonly pb::MessageParser<TestJsonFieldOrdering> _parser = new pb::MessageParser<TestJsonFieldOrdering>(() => new TestJsonFieldOrdering());
@@ -1591,7 +1591,7 @@ namespace UnitTest.Issues.TestProtos {
     public const int NameFieldNumber = 1;
     private string name_ = "";
     /// <summary>
-    ///  Message for testing the effects for of the json_name option
+    /// Message for testing the effects for of the json_name option
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {

+ 42 - 42
csharp/src/Google.Protobuf.Test/TestProtos/UnittestProto3.cs

@@ -199,7 +199,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test an enum that has multiple values with the same number.
+  /// Test an enum that has multiple values with the same number.
   /// </summary>
   public enum TestEnumWithDupValue {
     [pbr::OriginalName("TEST_ENUM_WITH_DUP_VALUE_UNSPECIFIED")] Unspecified = 0,
@@ -211,7 +211,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test an enum with large, unordered values.
+  /// Test an enum with large, unordered values.
   /// </summary>
   public enum TestSparseEnum {
     [pbr::OriginalName("TEST_SPARSE_ENUM_UNSPECIFIED")] Unspecified = 0,
@@ -221,8 +221,8 @@ namespace Google.Protobuf.TestProtos {
     [pbr::OriginalName("SPARSE_D")] SparseD = -15,
     [pbr::OriginalName("SPARSE_E")] SparseE = -53452,
     /// <summary>
-    ///  In proto3, value 0 must be the first one specified
-    ///  SPARSE_F = 0;
+    /// In proto3, value 0 must be the first one specified
+    /// SPARSE_F = 0;
     /// </summary>
     [pbr::OriginalName("SPARSE_G")] SparseG = 2,
   }
@@ -231,8 +231,8 @@ namespace Google.Protobuf.TestProtos {
 
   #region Messages
   /// <summary>
-  ///  This proto includes every type of field in both singular and repeated
-  ///  forms.
+  /// This proto includes every type of field in both singular and repeated
+  /// forms.
   /// </summary>
   public sealed partial class TestAllTypes : pb::IMessage<TestAllTypes> {
     private static readonly pb::MessageParser<TestAllTypes> _parser = new pb::MessageParser<TestAllTypes>(() => new TestAllTypes());
@@ -328,7 +328,7 @@ namespace Google.Protobuf.TestProtos {
     public const int SingleInt32FieldNumber = 1;
     private int singleInt32_;
     /// <summary>
-    ///  Singular
+    /// Singular
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int SingleInt32 {
@@ -562,7 +562,7 @@ namespace Google.Protobuf.TestProtos {
     public const int SinglePublicImportMessageFieldNumber = 26;
     private global::Google.Protobuf.TestProtos.PublicImportMessage singlePublicImportMessage_;
     /// <summary>
-    ///  Defined in unittest_import_public.proto
+    /// Defined in unittest_import_public.proto
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.TestProtos.PublicImportMessage SinglePublicImportMessage {
@@ -578,7 +578,7 @@ namespace Google.Protobuf.TestProtos {
         = pb::FieldCodec.ForInt32(250);
     private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();
     /// <summary>
-    ///  Repeated
+    /// Repeated
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<int> RepeatedInt32 {
@@ -791,7 +791,7 @@ namespace Google.Protobuf.TestProtos {
         = pb::FieldCodec.ForMessage(434, global::Google.Protobuf.TestProtos.PublicImportMessage.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage> repeatedPublicImportMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage>();
     /// <summary>
-    ///  Defined in unittest_import_public.proto
+    /// Defined in unittest_import_public.proto
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.PublicImportMessage> RepeatedPublicImportMessage {
@@ -1593,7 +1593,7 @@ namespace Google.Protobuf.TestProtos {
         [pbr::OriginalName("BAR")] Bar = 2,
         [pbr::OriginalName("BAZ")] Baz = 3,
         /// <summary>
-        ///  Intentionally negative.
+        /// Intentionally negative.
         /// </summary>
         [pbr::OriginalName("NEG")] Neg = -1,
       }
@@ -1634,9 +1634,9 @@ namespace Google.Protobuf.TestProtos {
         public const int BbFieldNumber = 1;
         private int bb_;
         /// <summary>
-        ///  The field name "b" fails to compile in proto1 because it conflicts with
-        ///  a local variable named "b" in one of the generated methods.  Doh.
-        ///  This file needs to compile in proto1 to test backwards-compatibility.
+        /// The field name "b" fails to compile in proto1 because it conflicts with
+        /// a local variable named "b" in one of the generated methods.  Doh.
+        /// This file needs to compile in proto1 to test backwards-compatibility.
         /// </summary>
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
         public int Bb {
@@ -1726,7 +1726,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  This proto includes a recusively nested message.
+  /// This proto includes a recusively nested message.
   /// </summary>
   public sealed partial class NestedTestAllTypes : pb::IMessage<NestedTestAllTypes> {
     private static readonly pb::MessageParser<NestedTestAllTypes> _parser = new pb::MessageParser<NestedTestAllTypes>(() => new NestedTestAllTypes());
@@ -2024,8 +2024,8 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Define these after TestAllTypes to make sure the compiler can handle
-  ///  that.
+  /// Define these after TestAllTypes to make sure the compiler can handle
+  /// that.
   /// </summary>
   public sealed partial class ForeignMessage : pb::IMessage<ForeignMessage> {
     private static readonly pb::MessageParser<ForeignMessage> _parser = new pb::MessageParser<ForeignMessage>(() => new ForeignMessage());
@@ -2234,7 +2234,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test that we can use NestedMessage from outside TestAllTypes.
+  /// Test that we can use NestedMessage from outside TestAllTypes.
   /// </summary>
   public sealed partial class TestForeignNested : pb::IMessage<TestForeignNested> {
     private static readonly pb::MessageParser<TestForeignNested> _parser = new pb::MessageParser<TestForeignNested>(() => new TestForeignNested());
@@ -2360,7 +2360,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test that really large tag numbers don't break anything.
+  /// Test that really large tag numbers don't break anything.
   /// </summary>
   public sealed partial class TestReallyLargeTagNumber : pb::IMessage<TestReallyLargeTagNumber> {
     private static readonly pb::MessageParser<TestReallyLargeTagNumber> _parser = new pb::MessageParser<TestReallyLargeTagNumber>(() => new TestReallyLargeTagNumber());
@@ -2399,8 +2399,8 @@ namespace Google.Protobuf.TestProtos {
     public const int AFieldNumber = 1;
     private int a_;
     /// <summary>
-    ///  The largest possible tag number is 2^28 - 1, since the wire format uses
-    ///  three bits to communicate wire type.
+    /// The largest possible tag number is 2^28 - 1, since the wire format uses
+    /// three bits to communicate wire type.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int A {
@@ -2663,7 +2663,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test that mutual recursion works.
+  /// Test that mutual recursion works.
   /// </summary>
   public sealed partial class TestMutualRecursionA : pb::IMessage<TestMutualRecursionA> {
     private static readonly pb::MessageParser<TestMutualRecursionA> _parser = new pb::MessageParser<TestMutualRecursionA>(() => new TestMutualRecursionA());
@@ -2940,8 +2940,8 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test message with CamelCase field names.  This violates Protocol Buffer
-  ///  standard style.
+  /// Test message with CamelCase field names.  This violates Protocol Buffer
+  /// standard style.
   /// </summary>
   public sealed partial class TestCamelCaseFieldNames : pb::IMessage<TestCamelCaseFieldNames> {
     private static readonly pb::MessageParser<TestCamelCaseFieldNames> _parser = new pb::MessageParser<TestCamelCaseFieldNames>(() => new TestCamelCaseFieldNames());
@@ -3233,8 +3233,8 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  We list fields out of order, to ensure that we're using field number and not
-  ///  field index to determine serialization order.
+  /// We list fields out of order, to ensure that we're using field number and not
+  /// field index to determine serialization order.
   /// </summary>
   public sealed partial class TestFieldOrderings : pb::IMessage<TestFieldOrderings> {
     private static readonly pb::MessageParser<TestFieldOrderings> _parser = new pb::MessageParser<TestFieldOrderings>(() => new TestFieldOrderings());
@@ -3493,9 +3493,9 @@ namespace Google.Protobuf.TestProtos {
         public const int BbFieldNumber = 1;
         private int bb_;
         /// <summary>
-        ///  The field name "b" fails to compile in proto1 because it conflicts with
-        ///  a local variable named "b" in one of the generated methods.  Doh.
-        ///  This file needs to compile in proto1 to test backwards-compatibility.
+        /// The field name "b" fails to compile in proto1 because it conflicts with
+        /// a local variable named "b" in one of the generated methods.  Doh.
+        /// This file needs to compile in proto1 to test backwards-compatibility.
         /// </summary>
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
         public int Bb {
@@ -3718,7 +3718,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test String and Bytes: string is for valid UTF-8 strings
+  /// Test String and Bytes: string is for valid UTF-8 strings
   /// </summary>
   public sealed partial class OneString : pb::IMessage<OneString> {
     private static readonly pb::MessageParser<OneString> _parser = new pb::MessageParser<OneString>(() => new OneString());
@@ -4181,7 +4181,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test int32, uint32, int64, uint64, and bool are all compatible
+  /// Test int32, uint32, int64, uint64, and bool are all compatible
   /// </summary>
   public sealed partial class Int32Message : pb::IMessage<Int32Message> {
     private static readonly pb::MessageParser<Int32Message> _parser = new pb::MessageParser<Int32Message>(() => new Int32Message());
@@ -4769,7 +4769,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test oneofs.
+  /// Test oneofs.
   /// </summary>
   public sealed partial class TestOneof : pb::IMessage<TestOneof> {
     private static readonly pb::MessageParser<TestOneof> _parser = new pb::MessageParser<TestOneof>(() => new TestOneof());
@@ -5367,8 +5367,8 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  A message with the same fields as TestPackedTypes, but without packing. Used
-  ///  to test packed &lt;-> unpacked wire compatibility.
+  /// A message with the same fields as TestPackedTypes, but without packing. Used
+  /// to test packed &lt;-> unpacked wire compatibility.
   /// </summary>
   public sealed partial class TestUnpackedTypes : pb::IMessage<TestUnpackedTypes> {
     private static readonly pb::MessageParser<TestUnpackedTypes> _parser = new pb::MessageParser<TestUnpackedTypes>(() => new TestUnpackedTypes());
@@ -5796,9 +5796,9 @@ namespace Google.Protobuf.TestProtos {
         = pb::FieldCodec.ForFixed32(98);
     private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();
     /// <summary>
-    ///  Parsing repeated fixed size values used to fail. This message needs to be
-    ///  used in order to get a tag of the right size; all of the repeated fields
-    ///  in TestAllTypes didn't trigger the check.
+    /// Parsing repeated fixed size values used to fail. This message needs to be
+    /// used in order to get a tag of the right size; all of the repeated fields
+    /// in TestAllTypes didn't trigger the check.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<uint> RepeatedFixed32 {
@@ -5811,7 +5811,7 @@ namespace Google.Protobuf.TestProtos {
         = pb::FieldCodec.ForInt32(106);
     private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();
     /// <summary>
-    ///  Check for a varint type, just for good measure.
+    /// Check for a varint type, just for good measure.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<int> RepeatedInt32 {
@@ -5824,7 +5824,7 @@ namespace Google.Protobuf.TestProtos {
         = pb::FieldCodec.ForFixed64(16370);
     private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();
     /// <summary>
-    ///  These have two-byte tags.
+    /// These have two-byte tags.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<ulong> RepeatedFixed64 {
@@ -5847,7 +5847,7 @@ namespace Google.Protobuf.TestProtos {
         = pb::FieldCodec.ForFloat(2097138);
     private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();
     /// <summary>
-    ///  Three byte tags.
+    /// Three byte tags.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<float> RepeatedFloat {
@@ -6018,7 +6018,7 @@ namespace Google.Protobuf.TestProtos {
     public const int AFieldNumber = 1;
     private string a_ = "";
     /// <summary>
-    ///  */ &lt;- This should not close the generated doc comment
+    /// */ &lt;- This should not close the generated doc comment
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string A {
@@ -6103,7 +6103,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  Test that RPC services work.
+  /// Test that RPC services work.
   /// </summary>
   public sealed partial class FooRequest : pb::IMessage<FooRequest> {
     private static readonly pb::MessageParser<FooRequest> _parser = new pb::MessageParser<FooRequest>(() => new FooRequest());

+ 9 - 9
csharp/src/Google.Protobuf.Test/TestProtos/UnittestWellKnownTypes.cs

@@ -173,9 +173,9 @@ namespace Google.Protobuf.TestProtos {
   }
   #region Messages
   /// <summary>
-  ///  Test that we can include all well-known types.
-  ///  Each wrapper type is included separately, as languages
-  ///  map handle different wrappers in different ways.
+  /// Test that we can include all well-known types.
+  /// Each wrapper type is included separately, as languages
+  /// map handle different wrappers in different ways.
   /// </summary>
   public sealed partial class TestWellKnownTypes : pb::IMessage<TestWellKnownTypes> {
     private static readonly pb::MessageParser<TestWellKnownTypes> _parser = new pb::MessageParser<TestWellKnownTypes>(() => new TestWellKnownTypes());
@@ -438,7 +438,7 @@ namespace Google.Protobuf.TestProtos {
     public const int ValueFieldFieldNumber = 19;
     private global::Google.Protobuf.WellKnownTypes.Value valueField_;
     /// <summary>
-    ///  Part of struct, but useful to be able to test separately
+    /// Part of struct, but useful to be able to test separately
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Value ValueField {
@@ -907,7 +907,7 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  A repeated field for each well-known type.
+  /// A repeated field for each well-known type.
   /// </summary>
   public sealed partial class RepeatedWellKnownTypes : pb::IMessage<RepeatedWellKnownTypes> {
     private static readonly pb::MessageParser<RepeatedWellKnownTypes> _parser = new pb::MessageParser<RepeatedWellKnownTypes>(() => new RepeatedWellKnownTypes());
@@ -1054,7 +1054,7 @@ namespace Google.Protobuf.TestProtos {
         = pb::FieldCodec.ForStructWrapper<double>(82);
     private readonly pbc::RepeatedField<double?> doubleField_ = new pbc::RepeatedField<double?>();
     /// <summary>
-    ///  These don't actually make a lot of sense, but they're not prohibited...
+    /// These don't actually make a lot of sense, but they're not prohibited...
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<double?> DoubleField {
@@ -2079,9 +2079,9 @@ namespace Google.Protobuf.TestProtos {
   }
 
   /// <summary>
-  ///  A map field for each well-known type. We only
-  ///  need to worry about the value part of the map being the
-  ///  well-known types, as messages can't be map keys.
+  /// A map field for each well-known type. We only
+  /// need to worry about the value part of the map being the
+  /// well-known types, as messages can't be map keys.
   /// </summary>
   public sealed partial class MapWellKnownTypes : pb::IMessage<MapWellKnownTypes> {
     private static readonly pb::MessageParser<MapWellKnownTypes> _parser = new pb::MessageParser<MapWellKnownTypes>(() => new MapWellKnownTypes());

File diff suppressed because it is too large
+ 235 - 235
csharp/src/Google.Protobuf/Reflection/Descriptor.cs


+ 74 - 74
csharp/src/Google.Protobuf/WellKnownTypes/Any.cs

@@ -38,74 +38,74 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Messages
   /// <summary>
-  ///  `Any` contains an arbitrary serialized protocol buffer message along with a
-  ///  URL that describes the type of the serialized message.
+  /// `Any` contains an arbitrary serialized protocol buffer message along with a
+  /// URL that describes the type of the serialized message.
   ///
-  ///  Protobuf library provides support to pack/unpack Any values in the form
-  ///  of utility functions or additional generated methods of the Any type.
+  /// Protobuf library provides support to pack/unpack Any values in the form
+  /// of utility functions or additional generated methods of the Any type.
   ///
-  ///  Example 1: Pack and unpack a message in C++.
+  /// Example 1: Pack and unpack a message in C++.
   ///
-  ///      Foo foo = ...;
-  ///      Any any;
-  ///      any.PackFrom(foo);
-  ///      ...
-  ///      if (any.UnpackTo(&amp;foo)) {
-  ///        ...
-  ///      }
+  ///     Foo foo = ...;
+  ///     Any any;
+  ///     any.PackFrom(foo);
+  ///     ...
+  ///     if (any.UnpackTo(&amp;foo)) {
+  ///       ...
+  ///     }
   ///
-  ///  Example 2: Pack and unpack a message in Java.
+  /// Example 2: Pack and unpack a message in Java.
   ///
-  ///      Foo foo = ...;
-  ///      Any any = Any.pack(foo);
-  ///      ...
-  ///      if (any.is(Foo.class)) {
-  ///        foo = any.unpack(Foo.class);
-  ///      }
+  ///     Foo foo = ...;
+  ///     Any any = Any.pack(foo);
+  ///     ...
+  ///     if (any.is(Foo.class)) {
+  ///       foo = any.unpack(Foo.class);
+  ///     }
   ///
-  ///   Example 3: Pack and unpack a message in Python.
+  ///  Example 3: Pack and unpack a message in Python.
   ///
-  ///      foo = Foo(...)
-  ///      any = Any()
-  ///      any.Pack(foo)
-  ///      ...
-  ///      if any.Is(Foo.DESCRIPTOR):
-  ///        any.Unpack(foo)
-  ///        ...
+  ///     foo = Foo(...)
+  ///     any = Any()
+  ///     any.Pack(foo)
+  ///     ...
+  ///     if any.Is(Foo.DESCRIPTOR):
+  ///       any.Unpack(foo)
+  ///       ...
   ///
-  ///  The pack methods provided by protobuf library will by default use
-  ///  'type.googleapis.com/full.type.name' as the type URL and the unpack
-  ///  methods only use the fully qualified type name after the last '/'
-  ///  in the type URL, for example "foo.bar.com/x/y.z" will yield type
-  ///  name "y.z".
+  /// The pack methods provided by protobuf library will by default use
+  /// 'type.googleapis.com/full.type.name' as the type URL and the unpack
+  /// methods only use the fully qualified type name after the last '/'
+  /// in the type URL, for example "foo.bar.com/x/y.z" will yield type
+  /// name "y.z".
   ///
-  ///  JSON
-  ///  ====
-  ///  The JSON representation of an `Any` value uses the regular
-  ///  representation of the deserialized, embedded message, with an
-  ///  additional field `@type` which contains the type URL. Example:
+  /// JSON
+  /// ====
+  /// The JSON representation of an `Any` value uses the regular
+  /// representation of the deserialized, embedded message, with an
+  /// additional field `@type` which contains the type URL. Example:
   ///
-  ///      package google.profile;
-  ///      message Person {
-  ///        string first_name = 1;
-  ///        string last_name = 2;
-  ///      }
+  ///     package google.profile;
+  ///     message Person {
+  ///       string first_name = 1;
+  ///       string last_name = 2;
+  ///     }
   ///
-  ///      {
-  ///        "@type": "type.googleapis.com/google.profile.Person",
-  ///        "firstName": &lt;string>,
-  ///        "lastName": &lt;string>
-  ///      }
+  ///     {
+  ///       "@type": "type.googleapis.com/google.profile.Person",
+  ///       "firstName": &lt;string>,
+  ///       "lastName": &lt;string>
+  ///     }
   ///
-  ///  If the embedded message type is well-known and has a custom JSON
-  ///  representation, that representation will be embedded adding a field
-  ///  `value` which holds the custom JSON in addition to the `@type`
-  ///  field. Example (for message [google.protobuf.Duration][]):
+  /// If the embedded message type is well-known and has a custom JSON
+  /// representation, that representation will be embedded adding a field
+  /// `value` which holds the custom JSON in addition to the `@type`
+  /// field. Example (for message [google.protobuf.Duration][]):
   ///
-  ///      {
-  ///        "@type": "type.googleapis.com/google.protobuf.Duration",
-  ///        "value": "1.212s"
-  ///      }
+  ///     {
+  ///       "@type": "type.googleapis.com/google.protobuf.Duration",
+  ///       "value": "1.212s"
+  ///     }
   /// </summary>
   public sealed partial class Any : pb::IMessage<Any> {
     private static readonly pb::MessageParser<Any> _parser = new pb::MessageParser<Any>(() => new Any());
@@ -144,27 +144,27 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int TypeUrlFieldNumber = 1;
     private string typeUrl_ = "";
     /// <summary>
-    ///  A URL/resource name whose content describes the type of the
-    ///  serialized protocol buffer message.
+    /// A URL/resource name whose content describes the type of the
+    /// serialized protocol buffer message.
     ///
-    ///  For URLs which use the scheme `http`, `https`, or no scheme, the
-    ///  following restrictions and interpretations apply:
+    /// For URLs which use the scheme `http`, `https`, or no scheme, the
+    /// following restrictions and interpretations apply:
     ///
-    ///  * If no scheme is provided, `https` is assumed.
-    ///  * The last segment of the URL's path must represent the fully
-    ///    qualified name of the type (as in `path/google.protobuf.Duration`).
-    ///    The name should be in a canonical form (e.g., leading "." is
-    ///    not accepted).
-    ///  * An HTTP GET on the URL must yield a [google.protobuf.Type][]
-    ///    value in binary format, or produce an error.
-    ///  * Applications are allowed to cache lookup results based on the
-    ///    URL, or have them precompiled into a binary to avoid any
-    ///    lookup. Therefore, binary compatibility needs to be preserved
-    ///    on changes to types. (Use versioned type names to manage
-    ///    breaking changes.)
+    /// * If no scheme is provided, `https` is assumed.
+    /// * The last segment of the URL's path must represent the fully
+    ///   qualified name of the type (as in `path/google.protobuf.Duration`).
+    ///   The name should be in a canonical form (e.g., leading "." is
+    ///   not accepted).
+    /// * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+    ///   value in binary format, or produce an error.
+    /// * Applications are allowed to cache lookup results based on the
+    ///   URL, or have them precompiled into a binary to avoid any
+    ///   lookup. Therefore, binary compatibility needs to be preserved
+    ///   on changes to types. (Use versioned type names to manage
+    ///   breaking changes.)
     ///
-    ///  Schemes other than `http`, `https` (or the empty scheme) might be
-    ///  used with implementation specific semantics.
+    /// Schemes other than `http`, `https` (or the empty scheme) might be
+    /// used with implementation specific semantics.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string TypeUrl {
@@ -178,7 +178,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 2;
     private pb::ByteString value_ = pb::ByteString.Empty;
     /// <summary>
-    ///  Must be a valid serialized protocol buffer of the above specified type.
+    /// Must be a valid serialized protocol buffer of the above specified type.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pb::ByteString Value {

+ 99 - 99
csharp/src/Google.Protobuf/WellKnownTypes/Api.cs

@@ -52,7 +52,7 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Messages
   /// <summary>
-  ///  Api is a light-weight descriptor for a protocol buffer service.
+  /// Api is a light-weight descriptor for a protocol buffer service.
   /// </summary>
   public sealed partial class Api : pb::IMessage<Api> {
     private static readonly pb::MessageParser<Api> _parser = new pb::MessageParser<Api>(() => new Api());
@@ -96,8 +96,8 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NameFieldNumber = 1;
     private string name_ = "";
     /// <summary>
-    ///  The fully qualified name of this api, including package name
-    ///  followed by the api's simple name.
+    /// The fully qualified name of this api, including package name
+    /// followed by the api's simple name.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {
@@ -113,7 +113,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.WellKnownTypes.Method.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method> methods_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method>();
     /// <summary>
-    ///  The methods of this api, in unspecified order.
+    /// The methods of this api, in unspecified order.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method> Methods {
@@ -126,7 +126,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.WellKnownTypes.Option.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> options_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option>();
     /// <summary>
-    ///  Any metadata attached to the API.
+    /// Any metadata attached to the API.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> Options {
@@ -137,26 +137,26 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int VersionFieldNumber = 4;
     private string version_ = "";
     /// <summary>
-    ///  A version string for this api. If specified, must have the form
-    ///  `major-version.minor-version`, as in `1.10`. If the minor version
-    ///  is omitted, it defaults to zero. If the entire version field is
-    ///  empty, the major version is derived from the package name, as
-    ///  outlined below. If the field is not empty, the version in the
-    ///  package name will be verified to be consistent with what is
-    ///  provided here.
+    /// A version string for this api. If specified, must have the form
+    /// `major-version.minor-version`, as in `1.10`. If the minor version
+    /// is omitted, it defaults to zero. If the entire version field is
+    /// empty, the major version is derived from the package name, as
+    /// outlined below. If the field is not empty, the version in the
+    /// package name will be verified to be consistent with what is
+    /// provided here.
     ///
-    ///  The versioning schema uses [semantic
-    ///  versioning](http://semver.org) where the major version number
-    ///  indicates a breaking change and the minor version an additive,
-    ///  non-breaking change. Both version numbers are signals to users
-    ///  what to expect from different versions, and should be carefully
-    ///  chosen based on the product plan.
+    /// The versioning schema uses [semantic
+    /// versioning](http://semver.org) where the major version number
+    /// indicates a breaking change and the minor version an additive,
+    /// non-breaking change. Both version numbers are signals to users
+    /// what to expect from different versions, and should be carefully
+    /// chosen based on the product plan.
     ///
-    ///  The major version is also reflected in the package name of the
-    ///  API, which must end in `v&lt;major-version>`, as in
-    ///  `google.feature.v1`. For major versions 0 and 1, the suffix can
-    ///  be omitted. Zero major versions must only be used for
-    ///  experimental, none-GA apis.
+    /// The major version is also reflected in the package name of the
+    /// API, which must end in `v&lt;major-version>`, as in
+    /// `google.feature.v1`. For major versions 0 and 1, the suffix can
+    /// be omitted. Zero major versions must only be used for
+    /// experimental, none-GA apis.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Version {
@@ -170,8 +170,8 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SourceContextFieldNumber = 5;
     private global::Google.Protobuf.WellKnownTypes.SourceContext sourceContext_;
     /// <summary>
-    ///  Source context for the protocol buffer service represented by this
-    ///  message.
+    /// Source context for the protocol buffer service represented by this
+    /// message.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.SourceContext SourceContext {
@@ -187,7 +187,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.WellKnownTypes.Mixin.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin> mixins_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin>();
     /// <summary>
-    ///  Included APIs. See [Mixin][].
+    /// Included APIs. See [Mixin][].
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin> Mixins {
@@ -198,7 +198,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SyntaxFieldNumber = 7;
     private global::Google.Protobuf.WellKnownTypes.Syntax syntax_ = 0;
     /// <summary>
-    ///  The source syntax of the service.
+    /// The source syntax of the service.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Syntax Syntax {
@@ -364,7 +364,7 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Method represents a method of an api.
+  /// Method represents a method of an api.
   /// </summary>
   public sealed partial class Method : pb::IMessage<Method> {
     private static readonly pb::MessageParser<Method> _parser = new pb::MessageParser<Method>(() => new Method());
@@ -408,7 +408,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NameFieldNumber = 1;
     private string name_ = "";
     /// <summary>
-    ///  The simple name of this method.
+    /// The simple name of this method.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {
@@ -422,7 +422,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int RequestTypeUrlFieldNumber = 2;
     private string requestTypeUrl_ = "";
     /// <summary>
-    ///  A URL of the input message type.
+    /// A URL of the input message type.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string RequestTypeUrl {
@@ -436,7 +436,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int RequestStreamingFieldNumber = 3;
     private bool requestStreaming_;
     /// <summary>
-    ///  If true, the request is streamed.
+    /// If true, the request is streamed.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public bool RequestStreaming {
@@ -450,7 +450,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ResponseTypeUrlFieldNumber = 4;
     private string responseTypeUrl_ = "";
     /// <summary>
-    ///  The URL of the output message type.
+    /// The URL of the output message type.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string ResponseTypeUrl {
@@ -464,7 +464,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ResponseStreamingFieldNumber = 5;
     private bool responseStreaming_;
     /// <summary>
-    ///  If true, the response is streamed.
+    /// If true, the response is streamed.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public bool ResponseStreaming {
@@ -480,7 +480,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.WellKnownTypes.Option.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> options_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option>();
     /// <summary>
-    ///  Any metadata attached to the method.
+    /// Any metadata attached to the method.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> Options {
@@ -491,7 +491,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SyntaxFieldNumber = 7;
     private global::Google.Protobuf.WellKnownTypes.Syntax syntax_ = 0;
     /// <summary>
-    ///  The source syntax of this method.
+    /// The source syntax of this method.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Syntax Syntax {
@@ -665,83 +665,83 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Declares an API to be included in this API. The including API must
-  ///  redeclare all the methods from the included API, but documentation
-  ///  and options are inherited as follows:
+  /// Declares an API to be included in this API. The including API must
+  /// redeclare all the methods from the included API, but documentation
+  /// and options are inherited as follows:
   ///
-  ///  - If after comment and whitespace stripping, the documentation
-  ///    string of the redeclared method is empty, it will be inherited
-  ///    from the original method.
+  /// - If after comment and whitespace stripping, the documentation
+  ///   string of the redeclared method is empty, it will be inherited
+  ///   from the original method.
   ///
-  ///  - Each annotation belonging to the service config (http,
-  ///    visibility) which is not set in the redeclared method will be
-  ///    inherited.
+  /// - Each annotation belonging to the service config (http,
+  ///   visibility) which is not set in the redeclared method will be
+  ///   inherited.
   ///
-  ///  - If an http annotation is inherited, the path pattern will be
-  ///    modified as follows. Any version prefix will be replaced by the
-  ///    version of the including API plus the [root][] path if specified.
+  /// - If an http annotation is inherited, the path pattern will be
+  ///   modified as follows. Any version prefix will be replaced by the
+  ///   version of the including API plus the [root][] path if specified.
   ///
-  ///  Example of a simple mixin:
+  /// Example of a simple mixin:
   ///
-  ///      package google.acl.v1;
-  ///      service AccessControl {
-  ///        // Get the underlying ACL object.
-  ///        rpc GetAcl(GetAclRequest) returns (Acl) {
-  ///          option (google.api.http).get = "/v1/{resource=**}:getAcl";
-  ///        }
-  ///      }
+  ///     package google.acl.v1;
+  ///     service AccessControl {
+  ///       // Get the underlying ACL object.
+  ///       rpc GetAcl(GetAclRequest) returns (Acl) {
+  ///         option (google.api.http).get = "/v1/{resource=**}:getAcl";
+  ///       }
+  ///     }
   ///
-  ///      package google.storage.v2;
-  ///      service Storage {
-  ///        rpc GetAcl(GetAclRequest) returns (Acl);
+  ///     package google.storage.v2;
+  ///     service Storage {
+  ///       rpc GetAcl(GetAclRequest) returns (Acl);
   ///
-  ///        // Get a data record.
-  ///        rpc GetData(GetDataRequest) returns (Data) {
-  ///          option (google.api.http).get = "/v2/{resource=**}";
-  ///        }
-  ///      }
+  ///       // Get a data record.
+  ///       rpc GetData(GetDataRequest) returns (Data) {
+  ///         option (google.api.http).get = "/v2/{resource=**}";
+  ///       }
+  ///     }
   ///
-  ///  Example of a mixin configuration:
+  /// Example of a mixin configuration:
   ///
-  ///      apis:
-  ///      - name: google.storage.v2.Storage
-  ///        mixins:
-  ///        - name: google.acl.v1.AccessControl
+  ///     apis:
+  ///     - name: google.storage.v2.Storage
+  ///       mixins:
+  ///       - name: google.acl.v1.AccessControl
   ///
-  ///  The mixin construct implies that all methods in `AccessControl` are
-  ///  also declared with same name and request/response types in
-  ///  `Storage`. A documentation generator or annotation processor will
-  ///  see the effective `Storage.GetAcl` method after inherting
-  ///  documentation and annotations as follows:
+  /// The mixin construct implies that all methods in `AccessControl` are
+  /// also declared with same name and request/response types in
+  /// `Storage`. A documentation generator or annotation processor will
+  /// see the effective `Storage.GetAcl` method after inherting
+  /// documentation and annotations as follows:
   ///
-  ///      service Storage {
-  ///        // Get the underlying ACL object.
-  ///        rpc GetAcl(GetAclRequest) returns (Acl) {
-  ///          option (google.api.http).get = "/v2/{resource=**}:getAcl";
-  ///        }
-  ///        ...
-  ///      }
+  ///     service Storage {
+  ///       // Get the underlying ACL object.
+  ///       rpc GetAcl(GetAclRequest) returns (Acl) {
+  ///         option (google.api.http).get = "/v2/{resource=**}:getAcl";
+  ///       }
+  ///       ...
+  ///     }
   ///
-  ///  Note how the version in the path pattern changed from `v1` to `v2`.
+  /// Note how the version in the path pattern changed from `v1` to `v2`.
   ///
-  ///  If the `root` field in the mixin is specified, it should be a
-  ///  relative path under which inherited HTTP paths are placed. Example:
+  /// If the `root` field in the mixin is specified, it should be a
+  /// relative path under which inherited HTTP paths are placed. Example:
   ///
-  ///      apis:
-  ///      - name: google.storage.v2.Storage
-  ///        mixins:
-  ///        - name: google.acl.v1.AccessControl
-  ///          root: acls
+  ///     apis:
+  ///     - name: google.storage.v2.Storage
+  ///       mixins:
+  ///       - name: google.acl.v1.AccessControl
+  ///         root: acls
   ///
-  ///  This implies the following inherited HTTP annotation:
+  /// This implies the following inherited HTTP annotation:
   ///
-  ///      service Storage {
-  ///        // Get the underlying ACL object.
-  ///        rpc GetAcl(GetAclRequest) returns (Acl) {
-  ///          option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
-  ///        }
-  ///        ...
-  ///      }
+  ///     service Storage {
+  ///       // Get the underlying ACL object.
+  ///       rpc GetAcl(GetAclRequest) returns (Acl) {
+  ///         option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+  ///       }
+  ///       ...
+  ///     }
   /// </summary>
   public sealed partial class Mixin : pb::IMessage<Mixin> {
     private static readonly pb::MessageParser<Mixin> _parser = new pb::MessageParser<Mixin>(() => new Mixin());
@@ -780,7 +780,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NameFieldNumber = 1;
     private string name_ = "";
     /// <summary>
-    ///  The fully qualified name of the API which is included.
+    /// The fully qualified name of the API which is included.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {
@@ -794,8 +794,8 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int RootFieldNumber = 2;
     private string root_ = "";
     /// <summary>
-    ///  If non-empty specifies a path under which inherited HTTP paths
-    ///  are rooted.
+    /// If non-empty specifies a path under which inherited HTTP paths
+    /// are rooted.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Root {

+ 44 - 44
csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs

@@ -39,52 +39,52 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Messages
   /// <summary>
-  ///  A Duration represents a signed, fixed-length span of time represented
-  ///  as a count of seconds and fractions of seconds at nanosecond
-  ///  resolution. It is independent of any calendar and concepts like "day"
-  ///  or "month". It is related to Timestamp in that the difference between
-  ///  two Timestamp values is a Duration and it can be added or subtracted
-  ///  from a Timestamp. Range is approximately +-10,000 years.
+  /// A Duration represents a signed, fixed-length span of time represented
+  /// as a count of seconds and fractions of seconds at nanosecond
+  /// resolution. It is independent of any calendar and concepts like "day"
+  /// or "month". It is related to Timestamp in that the difference between
+  /// two Timestamp values is a Duration and it can be added or subtracted
+  /// from a Timestamp. Range is approximately +-10,000 years.
   ///
-  ///  Example 1: Compute Duration from two Timestamps in pseudo code.
+  /// Example 1: Compute Duration from two Timestamps in pseudo code.
   ///
-  ///      Timestamp start = ...;
-  ///      Timestamp end = ...;
-  ///      Duration duration = ...;
+  ///     Timestamp start = ...;
+  ///     Timestamp end = ...;
+  ///     Duration duration = ...;
   ///
-  ///      duration.seconds = end.seconds - start.seconds;
-  ///      duration.nanos = end.nanos - start.nanos;
+  ///     duration.seconds = end.seconds - start.seconds;
+  ///     duration.nanos = end.nanos - start.nanos;
   ///
-  ///      if (duration.seconds &lt; 0 &amp;&amp; duration.nanos > 0) {
-  ///        duration.seconds += 1;
-  ///        duration.nanos -= 1000000000;
-  ///      } else if (durations.seconds > 0 &amp;&amp; duration.nanos &lt; 0) {
-  ///        duration.seconds -= 1;
-  ///        duration.nanos += 1000000000;
-  ///      }
+  ///     if (duration.seconds &lt; 0 &amp;&amp; duration.nanos > 0) {
+  ///       duration.seconds += 1;
+  ///       duration.nanos -= 1000000000;
+  ///     } else if (durations.seconds > 0 &amp;&amp; duration.nanos &lt; 0) {
+  ///       duration.seconds -= 1;
+  ///       duration.nanos += 1000000000;
+  ///     }
   ///
-  ///  Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+  /// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
   ///
-  ///      Timestamp start = ...;
-  ///      Duration duration = ...;
-  ///      Timestamp end = ...;
+  ///     Timestamp start = ...;
+  ///     Duration duration = ...;
+  ///     Timestamp end = ...;
   ///
-  ///      end.seconds = start.seconds + duration.seconds;
-  ///      end.nanos = start.nanos + duration.nanos;
+  ///     end.seconds = start.seconds + duration.seconds;
+  ///     end.nanos = start.nanos + duration.nanos;
   ///
-  ///      if (end.nanos &lt; 0) {
-  ///        end.seconds -= 1;
-  ///        end.nanos += 1000000000;
-  ///      } else if (end.nanos >= 1000000000) {
-  ///        end.seconds += 1;
-  ///        end.nanos -= 1000000000;
-  ///      }
+  ///     if (end.nanos &lt; 0) {
+  ///       end.seconds -= 1;
+  ///       end.nanos += 1000000000;
+  ///     } else if (end.nanos >= 1000000000) {
+  ///       end.seconds += 1;
+  ///       end.nanos -= 1000000000;
+  ///     }
   ///
-  ///  Example 3: Compute Duration from datetime.timedelta in Python.
+  /// Example 3: Compute Duration from datetime.timedelta in Python.
   ///
-  ///      td = datetime.timedelta(days=3, minutes=10)
-  ///      duration = Duration()
-  ///      duration.FromTimedelta(td)
+  ///     td = datetime.timedelta(days=3, minutes=10)
+  ///     duration = Duration()
+  ///     duration.FromTimedelta(td)
   /// </summary>
   public sealed partial class Duration : pb::IMessage<Duration> {
     private static readonly pb::MessageParser<Duration> _parser = new pb::MessageParser<Duration>(() => new Duration());
@@ -123,8 +123,8 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SecondsFieldNumber = 1;
     private long seconds_;
     /// <summary>
-    ///  Signed seconds of the span of time. Must be from -315,576,000,000
-    ///  to +315,576,000,000 inclusive.
+    /// Signed seconds of the span of time. Must be from -315,576,000,000
+    /// to +315,576,000,000 inclusive.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public long Seconds {
@@ -138,12 +138,12 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NanosFieldNumber = 2;
     private int nanos_;
     /// <summary>
-    ///  Signed fractions of a second at nanosecond resolution of the span
-    ///  of time. Durations less than one second are represented with a 0
-    ///  `seconds` field and a positive or negative `nanos` field. For durations
-    ///  of one second or more, a non-zero value for the `nanos` field must be
-    ///  of the same sign as the `seconds` field. Must be from -999,999,999
-    ///  to +999,999,999 inclusive.
+    /// Signed fractions of a second at nanosecond resolution of the span
+    /// of time. Durations less than one second are represented with a 0
+    /// `seconds` field and a positive or negative `nanos` field. For durations
+    /// of one second or more, a non-zero value for the `nanos` field must be
+    /// of the same sign as the `seconds` field. Must be from -999,999,999
+    /// to +999,999,999 inclusive.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Nanos {

+ 7 - 7
csharp/src/Google.Protobuf/WellKnownTypes/Empty.cs

@@ -38,15 +38,15 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Messages
   /// <summary>
-  ///  A generic empty message that you can re-use to avoid defining duplicated
-  ///  empty messages in your APIs. A typical example is to use it as the request
-  ///  or the response type of an API method. For instance:
+  /// A generic empty message that you can re-use to avoid defining duplicated
+  /// empty messages in your APIs. A typical example is to use it as the request
+  /// or the response type of an API method. For instance:
   ///
-  ///      service Foo {
-  ///        rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
-  ///      }
+  ///     service Foo {
+  ///       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+  ///     }
   ///
-  ///  The JSON representation for `Empty` is empty JSON object `{}`.
+  /// The JSON representation for `Empty` is empty JSON object `{}`.
   /// </summary>
   public sealed partial class Empty : pb::IMessage<Empty> {
     private static readonly pb::MessageParser<Empty> _parser = new pb::MessageParser<Empty>(() => new Empty());

+ 190 - 190
csharp/src/Google.Protobuf/WellKnownTypes/FieldMask.cs

@@ -39,206 +39,206 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Messages
   /// <summary>
-  ///  `FieldMask` represents a set of symbolic field paths, for example:
-  ///
-  ///      paths: "f.a"
-  ///      paths: "f.b.d"
-  ///
-  ///  Here `f` represents a field in some root message, `a` and `b`
-  ///  fields in the message found in `f`, and `d` a field found in the
-  ///  message in `f.b`.
-  ///
-  ///  Field masks are used to specify a subset of fields that should be
-  ///  returned by a get operation or modified by an update operation.
-  ///  Field masks also have a custom JSON encoding (see below).
-  ///
-  ///  # Field Masks in Projections
-  ///
-  ///  When used in the context of a projection, a response message or
-  ///  sub-message is filtered by the API to only contain those fields as
-  ///  specified in the mask. For example, if the mask in the previous
-  ///  example is applied to a response message as follows:
-  ///
-  ///      f {
-  ///        a : 22
-  ///        b {
-  ///          d : 1
-  ///          x : 2
-  ///        }
-  ///        y : 13
-  ///      }
-  ///      z: 8
-  ///
-  ///  The result will not contain specific values for fields x,y and z
-  ///  (their value will be set to the default, and omitted in proto text
-  ///  output):
-  ///
-  ///      f {
-  ///        a : 22
-  ///        b {
-  ///          d : 1
-  ///        }
-  ///      }
-  ///
-  ///  A repeated field is not allowed except at the last position of a
-  ///  paths string.
-  ///
-  ///  If a FieldMask object is not present in a get operation, the
-  ///  operation applies to all fields (as if a FieldMask of all fields
-  ///  had been specified).
-  ///
-  ///  Note that a field mask does not necessarily apply to the
-  ///  top-level response message. In case of a REST get operation, the
-  ///  field mask applies directly to the response, but in case of a REST
-  ///  list operation, the mask instead applies to each individual message
-  ///  in the returned resource list. In case of a REST custom method,
-  ///  other definitions may be used. Where the mask applies will be
-  ///  clearly documented together with its declaration in the API.  In
-  ///  any case, the effect on the returned resource/resources is required
-  ///  behavior for APIs.
-  ///
-  ///  # Field Masks in Update Operations
-  ///
-  ///  A field mask in update operations specifies which fields of the
-  ///  targeted resource are going to be updated. The API is required
-  ///  to only change the values of the fields as specified in the mask
-  ///  and leave the others untouched. If a resource is passed in to
-  ///  describe the updated values, the API ignores the values of all
-  ///  fields not covered by the mask.
-  ///
-  ///  If a repeated field is specified for an update operation, the existing
-  ///  repeated values in the target resource will be overwritten by the new values.
-  ///  Note that a repeated field is only allowed in the last position of a `paths`
-  ///  string.
-  ///
-  ///  If a sub-message is specified in the last position of the field mask for an
-  ///  update operation, then the existing sub-message in the target resource is
-  ///  overwritten. Given the target message:
-  ///
-  ///      f {
-  ///        b {
-  ///          d : 1
-  ///          x : 2
-  ///        }
-  ///        c : 1
-  ///      }
-  ///
-  ///  And an update message:
-  ///
-  ///      f {
-  ///        b {
-  ///          d : 10
-  ///        }
-  ///      }
-  ///
-  ///  then if the field mask is:
-  ///
-  ///   paths: "f.b"
-  ///
-  ///  then the result will be:
-  ///
-  ///      f {
-  ///        b {
-  ///          d : 10
-  ///        }
-  ///        c : 1
-  ///      }
-  ///
-  ///  However, if the update mask was:
-  ///
-  ///   paths: "f.b.d"
-  ///
-  ///  then the result would be:
-  ///
-  ///      f {
-  ///        b {
-  ///          d : 10
-  ///          x : 2
-  ///        }
-  ///        c : 1
-  ///      }
-  ///
-  ///  In order to reset a field's value to the default, the field must
-  ///  be in the mask and set to the default value in the provided resource.
-  ///  Hence, in order to reset all fields of a resource, provide a default
-  ///  instance of the resource and set all fields in the mask, or do
-  ///  not provide a mask as described below.
-  ///
-  ///  If a field mask is not present on update, the operation applies to
-  ///  all fields (as if a field mask of all fields has been specified).
-  ///  Note that in the presence of schema evolution, this may mean that
-  ///  fields the client does not know and has therefore not filled into
-  ///  the request will be reset to their default. If this is unwanted
-  ///  behavior, a specific service may require a client to always specify
-  ///  a field mask, producing an error if not.
-  ///
-  ///  As with get operations, the location of the resource which
-  ///  describes the updated values in the request message depends on the
-  ///  operation kind. In any case, the effect of the field mask is
-  ///  required to be honored by the API.
-  ///
-  ///  ## Considerations for HTTP REST
-  ///
-  ///  The HTTP kind of an update operation which uses a field mask must
-  ///  be set to PATCH instead of PUT in order to satisfy HTTP semantics
-  ///  (PUT must only be used for full updates).
-  ///
-  ///  # JSON Encoding of Field Masks
-  ///
-  ///  In JSON, a field mask is encoded as a single string where paths are
-  ///  separated by a comma. Fields name in each path are converted
-  ///  to/from lower-camel naming conventions.
-  ///
-  ///  As an example, consider the following message declarations:
-  ///
-  ///      message Profile {
-  ///        User user = 1;
-  ///        Photo photo = 2;
-  ///      }
-  ///      message User {
-  ///        string display_name = 1;
-  ///        string address = 2;
-  ///      }
-  ///
-  ///  In proto a field mask for `Profile` may look as such:
+  /// `FieldMask` represents a set of symbolic field paths, for example:
+  ///
+  ///     paths: "f.a"
+  ///     paths: "f.b.d"
+  ///
+  /// Here `f` represents a field in some root message, `a` and `b`
+  /// fields in the message found in `f`, and `d` a field found in the
+  /// message in `f.b`.
+  ///
+  /// Field masks are used to specify a subset of fields that should be
+  /// returned by a get operation or modified by an update operation.
+  /// Field masks also have a custom JSON encoding (see below).
+  ///
+  /// # Field Masks in Projections
+  ///
+  /// When used in the context of a projection, a response message or
+  /// sub-message is filtered by the API to only contain those fields as
+  /// specified in the mask. For example, if the mask in the previous
+  /// example is applied to a response message as follows:
+  ///
+  ///     f {
+  ///       a : 22
+  ///       b {
+  ///         d : 1
+  ///         x : 2
+  ///       }
+  ///       y : 13
+  ///     }
+  ///     z: 8
+  ///
+  /// The result will not contain specific values for fields x,y and z
+  /// (their value will be set to the default, and omitted in proto text
+  /// output):
+  ///
+  ///     f {
+  ///       a : 22
+  ///       b {
+  ///         d : 1
+  ///       }
+  ///     }
+  ///
+  /// A repeated field is not allowed except at the last position of a
+  /// paths string.
+  ///
+  /// If a FieldMask object is not present in a get operation, the
+  /// operation applies to all fields (as if a FieldMask of all fields
+  /// had been specified).
+  ///
+  /// Note that a field mask does not necessarily apply to the
+  /// top-level response message. In case of a REST get operation, the
+  /// field mask applies directly to the response, but in case of a REST
+  /// list operation, the mask instead applies to each individual message
+  /// in the returned resource list. In case of a REST custom method,
+  /// other definitions may be used. Where the mask applies will be
+  /// clearly documented together with its declaration in the API.  In
+  /// any case, the effect on the returned resource/resources is required
+  /// behavior for APIs.
+  ///
+  /// # Field Masks in Update Operations
+  ///
+  /// A field mask in update operations specifies which fields of the
+  /// targeted resource are going to be updated. The API is required
+  /// to only change the values of the fields as specified in the mask
+  /// and leave the others untouched. If a resource is passed in to
+  /// describe the updated values, the API ignores the values of all
+  /// fields not covered by the mask.
+  ///
+  /// If a repeated field is specified for an update operation, the existing
+  /// repeated values in the target resource will be overwritten by the new values.
+  /// Note that a repeated field is only allowed in the last position of a `paths`
+  /// string.
+  ///
+  /// If a sub-message is specified in the last position of the field mask for an
+  /// update operation, then the existing sub-message in the target resource is
+  /// overwritten. Given the target message:
+  ///
+  ///     f {
+  ///       b {
+  ///         d : 1
+  ///         x : 2
+  ///       }
+  ///       c : 1
+  ///     }
+  ///
+  /// And an update message:
+  ///
+  ///     f {
+  ///       b {
+  ///         d : 10
+  ///       }
+  ///     }
+  ///
+  /// then if the field mask is:
+  ///
+  ///  paths: "f.b"
+  ///
+  /// then the result will be:
+  ///
+  ///     f {
+  ///       b {
+  ///         d : 10
+  ///       }
+  ///       c : 1
+  ///     }
+  ///
+  /// However, if the update mask was:
+  ///
+  ///  paths: "f.b.d"
+  ///
+  /// then the result would be:
+  ///
+  ///     f {
+  ///       b {
+  ///         d : 10
+  ///         x : 2
+  ///       }
+  ///       c : 1
+  ///     }
+  ///
+  /// In order to reset a field's value to the default, the field must
+  /// be in the mask and set to the default value in the provided resource.
+  /// Hence, in order to reset all fields of a resource, provide a default
+  /// instance of the resource and set all fields in the mask, or do
+  /// not provide a mask as described below.
+  ///
+  /// If a field mask is not present on update, the operation applies to
+  /// all fields (as if a field mask of all fields has been specified).
+  /// Note that in the presence of schema evolution, this may mean that
+  /// fields the client does not know and has therefore not filled into
+  /// the request will be reset to their default. If this is unwanted
+  /// behavior, a specific service may require a client to always specify
+  /// a field mask, producing an error if not.
+  ///
+  /// As with get operations, the location of the resource which
+  /// describes the updated values in the request message depends on the
+  /// operation kind. In any case, the effect of the field mask is
+  /// required to be honored by the API.
+  ///
+  /// ## Considerations for HTTP REST
+  ///
+  /// The HTTP kind of an update operation which uses a field mask must
+  /// be set to PATCH instead of PUT in order to satisfy HTTP semantics
+  /// (PUT must only be used for full updates).
+  ///
+  /// # JSON Encoding of Field Masks
+  ///
+  /// In JSON, a field mask is encoded as a single string where paths are
+  /// separated by a comma. Fields name in each path are converted
+  /// to/from lower-camel naming conventions.
+  ///
+  /// As an example, consider the following message declarations:
+  ///
+  ///     message Profile {
+  ///       User user = 1;
+  ///       Photo photo = 2;
+  ///     }
+  ///     message User {
+  ///       string display_name = 1;
+  ///       string address = 2;
+  ///     }
+  ///
+  /// In proto a field mask for `Profile` may look as such:
   ///
-  ///      mask {
-  ///        paths: "user.display_name"
-  ///        paths: "photo"
-  ///      }
+  ///     mask {
+  ///       paths: "user.display_name"
+  ///       paths: "photo"
+  ///     }
   ///
-  ///  In JSON, the same mask is represented as below:
+  /// In JSON, the same mask is represented as below:
   ///
-  ///      {
-  ///        mask: "user.displayName,photo"
-  ///      }
+  ///     {
+  ///       mask: "user.displayName,photo"
+  ///     }
   ///
-  ///  # Field Masks and Oneof Fields
+  /// # Field Masks and Oneof Fields
   ///
-  ///  Field masks treat fields in oneofs just as regular fields. Consider the
-  ///  following message:
+  /// Field masks treat fields in oneofs just as regular fields. Consider the
+  /// following message:
   ///
-  ///      message SampleMessage {
-  ///        oneof test_oneof {
-  ///          string name = 4;
-  ///          SubMessage sub_message = 9;
-  ///        }
-  ///      }
+  ///     message SampleMessage {
+  ///       oneof test_oneof {
+  ///         string name = 4;
+  ///         SubMessage sub_message = 9;
+  ///       }
+  ///     }
   ///
-  ///  The field mask can be:
+  /// The field mask can be:
   ///
-  ///      mask {
-  ///        paths: "name"
-  ///      }
+  ///     mask {
+  ///       paths: "name"
+  ///     }
   ///
-  ///  Or:
+  /// Or:
   ///
-  ///      mask {
-  ///        paths: "sub_message"
-  ///      }
+  ///     mask {
+  ///       paths: "sub_message"
+  ///     }
   ///
-  ///  Note that oneof type names ("test_oneof" in this case) cannot be used in
-  ///  paths.
+  /// Note that oneof type names ("test_oneof" in this case) cannot be used in
+  /// paths.
   /// </summary>
   public sealed partial class FieldMask : pb::IMessage<FieldMask> {
     private static readonly pb::MessageParser<FieldMask> _parser = new pb::MessageParser<FieldMask>(() => new FieldMask());
@@ -278,7 +278,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForString(10);
     private readonly pbc::RepeatedField<string> paths_ = new pbc::RepeatedField<string>();
     /// <summary>
-    ///  The set of field mask paths.
+    /// The set of field mask paths.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<string> Paths {

+ 4 - 4
csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs

@@ -39,8 +39,8 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Messages
   /// <summary>
-  ///  `SourceContext` represents information about the source of a
-  ///  protobuf element, like the file in which it is defined.
+  /// `SourceContext` represents information about the source of a
+  /// protobuf element, like the file in which it is defined.
   /// </summary>
   public sealed partial class SourceContext : pb::IMessage<SourceContext> {
     private static readonly pb::MessageParser<SourceContext> _parser = new pb::MessageParser<SourceContext>(() => new SourceContext());
@@ -78,8 +78,8 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int FileNameFieldNumber = 1;
     private string fileName_ = "";
     /// <summary>
-    ///  The path-qualified name of the .proto file that contained the associated
-    ///  protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+    /// The path-qualified name of the .proto file that contained the associated
+    /// protobuf element.  For example: `"google/protobuf/source_context.proto"`.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string FileName {

+ 26 - 26
csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs

@@ -50,14 +50,14 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Enums
   /// <summary>
-  ///  `NullValue` is a singleton enumeration to represent the null value for the
-  ///  `Value` type union.
+  /// `NullValue` is a singleton enumeration to represent the null value for the
+  /// `Value` type union.
   ///
-  ///   The JSON representation for `NullValue` is JSON `null`.
+  ///  The JSON representation for `NullValue` is JSON `null`.
   /// </summary>
   public enum NullValue {
     /// <summary>
-    ///  Null value.
+    /// Null value.
     /// </summary>
     [pbr::OriginalName("NULL_VALUE")] NullValue = 0,
   }
@@ -66,14 +66,14 @@ namespace Google.Protobuf.WellKnownTypes {
 
   #region Messages
   /// <summary>
-  ///  `Struct` represents a structured data value, consisting of fields
-  ///  which map to dynamically typed values. In some languages, `Struct`
-  ///  might be supported by a native representation. For example, in
-  ///  scripting languages like JS a struct is represented as an
-  ///  object. The details of that representation are described together
-  ///  with the proto support for the language.
+  /// `Struct` represents a structured data value, consisting of fields
+  /// which map to dynamically typed values. In some languages, `Struct`
+  /// might be supported by a native representation. For example, in
+  /// scripting languages like JS a struct is represented as an
+  /// object. The details of that representation are described together
+  /// with the proto support for the language.
   ///
-  ///  The JSON representation for `Struct` is JSON object.
+  /// The JSON representation for `Struct` is JSON object.
   /// </summary>
   public sealed partial class Struct : pb::IMessage<Struct> {
     private static readonly pb::MessageParser<Struct> _parser = new pb::MessageParser<Struct>(() => new Struct());
@@ -113,7 +113,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = new pbc::MapField<string, global::Google.Protobuf.WellKnownTypes.Value>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForMessage(18, global::Google.Protobuf.WellKnownTypes.Value.Parser), 10);
     private readonly pbc::MapField<string, global::Google.Protobuf.WellKnownTypes.Value> fields_ = new pbc::MapField<string, global::Google.Protobuf.WellKnownTypes.Value>();
     /// <summary>
-    ///  Unordered map of dynamically typed values.
+    /// Unordered map of dynamically typed values.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::MapField<string, global::Google.Protobuf.WellKnownTypes.Value> Fields {
@@ -188,12 +188,12 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  `Value` represents a dynamically typed value which can be either
-  ///  null, a number, a string, a boolean, a recursive struct value, or a
-  ///  list of values. A producer of value is expected to set one of that
-  ///  variants, absence of any variant indicates an error.
+  /// `Value` represents a dynamically typed value which can be either
+  /// null, a number, a string, a boolean, a recursive struct value, or a
+  /// list of values. A producer of value is expected to set one of that
+  /// variants, absence of any variant indicates an error.
   ///
-  ///  The JSON representation for `Value` is JSON value.
+  /// The JSON representation for `Value` is JSON value.
   /// </summary>
   public sealed partial class Value : pb::IMessage<Value> {
     private static readonly pb::MessageParser<Value> _parser = new pb::MessageParser<Value>(() => new Value());
@@ -250,7 +250,7 @@ namespace Google.Protobuf.WellKnownTypes {
     /// <summary>Field number for the "null_value" field.</summary>
     public const int NullValueFieldNumber = 1;
     /// <summary>
-    ///  Represents a null value.
+    /// Represents a null value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.NullValue NullValue {
@@ -264,7 +264,7 @@ namespace Google.Protobuf.WellKnownTypes {
     /// <summary>Field number for the "number_value" field.</summary>
     public const int NumberValueFieldNumber = 2;
     /// <summary>
-    ///  Represents a double value.
+    /// Represents a double value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public double NumberValue {
@@ -278,7 +278,7 @@ namespace Google.Protobuf.WellKnownTypes {
     /// <summary>Field number for the "string_value" field.</summary>
     public const int StringValueFieldNumber = 3;
     /// <summary>
-    ///  Represents a string value.
+    /// Represents a string value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string StringValue {
@@ -292,7 +292,7 @@ namespace Google.Protobuf.WellKnownTypes {
     /// <summary>Field number for the "bool_value" field.</summary>
     public const int BoolValueFieldNumber = 4;
     /// <summary>
-    ///  Represents a boolean value.
+    /// Represents a boolean value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public bool BoolValue {
@@ -306,7 +306,7 @@ namespace Google.Protobuf.WellKnownTypes {
     /// <summary>Field number for the "struct_value" field.</summary>
     public const int StructValueFieldNumber = 5;
     /// <summary>
-    ///  Represents a structured value.
+    /// Represents a structured value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Struct StructValue {
@@ -320,7 +320,7 @@ namespace Google.Protobuf.WellKnownTypes {
     /// <summary>Field number for the "list_value" field.</summary>
     public const int ListValueFieldNumber = 6;
     /// <summary>
-    ///  Represents a repeated `Value`.
+    /// Represents a repeated `Value`.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.ListValue ListValue {
@@ -525,9 +525,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  `ListValue` is a wrapper around a repeated field of values.
+  /// `ListValue` is a wrapper around a repeated field of values.
   ///
-  ///  The JSON representation for `ListValue` is JSON array.
+  /// The JSON representation for `ListValue` is JSON array.
   /// </summary>
   public sealed partial class ListValue : pb::IMessage<ListValue> {
     private static readonly pb::MessageParser<ListValue> _parser = new pb::MessageParser<ListValue>(() => new ListValue());
@@ -567,7 +567,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.WellKnownTypes.Value.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Value> values_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Value>();
     /// <summary>
-    ///  Repeated field of dynamically typed values.
+    /// Repeated field of dynamically typed values.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Value> Values {

+ 44 - 44
csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs

@@ -39,56 +39,56 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Messages
   /// <summary>
-  ///  A Timestamp represents a point in time independent of any time zone
-  ///  or calendar, represented as seconds and fractions of seconds at
-  ///  nanosecond resolution in UTC Epoch time. It is encoded using the
-  ///  Proleptic Gregorian Calendar which extends the Gregorian calendar
-  ///  backwards to year one. It is encoded assuming all minutes are 60
-  ///  seconds long, i.e. leap seconds are "smeared" so that no leap second
-  ///  table is needed for interpretation. Range is from
-  ///  0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
-  ///  By restricting to that range, we ensure that we can convert to
-  ///  and from  RFC 3339 date strings.
-  ///  See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
+  /// A Timestamp represents a point in time independent of any time zone
+  /// or calendar, represented as seconds and fractions of seconds at
+  /// nanosecond resolution in UTC Epoch time. It is encoded using the
+  /// Proleptic Gregorian Calendar which extends the Gregorian calendar
+  /// backwards to year one. It is encoded assuming all minutes are 60
+  /// seconds long, i.e. leap seconds are "smeared" so that no leap second
+  /// table is needed for interpretation. Range is from
+  /// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
+  /// By restricting to that range, we ensure that we can convert to
+  /// and from  RFC 3339 date strings.
+  /// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
   ///
-  ///  Example 1: Compute Timestamp from POSIX `time()`.
+  /// Example 1: Compute Timestamp from POSIX `time()`.
   ///
-  ///      Timestamp timestamp;
-  ///      timestamp.set_seconds(time(NULL));
-  ///      timestamp.set_nanos(0);
+  ///     Timestamp timestamp;
+  ///     timestamp.set_seconds(time(NULL));
+  ///     timestamp.set_nanos(0);
   ///
-  ///  Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+  /// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
   ///
-  ///      struct timeval tv;
-  ///      gettimeofday(&amp;tv, NULL);
+  ///     struct timeval tv;
+  ///     gettimeofday(&amp;tv, NULL);
   ///
-  ///      Timestamp timestamp;
-  ///      timestamp.set_seconds(tv.tv_sec);
-  ///      timestamp.set_nanos(tv.tv_usec * 1000);
+  ///     Timestamp timestamp;
+  ///     timestamp.set_seconds(tv.tv_sec);
+  ///     timestamp.set_nanos(tv.tv_usec * 1000);
   ///
-  ///  Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+  /// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
   ///
-  ///      FILETIME ft;
-  ///      GetSystemTimeAsFileTime(&amp;ft);
-  ///      UINT64 ticks = (((UINT64)ft.dwHighDateTime) &lt;&lt; 32) | ft.dwLowDateTime;
+  ///     FILETIME ft;
+  ///     GetSystemTimeAsFileTime(&amp;ft);
+  ///     UINT64 ticks = (((UINT64)ft.dwHighDateTime) &lt;&lt; 32) | ft.dwLowDateTime;
   ///
-  ///      // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
-  ///      // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
-  ///      Timestamp timestamp;
-  ///      timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
-  ///      timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+  ///     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+  ///     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+  ///     Timestamp timestamp;
+  ///     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+  ///     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
   ///
-  ///  Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+  /// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
   ///
-  ///      long millis = System.currentTimeMillis();
+  ///     long millis = System.currentTimeMillis();
   ///
-  ///      Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
-  ///          .setNanos((int) ((millis % 1000) * 1000000)).build();
+  ///     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+  ///         .setNanos((int) ((millis % 1000) * 1000000)).build();
   ///
-  ///  Example 5: Compute Timestamp from current time in Python.
+  /// Example 5: Compute Timestamp from current time in Python.
   ///
-  ///      timestamp = Timestamp()
-  ///      timestamp.GetCurrentTime()
+  ///     timestamp = Timestamp()
+  ///     timestamp.GetCurrentTime()
   /// </summary>
   public sealed partial class Timestamp : pb::IMessage<Timestamp> {
     private static readonly pb::MessageParser<Timestamp> _parser = new pb::MessageParser<Timestamp>(() => new Timestamp());
@@ -127,9 +127,9 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SecondsFieldNumber = 1;
     private long seconds_;
     /// <summary>
-    ///  Represents seconds of UTC time since Unix epoch
-    ///  1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
-    ///  9999-12-31T23:59:59Z inclusive.
+    /// Represents seconds of UTC time since Unix epoch
+    /// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+    /// 9999-12-31T23:59:59Z inclusive.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public long Seconds {
@@ -143,10 +143,10 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NanosFieldNumber = 2;
     private int nanos_;
     /// <summary>
-    ///  Non-negative fractions of a second at nanosecond resolution. Negative
-    ///  second values with fractions must still have non-negative nanos values
-    ///  that count forward in time. Must be from 0 to 999,999,999
-    ///  inclusive.
+    /// Non-negative fractions of a second at nanosecond resolution. Negative
+    /// second values with fractions must still have non-negative nanos values
+    /// that count forward in time. Must be from 0 to 999,999,999
+    /// inclusive.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Nanos {

+ 62 - 62
csharp/src/Google.Protobuf/WellKnownTypes/Type.cs

@@ -73,15 +73,15 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Enums
   /// <summary>
-  ///  The syntax in which a protocol buffer element is defined.
+  /// The syntax in which a protocol buffer element is defined.
   /// </summary>
   public enum Syntax {
     /// <summary>
-    ///  Syntax `proto2`.
+    /// Syntax `proto2`.
     /// </summary>
     [pbr::OriginalName("SYNTAX_PROTO2")] Proto2 = 0,
     /// <summary>
-    ///  Syntax `proto3`.
+    /// Syntax `proto3`.
     /// </summary>
     [pbr::OriginalName("SYNTAX_PROTO3")] Proto3 = 1,
   }
@@ -90,7 +90,7 @@ namespace Google.Protobuf.WellKnownTypes {
 
   #region Messages
   /// <summary>
-  ///  A protocol buffer message type.
+  /// A protocol buffer message type.
   /// </summary>
   public sealed partial class Type : pb::IMessage<Type> {
     private static readonly pb::MessageParser<Type> _parser = new pb::MessageParser<Type>(() => new Type());
@@ -133,7 +133,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NameFieldNumber = 1;
     private string name_ = "";
     /// <summary>
-    ///  The fully qualified message name.
+    /// The fully qualified message name.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {
@@ -149,7 +149,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.WellKnownTypes.Field.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Field> fields_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Field>();
     /// <summary>
-    ///  The list of fields.
+    /// The list of fields.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Field> Fields {
@@ -162,7 +162,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForString(26);
     private readonly pbc::RepeatedField<string> oneofs_ = new pbc::RepeatedField<string>();
     /// <summary>
-    ///  The list of types appearing in `oneof` definitions in this type.
+    /// The list of types appearing in `oneof` definitions in this type.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<string> Oneofs {
@@ -175,7 +175,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.WellKnownTypes.Option.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> options_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option>();
     /// <summary>
-    ///  The protocol buffer options.
+    /// The protocol buffer options.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> Options {
@@ -186,7 +186,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SourceContextFieldNumber = 5;
     private global::Google.Protobuf.WellKnownTypes.SourceContext sourceContext_;
     /// <summary>
-    ///  The source context.
+    /// The source context.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.SourceContext SourceContext {
@@ -200,7 +200,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SyntaxFieldNumber = 6;
     private global::Google.Protobuf.WellKnownTypes.Syntax syntax_ = 0;
     /// <summary>
-    ///  The source syntax.
+    /// The source syntax.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Syntax Syntax {
@@ -350,7 +350,7 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  A single field of a message type.
+  /// A single field of a message type.
   /// </summary>
   public sealed partial class Field : pb::IMessage<Field> {
     private static readonly pb::MessageParser<Field> _parser = new pb::MessageParser<Field>(() => new Field());
@@ -397,7 +397,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int KindFieldNumber = 1;
     private global::Google.Protobuf.WellKnownTypes.Field.Types.Kind kind_ = 0;
     /// <summary>
-    ///  The field type.
+    /// The field type.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Field.Types.Kind Kind {
@@ -411,7 +411,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int CardinalityFieldNumber = 2;
     private global::Google.Protobuf.WellKnownTypes.Field.Types.Cardinality cardinality_ = 0;
     /// <summary>
-    ///  The field cardinality.
+    /// The field cardinality.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Field.Types.Cardinality Cardinality {
@@ -425,7 +425,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NumberFieldNumber = 3;
     private int number_;
     /// <summary>
-    ///  The field number.
+    /// The field number.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Number {
@@ -439,7 +439,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NameFieldNumber = 4;
     private string name_ = "";
     /// <summary>
-    ///  The field name.
+    /// The field name.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {
@@ -453,8 +453,8 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int TypeUrlFieldNumber = 6;
     private string typeUrl_ = "";
     /// <summary>
-    ///  The field type URL, without the scheme, for message or enumeration
-    ///  types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+    /// The field type URL, without the scheme, for message or enumeration
+    /// types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string TypeUrl {
@@ -468,8 +468,8 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int OneofIndexFieldNumber = 7;
     private int oneofIndex_;
     /// <summary>
-    ///  The index of the field type in `Type.oneofs`, for message or enumeration
-    ///  types. The first type has index 1; zero means the type is not in the list.
+    /// The index of the field type in `Type.oneofs`, for message or enumeration
+    /// types. The first type has index 1; zero means the type is not in the list.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int OneofIndex {
@@ -483,7 +483,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int PackedFieldNumber = 8;
     private bool packed_;
     /// <summary>
-    ///  Whether to use alternative packed wire representation.
+    /// Whether to use alternative packed wire representation.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public bool Packed {
@@ -499,7 +499,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(74, global::Google.Protobuf.WellKnownTypes.Option.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> options_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option>();
     /// <summary>
-    ///  The protocol buffer options.
+    /// The protocol buffer options.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> Options {
@@ -510,7 +510,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int JsonNameFieldNumber = 10;
     private string jsonName_ = "";
     /// <summary>
-    ///  The field JSON name.
+    /// The field JSON name.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string JsonName {
@@ -524,7 +524,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int DefaultValueFieldNumber = 11;
     private string defaultValue_ = "";
     /// <summary>
-    ///  The string value of the default value of this field. Proto2 syntax only.
+    /// The string value of the default value of this field. Proto2 syntax only.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string DefaultValue {
@@ -748,105 +748,105 @@ namespace Google.Protobuf.WellKnownTypes {
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static partial class Types {
       /// <summary>
-      ///  Basic field types.
+      /// Basic field types.
       /// </summary>
       public enum Kind {
         /// <summary>
-        ///  Field type unknown.
+        /// Field type unknown.
         /// </summary>
         [pbr::OriginalName("TYPE_UNKNOWN")] TypeUnknown = 0,
         /// <summary>
-        ///  Field type double.
+        /// Field type double.
         /// </summary>
         [pbr::OriginalName("TYPE_DOUBLE")] TypeDouble = 1,
         /// <summary>
-        ///  Field type float.
+        /// Field type float.
         /// </summary>
         [pbr::OriginalName("TYPE_FLOAT")] TypeFloat = 2,
         /// <summary>
-        ///  Field type int64.
+        /// Field type int64.
         /// </summary>
         [pbr::OriginalName("TYPE_INT64")] TypeInt64 = 3,
         /// <summary>
-        ///  Field type uint64.
+        /// Field type uint64.
         /// </summary>
         [pbr::OriginalName("TYPE_UINT64")] TypeUint64 = 4,
         /// <summary>
-        ///  Field type int32.
+        /// Field type int32.
         /// </summary>
         [pbr::OriginalName("TYPE_INT32")] TypeInt32 = 5,
         /// <summary>
-        ///  Field type fixed64.
+        /// Field type fixed64.
         /// </summary>
         [pbr::OriginalName("TYPE_FIXED64")] TypeFixed64 = 6,
         /// <summary>
-        ///  Field type fixed32.
+        /// Field type fixed32.
         /// </summary>
         [pbr::OriginalName("TYPE_FIXED32")] TypeFixed32 = 7,
         /// <summary>
-        ///  Field type bool.
+        /// Field type bool.
         /// </summary>
         [pbr::OriginalName("TYPE_BOOL")] TypeBool = 8,
         /// <summary>
-        ///  Field type string.
+        /// Field type string.
         /// </summary>
         [pbr::OriginalName("TYPE_STRING")] TypeString = 9,
         /// <summary>
-        ///  Field type group. Proto2 syntax only, and deprecated.
+        /// Field type group. Proto2 syntax only, and deprecated.
         /// </summary>
         [pbr::OriginalName("TYPE_GROUP")] TypeGroup = 10,
         /// <summary>
-        ///  Field type message.
+        /// Field type message.
         /// </summary>
         [pbr::OriginalName("TYPE_MESSAGE")] TypeMessage = 11,
         /// <summary>
-        ///  Field type bytes.
+        /// Field type bytes.
         /// </summary>
         [pbr::OriginalName("TYPE_BYTES")] TypeBytes = 12,
         /// <summary>
-        ///  Field type uint32.
+        /// Field type uint32.
         /// </summary>
         [pbr::OriginalName("TYPE_UINT32")] TypeUint32 = 13,
         /// <summary>
-        ///  Field type enum.
+        /// Field type enum.
         /// </summary>
         [pbr::OriginalName("TYPE_ENUM")] TypeEnum = 14,
         /// <summary>
-        ///  Field type sfixed32.
+        /// Field type sfixed32.
         /// </summary>
         [pbr::OriginalName("TYPE_SFIXED32")] TypeSfixed32 = 15,
         /// <summary>
-        ///  Field type sfixed64.
+        /// Field type sfixed64.
         /// </summary>
         [pbr::OriginalName("TYPE_SFIXED64")] TypeSfixed64 = 16,
         /// <summary>
-        ///  Field type sint32.
+        /// Field type sint32.
         /// </summary>
         [pbr::OriginalName("TYPE_SINT32")] TypeSint32 = 17,
         /// <summary>
-        ///  Field type sint64.
+        /// Field type sint64.
         /// </summary>
         [pbr::OriginalName("TYPE_SINT64")] TypeSint64 = 18,
       }
 
       /// <summary>
-      ///  Whether a field is optional, required, or repeated.
+      /// Whether a field is optional, required, or repeated.
       /// </summary>
       public enum Cardinality {
         /// <summary>
-        ///  For fields with unknown cardinality.
+        /// For fields with unknown cardinality.
         /// </summary>
         [pbr::OriginalName("CARDINALITY_UNKNOWN")] Unknown = 0,
         /// <summary>
-        ///  For optional fields.
+        /// For optional fields.
         /// </summary>
         [pbr::OriginalName("CARDINALITY_OPTIONAL")] Optional = 1,
         /// <summary>
-        ///  For required fields. Proto2 syntax only.
+        /// For required fields. Proto2 syntax only.
         /// </summary>
         [pbr::OriginalName("CARDINALITY_REQUIRED")] Required = 2,
         /// <summary>
-        ///  For repeated fields.
+        /// For repeated fields.
         /// </summary>
         [pbr::OriginalName("CARDINALITY_REPEATED")] Repeated = 3,
       }
@@ -857,7 +857,7 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Enum type definition.
+  /// Enum type definition.
   /// </summary>
   public sealed partial class Enum : pb::IMessage<Enum> {
     private static readonly pb::MessageParser<Enum> _parser = new pb::MessageParser<Enum>(() => new Enum());
@@ -899,7 +899,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NameFieldNumber = 1;
     private string name_ = "";
     /// <summary>
-    ///  Enum type name.
+    /// Enum type name.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {
@@ -915,7 +915,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.WellKnownTypes.EnumValue.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.EnumValue> enumvalue_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.EnumValue>();
     /// <summary>
-    ///  Enum value definitions.
+    /// Enum value definitions.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.EnumValue> Enumvalue {
@@ -928,7 +928,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.WellKnownTypes.Option.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> options_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option>();
     /// <summary>
-    ///  Protocol buffer options.
+    /// Protocol buffer options.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> Options {
@@ -939,7 +939,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SourceContextFieldNumber = 4;
     private global::Google.Protobuf.WellKnownTypes.SourceContext sourceContext_;
     /// <summary>
-    ///  The source context.
+    /// The source context.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.SourceContext SourceContext {
@@ -953,7 +953,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int SyntaxFieldNumber = 5;
     private global::Google.Protobuf.WellKnownTypes.Syntax syntax_ = 0;
     /// <summary>
-    ///  The source syntax.
+    /// The source syntax.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Syntax Syntax {
@@ -1094,7 +1094,7 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Enum value definition.
+  /// Enum value definition.
   /// </summary>
   public sealed partial class EnumValue : pb::IMessage<EnumValue> {
     private static readonly pb::MessageParser<EnumValue> _parser = new pb::MessageParser<EnumValue>(() => new EnumValue());
@@ -1134,7 +1134,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NameFieldNumber = 1;
     private string name_ = "";
     /// <summary>
-    ///  Enum value name.
+    /// Enum value name.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {
@@ -1148,7 +1148,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NumberFieldNumber = 2;
     private int number_;
     /// <summary>
-    ///  Enum value number.
+    /// Enum value number.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Number {
@@ -1164,7 +1164,7 @@ namespace Google.Protobuf.WellKnownTypes {
         = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.WellKnownTypes.Option.Parser);
     private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> options_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option>();
     /// <summary>
-    ///  Protocol buffer options.
+    /// Protocol buffer options.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> Options {
@@ -1271,8 +1271,8 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  A protocol buffer option, which can be attached to a message, field,
-  ///  enumeration, etc.
+  /// A protocol buffer option, which can be attached to a message, field,
+  /// enumeration, etc.
   /// </summary>
   public sealed partial class Option : pb::IMessage<Option> {
     private static readonly pb::MessageParser<Option> _parser = new pb::MessageParser<Option>(() => new Option());
@@ -1311,7 +1311,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int NameFieldNumber = 1;
     private string name_ = "";
     /// <summary>
-    ///  The option's name. For example, `"java_package"`.
+    /// The option's name. For example, `"java_package"`.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Name {
@@ -1325,7 +1325,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 2;
     private global::Google.Protobuf.WellKnownTypes.Any value_;
     /// <summary>
-    ///  The option's value. For example, `"com.google.protobuf"`.
+    /// The option's value. For example, `"com.google.protobuf"`.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public global::Google.Protobuf.WellKnownTypes.Any Value {

+ 27 - 27
csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs

@@ -51,9 +51,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
   #region Messages
   /// <summary>
-  ///  Wrapper message for `double`.
+  /// Wrapper message for `double`.
   ///
-  ///  The JSON representation for `DoubleValue` is JSON number.
+  /// The JSON representation for `DoubleValue` is JSON number.
   /// </summary>
   public sealed partial class DoubleValue : pb::IMessage<DoubleValue> {
     private static readonly pb::MessageParser<DoubleValue> _parser = new pb::MessageParser<DoubleValue>(() => new DoubleValue());
@@ -91,7 +91,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private double value_;
     /// <summary>
-    ///  The double value.
+    /// The double value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public double Value {
@@ -176,9 +176,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Wrapper message for `float`.
+  /// Wrapper message for `float`.
   ///
-  ///  The JSON representation for `FloatValue` is JSON number.
+  /// The JSON representation for `FloatValue` is JSON number.
   /// </summary>
   public sealed partial class FloatValue : pb::IMessage<FloatValue> {
     private static readonly pb::MessageParser<FloatValue> _parser = new pb::MessageParser<FloatValue>(() => new FloatValue());
@@ -216,7 +216,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private float value_;
     /// <summary>
-    ///  The float value.
+    /// The float value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public float Value {
@@ -301,9 +301,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Wrapper message for `int64`.
+  /// Wrapper message for `int64`.
   ///
-  ///  The JSON representation for `Int64Value` is JSON string.
+  /// The JSON representation for `Int64Value` is JSON string.
   /// </summary>
   public sealed partial class Int64Value : pb::IMessage<Int64Value> {
     private static readonly pb::MessageParser<Int64Value> _parser = new pb::MessageParser<Int64Value>(() => new Int64Value());
@@ -341,7 +341,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private long value_;
     /// <summary>
-    ///  The int64 value.
+    /// The int64 value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public long Value {
@@ -426,9 +426,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Wrapper message for `uint64`.
+  /// Wrapper message for `uint64`.
   ///
-  ///  The JSON representation for `UInt64Value` is JSON string.
+  /// The JSON representation for `UInt64Value` is JSON string.
   /// </summary>
   public sealed partial class UInt64Value : pb::IMessage<UInt64Value> {
     private static readonly pb::MessageParser<UInt64Value> _parser = new pb::MessageParser<UInt64Value>(() => new UInt64Value());
@@ -466,7 +466,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private ulong value_;
     /// <summary>
-    ///  The uint64 value.
+    /// The uint64 value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public ulong Value {
@@ -551,9 +551,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Wrapper message for `int32`.
+  /// Wrapper message for `int32`.
   ///
-  ///  The JSON representation for `Int32Value` is JSON number.
+  /// The JSON representation for `Int32Value` is JSON number.
   /// </summary>
   public sealed partial class Int32Value : pb::IMessage<Int32Value> {
     private static readonly pb::MessageParser<Int32Value> _parser = new pb::MessageParser<Int32Value>(() => new Int32Value());
@@ -591,7 +591,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private int value_;
     /// <summary>
-    ///  The int32 value.
+    /// The int32 value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Value {
@@ -676,9 +676,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Wrapper message for `uint32`.
+  /// Wrapper message for `uint32`.
   ///
-  ///  The JSON representation for `UInt32Value` is JSON number.
+  /// The JSON representation for `UInt32Value` is JSON number.
   /// </summary>
   public sealed partial class UInt32Value : pb::IMessage<UInt32Value> {
     private static readonly pb::MessageParser<UInt32Value> _parser = new pb::MessageParser<UInt32Value>(() => new UInt32Value());
@@ -716,7 +716,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private uint value_;
     /// <summary>
-    ///  The uint32 value.
+    /// The uint32 value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public uint Value {
@@ -801,9 +801,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Wrapper message for `bool`.
+  /// Wrapper message for `bool`.
   ///
-  ///  The JSON representation for `BoolValue` is JSON `true` and `false`.
+  /// The JSON representation for `BoolValue` is JSON `true` and `false`.
   /// </summary>
   public sealed partial class BoolValue : pb::IMessage<BoolValue> {
     private static readonly pb::MessageParser<BoolValue> _parser = new pb::MessageParser<BoolValue>(() => new BoolValue());
@@ -841,7 +841,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private bool value_;
     /// <summary>
-    ///  The bool value.
+    /// The bool value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public bool Value {
@@ -926,9 +926,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Wrapper message for `string`.
+  /// Wrapper message for `string`.
   ///
-  ///  The JSON representation for `StringValue` is JSON string.
+  /// The JSON representation for `StringValue` is JSON string.
   /// </summary>
   public sealed partial class StringValue : pb::IMessage<StringValue> {
     private static readonly pb::MessageParser<StringValue> _parser = new pb::MessageParser<StringValue>(() => new StringValue());
@@ -966,7 +966,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private string value_ = "";
     /// <summary>
-    ///  The string value.
+    /// The string value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public string Value {
@@ -1051,9 +1051,9 @@ namespace Google.Protobuf.WellKnownTypes {
   }
 
   /// <summary>
-  ///  Wrapper message for `bytes`.
+  /// Wrapper message for `bytes`.
   ///
-  ///  The JSON representation for `BytesValue` is JSON string.
+  /// The JSON representation for `BytesValue` is JSON string.
   /// </summary>
   public sealed partial class BytesValue : pb::IMessage<BytesValue> {
     private static readonly pb::MessageParser<BytesValue> _parser = new pb::MessageParser<BytesValue>(() => new BytesValue());
@@ -1091,7 +1091,7 @@ namespace Google.Protobuf.WellKnownTypes {
     public const int ValueFieldNumber = 1;
     private pb::ByteString value_ = pb::ByteString.Empty;
     /// <summary>
-    ///  The bytes value.
+    /// The bytes value.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pb::ByteString Value {

+ 1 - 1
src/google/protobuf/compiler/csharp/csharp_doc_comment.cc

@@ -74,7 +74,7 @@ void WriteDocCommentBodyImpl(io::Printer* printer, SourceLocation location) {
                 printer->Print("///\n");
             }
             last_was_empty = false;
-            printer->Print("/// $line$\n", "line", *it);
+            printer->Print("///$line$\n", "line", *it);
         }
     }
     printer->Print("/// </summary>\n");

Some files were not shown because too many files changed in this diff