error: unexpected extension range within enum definition
  --> testdata/extend/overlap.proto:19:5
   |
18 | / enum E {
19 | |     extensions 1; // Not allowed.
   | |     ^^^^^^^^^^^^^ this extension range...
20 | |     X = 0;
21 | | }
   | \_- ...cannot be declared within this enum definition
   |
   = help: this extension range can only appear within a message definition

error: use of reserved field number `2`
  --> testdata/extend/overlap.proto:7:25
   |
 7 |     optional int32 y1 = 2;
   |                         ^ used here
 8 |     optional int32 y2 = 3;
...
12 |     extensions 2, 3 to 3, 5 to max;
   |                - field number reserved here

error: use of reserved field number `3`
  --> testdata/extend/overlap.proto:8:25
   |
 8 |     optional int32 y2 = 3;
   |                         ^ used here
 9 |     optional int32 y3 = 4;
...
12 |     extensions 2, 3 to 3, 5 to max;
   |                   ------ field number reserved here

error: use of reserved field number `5`
  --> testdata/extend/overlap.proto:10:25
   |
10 |     optional int32 y4 = 5;
   |                         ^ used here
11 |
12 |     extensions 2, 3 to 3, 5 to max;
   |                           -------- field number reserved here

warning: singleton range can be simplified
  --> testdata/extend/overlap.proto:12:19
   |
12 |     extensions 2, 3 to 3, 5 to max;
   |                   ^^^^^^
  help: replace with a single number
   |
12 | -     extensions 2, 3 to 3, 5 to max;
12 | +     extensions 2, 3, 5 to max;

error: overlapping field number ranges
  --> testdata/extend/overlap.proto:12:27
   |
12 |     extensions 2, 3 to 3, 5 to max;
   |                           ^^^^^^^^ this range
13 |     reserved 7, 8 to 9;     // Overlapping reserved regions.
   |                 ------ overlaps with this one
   |
   = help: they overlap in the range `8 to 9`

error: overlapping field number ranges
  --> testdata/extend/overlap.proto:14:16
   |
12 |     extensions 2, 3 to 3, 5 to max;
   |                           -------- overlaps with this one
13 |     reserved 7, 8 to 9;     // Overlapping reserved regions.
14 |     extensions 10 to 20;    // Overlapping extensions.
   |                ^^^^^^^^ this range
   |
   = help: they overlap in the range `10 to 20`

error: `max` outside of range end
  --> testdata/extend/overlap.proto:15:16
   |
15 |     extensions max to max;  // Only first can be max.
   |                ^^^
   = note: the special `max` expression can only be used at the end of a range

encountered 7 errors and 1 warning
