warning: message fields have the same JSON name --> testdata/options/json.proto:9:11 | 8 | int32 a_ = 1; | -- this implies JSON name `a` 9 | int32 a = 2; | ^ this also implies that name error: message fields have the same JSON name --> testdata/options/json.proto:12:32 | 11 | int32 ab = 3; | -- this implies JSON name `ab` 12 | int32 a_b = 4 [json_name = "ab"]; | ^^^^ `a_b` specifies custom name here error: message fields have the same JSON name --> testdata/options/json.proto:15:11 | 14 | int32 ac = 5 [json_name = "aC"]; | ---- `ac` specifies custom name here 15 | int32 a_c = 6; | ^^^ this also implies that name error: message fields have the same JSON name --> testdata/options/json.proto:18:30 | 17 | int32 x = 7 [json_name = "z"]; | --- `x` specifies custom name here 18 | int32 y = 8 [json_name = "z"]; | ^^^ `y` specifies custom name here warning: message fields have the same (default) JSON name --> testdata/options/json.proto:21:11 | 20 | int32 d_c = 9 [json_name = "x"]; | --- this implies (default) JSON name `dC` 21 | int32 dC = 10; | ^^ this also implies that name | = help: even though `d_c` sets `json_name`, their default JSON names must not conflict, because `google.protobuf.FieldMask`'s JSON syntax erroneously does not account for custom JSON names error: enum values have the same name with the `Bar` prefix removed --> testdata/options/json.proto:30:5 | 29 | ZERO = 0; | ---- this implies canonical name `Zero` 30 | BAR_ZERO = 1; | ^^^^^^^^ this also implies that name error: enum values have the same name with the `Bar` prefix removed --> testdata/options/json.proto:31:5 | 29 | ZERO = 0; | ---- this implies canonical name `Zero` 30 | BAR_ZERO = 1; 31 | b_a_r_zero = 2; | ^^^^^^^^^^ this also implies that name error: enum values have the same name with the `Bar` prefix removed --> testdata/options/json.proto:35:5 | 34 | FOOBAR = 4; | ------ this implies canonical name `Foobar` 35 | BarFooBar = 5; | ^^^^^^^^^ this also implies that name error: enum values have the same name with the `Bar` prefix removed --> testdata/options/json.proto:38:5 | 37 | _BAR__ZERO2 = 6; | ----------- this implies canonical name `Zero2` 38 | _BAR_ZERO2 = 7; | ^^^^^^^^^^ this also implies that name error: enum values have the same name with the `Bar` prefix removed --> testdata/options/json.proto:41:5 | 40 | BAR_Z_ERO = 8; | --------- this implies canonical name `ZEro` 41 | BAR_Z__ERO = 9; | ^^^^^^^^^^ this also implies that name error: message extension cannot specify `json_name` --> testdata/options/json.proto:45:20 | 45 | int32 x = 100 [json_name = "foo"]; | ^^^^^^^^^^^^^^^^^ = note: JSON format for extensions always uses the extension's fully-qualified name warning: message extension cannot specify `json_name` --> testdata/options/json.proto:46:20 | 46 | int32 y = 101 [json_name = "y"]; | ^^^^^^^^^^^^^^^ = note: JSON format for extensions always uses the extension's fully-qualified name = help: protoc erroneously accepts `json_name` on an extension if it happens to match the default JSON name exactly encountered 9 errors and 3 warnings