blob: 5694355820a04e9af18b259d7acd61a51217ecd9 [file] [log] [blame]
// 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.
syntax = "proto2";
package goproto.protoc.fieldnames;
option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/fieldnames";
// Assorted edge cases in field name conflict resolution.
//
// Not all (or possibly any) of these behave in an easily-understood fashion.
// This exists to demonstrate the current behavior and catch unintended
// changes in it.
message Message {
// Various CamelCase conversions.
optional string field_one = 1;
optional string FieldTwo = 2;
optional string fieldThree = 3;
optional string field__four = 4;
// Field names that conflict with standard methods on the message struct.
optional string descriptor = 10;
optional string marshal = 11;
optional string unmarshal = 12;
optional string proto_message = 13;
// Field names that conflict with each other after CamelCasing.
optional string CamelCase = 20;
optional string CamelCase_ = 21;
optional string camel_case = 22; // conflicts with 20, 21
optional string CamelCase__ = 23; // conflicts with 21, 21, renamed 22
// Field with a getter that conflicts with another field.
optional string get_name = 30;
optional string name = 31;
// Oneof that conflicts with its first field: The oneof is renamed.
oneof oneof_conflict_a {
string OneofConflictA = 40;
}
// Oneof that conflicts with its second field: The field is renamed.
oneof oneof_conflict_b {
string oneof_no_conflict = 50;
string OneofConflictB = 51;
}
// Oneof with a field name that conflicts with a nested message.
oneof oneof_conflict_c {
string oneof_message_conflict = 60;
}
message OneofMessageConflict {}
}