error: `Foo` declared multiple times
  --> dep/foo.proto:6:9
   |
 6 | message Foo {}
   |         ^^^ first here, as a message type
   |
  ::: main.proto:11:9
   |
11 | message Foo {
   |         --- ...also declared here
   |
   = help: symbol names must be unique across all files; for example,
           "main.proto" declares `dep.foo.Foo` but it is not directly imported

error: `Main` declared multiple times
  --> main.proto:6:9
   |
 6 | message Main {}
   |         ^^^^ first here, as a message type
 7 | message Main {
   |         ---- ...also declared here
...
17 | message Main {
   |         ---- ...and here

error: `x` declared multiple times
  --> main.proto:8:18
   |
 8 |   optional int32 x = 1;
   |                  ^ first here, as a message field
...
18 |   optional string x = 2;
   |                   - ...also declared here

error: `BAR` declared multiple times
  --> main.proto:12:8
   |
12 |   enum BAR {
   |        ^^^ first here, as an enum type
13 |     BAR = 0;
   |     --- ...also declared here, now as an enum value
   |
   = help: the fully-qualified names of enum values do not include the name of
           the enum; `BAR` defined inside of enum `Foo.BAR` has the name
           `Foo.BAR`, not `Foo.BAR.BAR`

error: `Main` declared multiple times
  --> main.proto:6:9
   |
 6 | message Main {}
   |         ^^^^ first here, as a message type
   |
  ::: dep/priv.proto:4:9
   |
 4 | message Main {}
   |         ---- ...also declared here
   |
   = help: symbol names must be unique across all files; for example,
           "dep/priv.proto" declares `dep.foo.Main` but it is not directly
           imported

error: `Foo` declared multiple times
  --> main.proto:11:9
   |
11 | message Foo {
   |         ^^^ first here, as a message type
   |
  ::: dep/foo.proto:6:9
   |
 6 | message Foo {}
   |         --- ...also declared here
   |
   = help: symbol names must be unique across all files; for example,
           "main.proto" declares `dep.foo.Foo` but it is not directly imported

error: `dep.foo.Foo` declared multiple times
  --> main2.proto:2:1
   |
 2 | package dep.foo.Foo;
   | ^^^^^^^^^^^^^^^^^^^^ first here, as a `package` declaration
   |
  ::: dep/foo.proto:6:9
   |
 6 | message Foo {}
   |         --- ...also declared here, now as a message type

encountered 7 errors
