diff options
| author | 2024-05-06 08:50:47 +0000 | |
|---|---|---|
| committer | 2024-05-06 08:50:47 +0000 | |
| commit | a5f28fe0c923984c263592e82bbce99b0032b794 (patch) | |
| tree | 403544ad5305eb171a85d2b4c59559f83abd87a7 /vendor/google.golang.org/protobuf/internal/filedesc/desc.go | |
| parent | [chore]: Bump golang.org/x/image from 0.15.0 to 0.16.0 (#2898) (diff) | |
| download | gotosocial-a5f28fe0c923984c263592e82bbce99b0032b794.tar.xz | |
[chore]: Bump github.com/gin-contrib/gzip from 1.0.0 to 1.0.1 (#2899)
Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/gin-contrib/gzip/releases)
- [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml)
- [Commits](https://github.com/gin-contrib/gzip/compare/v1.0.0...v1.0.1)
---
updated-dependencies:
- dependency-name: github.com/gin-contrib/gzip
  dependency-type: direct:production
  update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/google.golang.org/protobuf/internal/filedesc/desc.go')
| -rw-r--r-- | vendor/google.golang.org/protobuf/internal/filedesc/desc.go | 84 | 
1 files changed, 55 insertions, 29 deletions
| diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go index 8826bcf40..ece53bea3 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go @@ -7,6 +7,7 @@ package filedesc  import (  	"bytes"  	"fmt" +	"strings"  	"sync"  	"sync/atomic" @@ -108,9 +109,12 @@ func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd }  func (fd *File) Parent() protoreflect.Descriptor         { return nil }  func (fd *File) Index() int                              { return 0 }  func (fd *File) Syntax() protoreflect.Syntax             { return fd.L1.Syntax } -func (fd *File) Name() protoreflect.Name                 { return fd.L1.Package.Name() } -func (fd *File) FullName() protoreflect.FullName         { return fd.L1.Package } -func (fd *File) IsPlaceholder() bool                     { return false } + +// Not exported and just used to reconstruct the original FileDescriptor proto +func (fd *File) Edition() int32                  { return int32(fd.L1.Edition) } +func (fd *File) Name() protoreflect.Name         { return fd.L1.Package.Name() } +func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } +func (fd *File) IsPlaceholder() bool             { return false }  func (fd *File) Options() protoreflect.ProtoMessage {  	if f := fd.lazyInit().Options; f != nil {  		return f() @@ -202,6 +206,9 @@ func (ed *Enum) lazyInit() *EnumL2 {  	ed.L0.ParentFile.lazyInit() // implicitly initializes L2  	return ed.L2  } +func (ed *Enum) IsClosed() bool { +	return !ed.L1.EditionFeatures.IsOpenEnum +}  func (ed *EnumValue) Options() protoreflect.ProtoMessage {  	if f := ed.L1.Options; f != nil { @@ -251,10 +258,6 @@ type (  		StringName       stringName  		IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto  		IsWeak           bool // promoted from google.protobuf.FieldOptions -		HasPacked        bool // promoted from google.protobuf.FieldOptions -		IsPacked         bool // promoted from google.protobuf.FieldOptions -		HasEnforceUTF8   bool // promoted from google.protobuf.FieldOptions -		EnforceUTF8      bool // promoted from google.protobuf.FieldOptions  		Default          defaultValue  		ContainingOneof  protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields  		Enum             protoreflect.EnumDescriptor @@ -331,8 +334,7 @@ func (fd *Field) HasPresence() bool {  	if fd.L1.Cardinality == protoreflect.Repeated {  		return false  	} -	explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence -	return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil +	return fd.IsExtension() || fd.L1.EditionFeatures.IsFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil  }  func (fd *Field) HasOptionalKeyword() bool {  	return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional @@ -345,14 +347,7 @@ func (fd *Field) IsPacked() bool {  	case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:  		return false  	} -	if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -		return fd.L1.EditionFeatures.IsPacked -	} -	if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { -		// proto3 repeated fields are packed by default. -		return !fd.L1.HasPacked || fd.L1.IsPacked -	} -	return fd.L1.IsPacked +	return fd.L1.EditionFeatures.IsPacked  }  func (fd *Field) IsExtension() bool { return false }  func (fd *Field) IsWeak() bool      { return fd.L1.IsWeak } @@ -399,13 +394,7 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {}  // WARNING: This method is exempt from the compatibility promise and may be  // removed in the future without warning.  func (fd *Field) EnforceUTF8() bool { -	if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -		return fd.L1.EditionFeatures.IsUTF8Validated -	} -	if fd.L1.HasEnforceUTF8 { -		return fd.L1.EnforceUTF8 -	} -	return fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 +	return fd.L1.EditionFeatures.IsUTF8Validated  }  func (od *Oneof) IsSynthetic() bool { @@ -438,7 +427,6 @@ type (  		Options          func() protoreflect.ProtoMessage  		StringName       stringName  		IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto -		IsPacked         bool // promoted from google.protobuf.FieldOptions  		Default          defaultValue  		Enum             protoreflect.EnumDescriptor  		Message          protoreflect.MessageDescriptor @@ -461,7 +449,16 @@ func (xd *Extension) HasPresence() bool                     { return xd.L1.Cardi  func (xd *Extension) HasOptionalKeyword() bool {  	return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional  } -func (xd *Extension) IsPacked() bool                         { return xd.lazyInit().IsPacked } +func (xd *Extension) IsPacked() bool { +	if xd.L1.Cardinality != protoreflect.Repeated { +		return false +	} +	switch xd.L1.Kind { +	case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: +		return false +	} +	return xd.L1.EditionFeatures.IsPacked +}  func (xd *Extension) IsExtension() bool                      { return true }  func (xd *Extension) IsWeak() bool                           { return false }  func (xd *Extension) IsList() bool                           { return xd.Cardinality() == protoreflect.Repeated } @@ -542,8 +539,9 @@ func (md *Method) ProtoInternal(pragma.DoNotImplement)     {}  // Surrogate files are can be used to create standalone descriptors  // where the syntax is only information derived from the parent file.  var ( -	SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} -	SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} +	SurrogateProto2      = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} +	SurrogateProto3      = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} +	SurrogateEdition2023 = &File{L1: FileL1{Syntax: protoreflect.Editions, Edition: Edition2023}, L2: &FileL2{}}  )  type ( @@ -585,6 +583,34 @@ func (s *stringName) InitJSON(name string) {  	s.nameJSON = name  } +// Returns true if this field is structured like the synthetic field of a proto2 +// group. This allows us to expand our treatment of delimited fields without +// breaking proto2 files that have been upgraded to editions. +func isGroupLike(fd protoreflect.FieldDescriptor) bool { +	// Groups are always group types. +	if fd.Kind() != protoreflect.GroupKind { +		return false +	} + +	// Group fields are always the lowercase type name. +	if strings.ToLower(string(fd.Message().Name())) != string(fd.Name()) { +		return false +	} + +	// Groups could only be defined in the same file they're used. +	if fd.Message().ParentFile() != fd.ParentFile() { +		return false +	} + +	// Group messages are always defined in the same scope as the field.  File +	// level extensions will compare NULL == NULL here, which is why the file +	// comparison above is necessary to ensure both come from the same file. +	if fd.IsExtension() { +		return fd.Parent() == fd.Message().Parent() +	} +	return fd.ContainingMessage() == fd.Message().Parent() +} +  func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName {  	s.once.Do(func() {  		if fd.IsExtension() { @@ -605,7 +631,7 @@ func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName {  			// Format the text name.  			s.nameText = string(fd.Name()) -			if fd.Kind() == protoreflect.GroupKind { +			if isGroupLike(fd) {  				s.nameText = string(fd.Message().Name())  			}  		} | 
