blob: 920992cda076ddcfb3d340383c0820e2518a7f5a [file] [log] [blame]
// 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, InnerNested.NestedEnum> string_map = 1;
}