|
@@ -168,14 +168,16 @@ namespace Google.Protobuf.Reflection
|
|
get { return fieldType == FieldType.Message && messageType.Proto.Options != null && messageType.Proto.Options.MapEntry; }
|
|
get { return fieldType == FieldType.Message && messageType.Proto.Options != null && messageType.Proto.Options.MapEntry; }
|
|
}
|
|
}
|
|
|
|
|
|
- // TODO(jonskeet): Check whether this is correct with proto3, where we default to packed...
|
|
|
|
-
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// Returns <c>true</c> if this field is a packed, repeated field; <c>false</c> otherwise.
|
|
/// Returns <c>true</c> if this field is a packed, repeated field; <c>false</c> otherwise.
|
|
/// </summary>
|
|
/// </summary>
|
|
public bool IsPacked
|
|
public bool IsPacked
|
|
{
|
|
{
|
|
- get { return Proto.Options != null && Proto.Options.Packed; }
|
|
|
|
|
|
+ // Note the || rather than && here - we're effectively defaulting to packed, because that *is*
|
|
|
|
+ // the default in proto3, which is all we support. We may give the wrong result for the protos
|
|
|
|
+ // within descriptor.proto, but that's okay, as they're never exposed and we don't use IsPacked
|
|
|
|
+ // within the runtime.
|
|
|
|
+ get { return Proto.Options == null || Proto.Options.Packed; }
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|