merged issue-22
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
index aefa95e..4784140 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
@@ -224,7 +224,7 @@
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
public static Builder CreateBuilder(A prototype) {
- return (Builder) new Builder().MergeFrom(prototype);
+ return new Builder(prototype);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -234,21 +234,48 @@
protected override Builder ThisBuilder {
get { return this; }
}
- public Builder() {}
+ public Builder() {
+ result = DefaultInstance ?? new A();
+ builderIsReadOnly = result == DefaultInstance;
+ }
+ internal Builder(A cloneFrom) {
+ result = cloneFrom;
+ builderIsReadOnly = true;
+ }
- A result = new A();
+ bool builderIsReadOnly;
+ A result;
+
+ private A PrepareBuilder() {
+ if (builderIsReadOnly) {
+ A original = result;
+ result = new A();
+ builderIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
protected override A MessageBeingBuilt {
- get { return result; }
+ get { return PrepareBuilder(); }
}
public override Builder Clear() {
- result = new A();
+ result = DefaultInstance ?? new A();
+ builderIsReadOnly = true;
return this;
}
public override Builder Clone() {
- return new Builder().MergeFrom(result);
+ if (builderIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
}
public override pbd::MessageDescriptor DescriptorForType {
@@ -260,12 +287,11 @@
}
public override A BuildPartial() {
- if (result == null) {
- throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ if (builderIsReadOnly) {
+ return result;
}
- A returnMe = result;
- result = null;
- return returnMe;
+ builderIsReadOnly = true;
+ return result;
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -279,6 +305,7 @@
public override Builder MergeFrom(A other) {
if (other == global::UnitTest.Issues.TestProtos.A.DefaultInstance) return this;
+ PrepareBuilder();
if (other.HasA_) {
A_ = other.A_;
}
@@ -291,6 +318,7 @@
}
public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
pb::UnknownFieldSet.Builder unknownFields = null;
uint tag;
string field_name;
@@ -346,11 +374,13 @@
set { SetA_(value); }
}
public Builder SetA_(int value) {
+ PrepareBuilder();
result.hasA_ = true;
result.a_ = value;
return this;
}
public Builder ClearA_() {
+ PrepareBuilder();
result.hasA_ = false;
result.a_ = 0;
return this;
@@ -464,7 +494,7 @@
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
public static Builder CreateBuilder(B prototype) {
- return (Builder) new Builder().MergeFrom(prototype);
+ return new Builder(prototype);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -474,21 +504,48 @@
protected override Builder ThisBuilder {
get { return this; }
}
- public Builder() {}
+ public Builder() {
+ result = DefaultInstance ?? new B();
+ builderIsReadOnly = result == DefaultInstance;
+ }
+ internal Builder(B cloneFrom) {
+ result = cloneFrom;
+ builderIsReadOnly = true;
+ }
- B result = new B();
+ bool builderIsReadOnly;
+ B result;
+
+ private B PrepareBuilder() {
+ if (builderIsReadOnly) {
+ B original = result;
+ result = new B();
+ builderIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
protected override B MessageBeingBuilt {
- get { return result; }
+ get { return PrepareBuilder(); }
}
public override Builder Clear() {
- result = new B();
+ result = DefaultInstance ?? new B();
+ builderIsReadOnly = true;
return this;
}
public override Builder Clone() {
- return new Builder().MergeFrom(result);
+ if (builderIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
}
public override pbd::MessageDescriptor DescriptorForType {
@@ -500,12 +557,11 @@
}
public override B BuildPartial() {
- if (result == null) {
- throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ if (builderIsReadOnly) {
+ return result;
}
- B returnMe = result;
- result = null;
- return returnMe;
+ builderIsReadOnly = true;
+ return result;
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -519,6 +575,7 @@
public override Builder MergeFrom(B other) {
if (other == global::UnitTest.Issues.TestProtos.B.DefaultInstance) return this;
+ PrepareBuilder();
if (other.HasB_) {
B_ = other.B_;
}
@@ -531,6 +588,7 @@
}
public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
pb::UnknownFieldSet.Builder unknownFields = null;
uint tag;
string field_name;
@@ -586,11 +644,13 @@
set { SetB_(value); }
}
public Builder SetB_(int value) {
+ PrepareBuilder();
result.hasB_ = true;
result.b_ = value;
return this;
}
public Builder ClearB_() {
+ PrepareBuilder();
result.hasB_ = false;
result.b_ = 0;
return this;
@@ -704,7 +764,7 @@
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
public static Builder CreateBuilder(AB prototype) {
- return (Builder) new Builder().MergeFrom(prototype);
+ return new Builder(prototype);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -714,21 +774,48 @@
protected override Builder ThisBuilder {
get { return this; }
}
- public Builder() {}
+ public Builder() {
+ result = DefaultInstance ?? new AB();
+ builderIsReadOnly = result == DefaultInstance;
+ }
+ internal Builder(AB cloneFrom) {
+ result = cloneFrom;
+ builderIsReadOnly = true;
+ }
- AB result = new AB();
+ bool builderIsReadOnly;
+ AB result;
+
+ private AB PrepareBuilder() {
+ if (builderIsReadOnly) {
+ AB original = result;
+ result = new AB();
+ builderIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
protected override AB MessageBeingBuilt {
- get { return result; }
+ get { return PrepareBuilder(); }
}
public override Builder Clear() {
- result = new AB();
+ result = DefaultInstance ?? new AB();
+ builderIsReadOnly = true;
return this;
}
public override Builder Clone() {
- return new Builder().MergeFrom(result);
+ if (builderIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
}
public override pbd::MessageDescriptor DescriptorForType {
@@ -740,12 +827,11 @@
}
public override AB BuildPartial() {
- if (result == null) {
- throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ if (builderIsReadOnly) {
+ return result;
}
- AB returnMe = result;
- result = null;
- return returnMe;
+ builderIsReadOnly = true;
+ return result;
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -759,6 +845,7 @@
public override Builder MergeFrom(AB other) {
if (other == global::UnitTest.Issues.TestProtos.AB.DefaultInstance) return this;
+ PrepareBuilder();
if (other.HasAB_) {
AB_ = other.AB_;
}
@@ -771,6 +858,7 @@
}
public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
pb::UnknownFieldSet.Builder unknownFields = null;
uint tag;
string field_name;
@@ -826,11 +914,13 @@
set { SetAB_(value); }
}
public Builder SetAB_(int value) {
+ PrepareBuilder();
result.hasAB_ = true;
result.aB_ = value;
return this;
}
public Builder ClearAB_() {
+ PrepareBuilder();
result.hasAB_ = false;
result.aB_ = 0;
return this;
@@ -946,7 +1036,7 @@
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
public static Builder CreateBuilder(NumberField prototype) {
- return (Builder) new Builder().MergeFrom(prototype);
+ return new Builder(prototype);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -956,21 +1046,48 @@
protected override Builder ThisBuilder {
get { return this; }
}
- public Builder() {}
+ public Builder() {
+ result = DefaultInstance ?? new NumberField();
+ builderIsReadOnly = result == DefaultInstance;
+ }
+ internal Builder(NumberField cloneFrom) {
+ result = cloneFrom;
+ builderIsReadOnly = true;
+ }
- NumberField result = new NumberField();
+ bool builderIsReadOnly;
+ NumberField result;
+
+ private NumberField PrepareBuilder() {
+ if (builderIsReadOnly) {
+ NumberField original = result;
+ result = new NumberField();
+ builderIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
protected override NumberField MessageBeingBuilt {
- get { return result; }
+ get { return PrepareBuilder(); }
}
public override Builder Clear() {
- result = new NumberField();
+ result = DefaultInstance ?? new NumberField();
+ builderIsReadOnly = true;
return this;
}
public override Builder Clone() {
- return new Builder().MergeFrom(result);
+ if (builderIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
}
public override pbd::MessageDescriptor DescriptorForType {
@@ -982,12 +1099,11 @@
}
public override NumberField BuildPartial() {
- if (result == null) {
- throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ if (builderIsReadOnly) {
+ return result;
}
- NumberField returnMe = result;
- result = null;
- return returnMe;
+ builderIsReadOnly = true;
+ return result;
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1001,6 +1117,7 @@
public override Builder MergeFrom(NumberField other) {
if (other == global::UnitTest.Issues.TestProtos.NumberField.DefaultInstance) return this;
+ PrepareBuilder();
if (other.Has_01) {
_01 = other._01;
}
@@ -1013,6 +1130,7 @@
}
public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
pb::UnknownFieldSet.Builder unknownFields = null;
uint tag;
string field_name;
@@ -1070,11 +1188,13 @@
}
[global::System.CLSCompliant(false)]
public Builder Set_01(int value) {
+ PrepareBuilder();
result.has_01 = true;
result._01_ = value;
return this;
}
public Builder Clear_01() {
+ PrepareBuilder();
result.has_01 = false;
result._01_ = 0;
return this;
@@ -1241,7 +1361,7 @@
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
public static Builder CreateBuilder(NegativeEnumMessage prototype) {
- return (Builder) new Builder().MergeFrom(prototype);
+ return new Builder(prototype);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -1251,21 +1371,48 @@
protected override Builder ThisBuilder {
get { return this; }
}
- public Builder() {}
+ public Builder() {
+ result = DefaultInstance ?? new NegativeEnumMessage();
+ builderIsReadOnly = result == DefaultInstance;
+ }
+ internal Builder(NegativeEnumMessage cloneFrom) {
+ result = cloneFrom;
+ builderIsReadOnly = true;
+ }
- NegativeEnumMessage result = new NegativeEnumMessage();
+ bool builderIsReadOnly;
+ NegativeEnumMessage result;
+
+ private NegativeEnumMessage PrepareBuilder() {
+ if (builderIsReadOnly) {
+ NegativeEnumMessage original = result;
+ result = new NegativeEnumMessage();
+ builderIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
protected override NegativeEnumMessage MessageBeingBuilt {
- get { return result; }
+ get { return PrepareBuilder(); }
}
public override Builder Clear() {
- result = new NegativeEnumMessage();
+ result = DefaultInstance ?? new NegativeEnumMessage();
+ builderIsReadOnly = true;
return this;
}
public override Builder Clone() {
- return new Builder().MergeFrom(result);
+ if (builderIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
}
public override pbd::MessageDescriptor DescriptorForType {
@@ -1277,14 +1424,13 @@
}
public override NegativeEnumMessage BuildPartial() {
- if (result == null) {
- throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ if (builderIsReadOnly) {
+ return result;
}
result.values_.MakeReadOnly();
result.packedValues_.MakeReadOnly();
- NegativeEnumMessage returnMe = result;
- result = null;
- return returnMe;
+ builderIsReadOnly = true;
+ return result;
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1298,6 +1444,7 @@
public override Builder MergeFrom(NegativeEnumMessage other) {
if (other == global::UnitTest.Issues.TestProtos.NegativeEnumMessage.DefaultInstance) return this;
+ PrepareBuilder();
if (other.HasValue) {
Value = other.Value;
}
@@ -1316,6 +1463,7 @@
}
public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
pb::UnknownFieldSet.Builder unknownFields = null;
uint tag;
string field_name;
@@ -1407,18 +1555,20 @@
set { SetValue(value); }
}
public Builder SetValue(global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
result.hasValue = true;
result.value_ = value;
return this;
}
public Builder ClearValue() {
+ PrepareBuilder();
result.hasValue = false;
result.value_ = global::UnitTest.Issues.TestProtos.NegativeEnum.FiveBelow;
return this;
}
public pbc::IPopsicleList<global::UnitTest.Issues.TestProtos.NegativeEnum> ValuesList {
- get { return result.values_; }
+ get { return PrepareBuilder().values_; }
}
public int ValuesCount {
get { return result.ValuesCount; }
@@ -1427,24 +1577,28 @@
return result.GetValues(index);
}
public Builder SetValues(int index, global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
result.values_[index] = value;
return this;
}
public Builder AddValues(global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
result.values_.Add(value);
return this;
}
public Builder AddRangeValues(scg::IEnumerable<global::UnitTest.Issues.TestProtos.NegativeEnum> values) {
+ PrepareBuilder();
result.values_.Add(values);
return this;
}
public Builder ClearValues() {
+ PrepareBuilder();
result.values_.Clear();
return this;
}
public pbc::IPopsicleList<global::UnitTest.Issues.TestProtos.NegativeEnum> PackedValuesList {
- get { return result.packedValues_; }
+ get { return PrepareBuilder().packedValues_; }
}
public int PackedValuesCount {
get { return result.PackedValuesCount; }
@@ -1453,18 +1607,22 @@
return result.GetPackedValues(index);
}
public Builder SetPackedValues(int index, global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
result.packedValues_[index] = value;
return this;
}
public Builder AddPackedValues(global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
result.packedValues_.Add(value);
return this;
}
public Builder AddRangePackedValues(scg::IEnumerable<global::UnitTest.Issues.TestProtos.NegativeEnum> values) {
+ PrepareBuilder();
result.packedValues_.Add(values);
return this;
}
public Builder ClearPackedValues() {
+ PrepareBuilder();
result.packedValues_.Clear();
return this;
}
@@ -1561,7 +1719,7 @@
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
public static Builder CreateBuilder(DeprecatedChild prototype) {
- return (Builder) new Builder().MergeFrom(prototype);
+ return new Builder(prototype);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -1571,21 +1729,48 @@
protected override Builder ThisBuilder {
get { return this; }
}
- public Builder() {}
+ public Builder() {
+ result = DefaultInstance ?? new DeprecatedChild();
+ builderIsReadOnly = result == DefaultInstance;
+ }
+ internal Builder(DeprecatedChild cloneFrom) {
+ result = cloneFrom;
+ builderIsReadOnly = true;
+ }
- DeprecatedChild result = new DeprecatedChild();
+ bool builderIsReadOnly;
+ DeprecatedChild result;
+
+ private DeprecatedChild PrepareBuilder() {
+ if (builderIsReadOnly) {
+ DeprecatedChild original = result;
+ result = new DeprecatedChild();
+ builderIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
protected override DeprecatedChild MessageBeingBuilt {
- get { return result; }
+ get { return PrepareBuilder(); }
}
public override Builder Clear() {
- result = new DeprecatedChild();
+ result = DefaultInstance ?? new DeprecatedChild();
+ builderIsReadOnly = true;
return this;
}
public override Builder Clone() {
- return new Builder().MergeFrom(result);
+ if (builderIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
}
public override pbd::MessageDescriptor DescriptorForType {
@@ -1597,12 +1782,11 @@
}
public override DeprecatedChild BuildPartial() {
- if (result == null) {
- throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ if (builderIsReadOnly) {
+ return result;
}
- DeprecatedChild returnMe = result;
- result = null;
- return returnMe;
+ builderIsReadOnly = true;
+ return result;
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1616,6 +1800,7 @@
public override Builder MergeFrom(DeprecatedChild other) {
if (other == global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance) return this;
+ PrepareBuilder();
this.MergeUnknownFields(other.UnknownFields);
return this;
}
@@ -1625,6 +1810,7 @@
}
public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
pb::UnknownFieldSet.Builder unknownFields = null;
uint tag;
string field_name;
@@ -1889,7 +2075,7 @@
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
public static Builder CreateBuilder(DeprecatedFieldsMessage prototype) {
- return (Builder) new Builder().MergeFrom(prototype);
+ return new Builder(prototype);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -1899,21 +2085,48 @@
protected override Builder ThisBuilder {
get { return this; }
}
- public Builder() {}
+ public Builder() {
+ result = DefaultInstance ?? new DeprecatedFieldsMessage();
+ builderIsReadOnly = result == DefaultInstance;
+ }
+ internal Builder(DeprecatedFieldsMessage cloneFrom) {
+ result = cloneFrom;
+ builderIsReadOnly = true;
+ }
- DeprecatedFieldsMessage result = new DeprecatedFieldsMessage();
+ bool builderIsReadOnly;
+ DeprecatedFieldsMessage result;
+
+ private DeprecatedFieldsMessage PrepareBuilder() {
+ if (builderIsReadOnly) {
+ DeprecatedFieldsMessage original = result;
+ result = new DeprecatedFieldsMessage();
+ builderIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
protected override DeprecatedFieldsMessage MessageBeingBuilt {
- get { return result; }
+ get { return PrepareBuilder(); }
}
public override Builder Clear() {
- result = new DeprecatedFieldsMessage();
+ result = DefaultInstance ?? new DeprecatedFieldsMessage();
+ builderIsReadOnly = true;
return this;
}
public override Builder Clone() {
- return new Builder().MergeFrom(result);
+ if (builderIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
}
public override pbd::MessageDescriptor DescriptorForType {
@@ -1925,15 +2138,14 @@
}
public override DeprecatedFieldsMessage BuildPartial() {
- if (result == null) {
- throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ if (builderIsReadOnly) {
+ return result;
}
result.primitiveArray_.MakeReadOnly();
result.messageArray_.MakeReadOnly();
result.enumArray_.MakeReadOnly();
- DeprecatedFieldsMessage returnMe = result;
- result = null;
- return returnMe;
+ builderIsReadOnly = true;
+ return result;
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1947,6 +2159,7 @@
public override Builder MergeFrom(DeprecatedFieldsMessage other) {
if (other == global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage.DefaultInstance) return this;
+ PrepareBuilder();
if (other.HasPrimitiveValue) {
PrimitiveValue = other.PrimitiveValue;
}
@@ -1974,6 +2187,7 @@
}
public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
pb::UnknownFieldSet.Builder unknownFields = null;
uint tag;
string field_name;
@@ -2076,12 +2290,14 @@
}
[global::System.ObsoleteAttribute()]
public Builder SetPrimitiveValue(int value) {
+ PrepareBuilder();
result.hasPrimitiveValue = true;
result.primitiveValue_ = value;
return this;
}
[global::System.ObsoleteAttribute()]
public Builder ClearPrimitiveValue() {
+ PrepareBuilder();
result.hasPrimitiveValue = false;
result.primitiveValue_ = 0;
return this;
@@ -2089,7 +2305,7 @@
[global::System.ObsoleteAttribute()]
public pbc::IPopsicleList<int> PrimitiveArrayList {
- get { return result.primitiveArray_; }
+ get { return PrepareBuilder().primitiveArray_; }
}
[global::System.ObsoleteAttribute()]
public int PrimitiveArrayCount {
@@ -2101,21 +2317,25 @@
}
[global::System.ObsoleteAttribute()]
public Builder SetPrimitiveArray(int index, int value) {
+ PrepareBuilder();
result.primitiveArray_[index] = value;
return this;
}
[global::System.ObsoleteAttribute()]
public Builder AddPrimitiveArray(int value) {
+ PrepareBuilder();
result.primitiveArray_.Add(value);
return this;
}
[global::System.ObsoleteAttribute()]
public Builder AddRangePrimitiveArray(scg::IEnumerable<int> values) {
+ PrepareBuilder();
result.primitiveArray_.Add(values);
return this;
}
[global::System.ObsoleteAttribute()]
public Builder ClearPrimitiveArray() {
+ PrepareBuilder();
result.primitiveArray_.Clear();
return this;
}
@@ -2132,6 +2352,7 @@
[global::System.ObsoleteAttribute()]
public Builder SetMessageValue(global::UnitTest.Issues.TestProtos.DeprecatedChild value) {
pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
result.hasMessageValue = true;
result.messageValue_ = value;
return this;
@@ -2139,6 +2360,7 @@
[global::System.ObsoleteAttribute()]
public Builder SetMessageValue(global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder builderForValue) {
pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
result.hasMessageValue = true;
result.messageValue_ = builderForValue.Build();
return this;
@@ -2146,6 +2368,7 @@
[global::System.ObsoleteAttribute()]
public Builder MergeMessageValue(global::UnitTest.Issues.TestProtos.DeprecatedChild value) {
pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
if (result.hasMessageValue &&
result.messageValue_ != global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance) {
result.messageValue_ = global::UnitTest.Issues.TestProtos.DeprecatedChild.CreateBuilder(result.messageValue_).MergeFrom(value).BuildPartial();
@@ -2157,6 +2380,7 @@
}
[global::System.ObsoleteAttribute()]
public Builder ClearMessageValue() {
+ PrepareBuilder();
result.hasMessageValue = false;
result.messageValue_ = global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance;
return this;
@@ -2164,7 +2388,7 @@
[global::System.ObsoleteAttribute()]
public pbc::IPopsicleList<global::UnitTest.Issues.TestProtos.DeprecatedChild> MessageArrayList {
- get { return result.messageArray_; }
+ get { return PrepareBuilder().messageArray_; }
}
[global::System.ObsoleteAttribute()]
public int MessageArrayCount {
@@ -2177,34 +2401,40 @@
[global::System.ObsoleteAttribute()]
public Builder SetMessageArray(int index, global::UnitTest.Issues.TestProtos.DeprecatedChild value) {
pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
result.messageArray_[index] = value;
return this;
}
[global::System.ObsoleteAttribute()]
public Builder SetMessageArray(int index, global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder builderForValue) {
pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
result.messageArray_[index] = builderForValue.Build();
return this;
}
[global::System.ObsoleteAttribute()]
public Builder AddMessageArray(global::UnitTest.Issues.TestProtos.DeprecatedChild value) {
pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
result.messageArray_.Add(value);
return this;
}
[global::System.ObsoleteAttribute()]
public Builder AddMessageArray(global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder builderForValue) {
pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
result.messageArray_.Add(builderForValue.Build());
return this;
}
[global::System.ObsoleteAttribute()]
public Builder AddRangeMessageArray(scg::IEnumerable<global::UnitTest.Issues.TestProtos.DeprecatedChild> values) {
+ PrepareBuilder();
result.messageArray_.Add(values);
return this;
}
[global::System.ObsoleteAttribute()]
public Builder ClearMessageArray() {
+ PrepareBuilder();
result.messageArray_.Clear();
return this;
}
@@ -2220,12 +2450,14 @@
}
[global::System.ObsoleteAttribute()]
public Builder SetEnumValue(global::UnitTest.Issues.TestProtos.DeprecatedEnum value) {
+ PrepareBuilder();
result.hasEnumValue = true;
result.enumValue_ = value;
return this;
}
[global::System.ObsoleteAttribute()]
public Builder ClearEnumValue() {
+ PrepareBuilder();
result.hasEnumValue = false;
result.enumValue_ = global::UnitTest.Issues.TestProtos.DeprecatedEnum.one;
return this;
@@ -2233,7 +2465,7 @@
[global::System.ObsoleteAttribute()]
public pbc::IPopsicleList<global::UnitTest.Issues.TestProtos.DeprecatedEnum> EnumArrayList {
- get { return result.enumArray_; }
+ get { return PrepareBuilder().enumArray_; }
}
[global::System.ObsoleteAttribute()]
public int EnumArrayCount {
@@ -2245,21 +2477,25 @@
}
[global::System.ObsoleteAttribute()]
public Builder SetEnumArray(int index, global::UnitTest.Issues.TestProtos.DeprecatedEnum value) {
+ PrepareBuilder();
result.enumArray_[index] = value;
return this;
}
[global::System.ObsoleteAttribute()]
public Builder AddEnumArray(global::UnitTest.Issues.TestProtos.DeprecatedEnum value) {
+ PrepareBuilder();
result.enumArray_.Add(value);
return this;
}
[global::System.ObsoleteAttribute()]
public Builder AddRangeEnumArray(scg::IEnumerable<global::UnitTest.Issues.TestProtos.DeprecatedEnum> values) {
+ PrepareBuilder();
result.enumArray_.Add(values);
return this;
}
[global::System.ObsoleteAttribute()]
public Builder ClearEnumArray() {
+ PrepareBuilder();
result.enumArray_.Clear();
return this;
}