| // Copyright 2018 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package prototype |
| |
| import ( |
| pref "github.com/golang/protobuf/v2/reflect/protoreflect" |
| ) |
| |
| // TODO: This is important to prevent users from creating invalid types, |
| // but is not functionality needed now. |
| // |
| // Things to verify: |
| // * Weak fields are only used if flags.Proto1Legacy is set |
| // * Weak fields can only reference singular messages |
| // (check if this the case for oneof fields) |
| // * FieldDescriptor.MessageType cannot reference a remote type when the |
| // remote name is a type within the local file. |
| // * Default enum identifiers resolve to a declared number. |
| // * Default values are only allowed in proto2. |
| // * Default strings are valid UTF-8? Note that protoc does not check this. |
| // * Field extensions are only valid in proto2, except when extending the |
| // descriptor options. |
| // * Remote enum and message types are actually found in imported files. |
| // * Placeholder messages and types may only be for weak fields. |
| // * Placeholder full names must be valid. |
| // * The name of each descriptor must be valid. |
| // * Options are of the correct Go type (e.g. *descriptorpb.MessageOptions). |
| // * len(ExtensionRangeOptions) <= len(ExtensionRanges) |
| |
| func validateFile(t pref.FileDescriptor) error { |
| return nil |
| } |
| |
| func validateMessage(t pref.MessageDescriptor) error { |
| return nil |
| } |
| |
| func validateExtension(t pref.ExtensionDescriptor) error { |
| return nil |
| } |
| |
| func validateEnum(t pref.EnumDescriptor) error { |
| return nil |
| } |