|  | // 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; | 
|  |  | 
|  | // 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, InnerNested.NestedEnum> string_map = 1; | 
|  | } |