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
