// Protocol Buffers - Google's data interchange format // Copyright 2023 Google LLC. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file or at // https://developers.google.com/open-source/licenses/bsd // LINT: LEGACY_NAMES // The names in this file are meant to test edge cases. syntax = "proto3"; package enums; import "devtools/staticanalysis/pipeline/analyzers/proto_best_practices/proto/optouts.proto"; option (proto_best_practices.file_optouts) = { categories: ENUM_DEFAULT_VALUE_NAME_CONFLICT categories: ENUM_VALUE_NAMES }; // This should result in an enum with these accessible values: // - Unknown = 0 // - Unrecognized = 0 // - Foo = 1 // - Bar = 2 // - DifferentNameAlias = 2 enum TestEnumWithDuplicateStrippedPrefixNames { option allow_alias = true; UNKNOWN = 0; TestEnumWithDuplicateStrippedPrefixNamesUNRECOGNIZED = 0; TestEnumWithDuplicateStrippedPrefixNames_FOO = 1; TEST_ENUM_WITH_DUPLICATE_STRIPPED_PREFIX_NAMES_FOO = 1; FOO = 1; TestEnumWithDuplicateStrippedPrefixNamesBAR = 2; TEST_ENUM_WITH_DUPLICATE_STRIPPED_PREFIX_NAMESBar = 2; BAR = 2; TEST_ENUM_WITH_DUPLICATE_STRIPPED_PREFIX_NAMES_DIFFERENT_NAME_ALIAS = 2; } // This should result in an enum with these accessible values: // - Unknown = 0 // - _2020 = 1 // - _2021 = 2 // - _2022 = 3 enum TestEnumWithNumericNames { TestEnumWithNumericNamesUNKNOWN = 0; TestEnumWithNumericNames_2020 = 1; TEST_ENUM_WITH_NUMERIC_NAMES_2021 = 2; TEST_ENUM_WITH_NUMERIC_NAMES2022 = 3; } // This should result in an enum with these accessible values: // - Unknown = 0 // - TestEnumValueNameSameAsEnum = 1 enum TestEnumValueNameSameAsEnum { TEST_ENUM_VALUE_NAME_SAME_AS_ENUM_UNKNOWN = 0; TEST_ENUM_VALUE_NAME_SAME_AS_ENUM = 1; } // Regression test for maps with nested enum as value. message TestMapWithNestedEnum { message InnerNested { enum NestedEnum { UNKNOWN = 0; FOO = 1; } } map string_map = 1; }