warning: redundant visibility modifier --> export.proto:8:3 | 8 | export message E {} | ^^^^^^ specified here | ::: export.proto:4:45 | 4 | option features.default_symbol_visibility = EXPORT_ALL; | ---------- this implies it warning: redundant visibility modifier --> export.proto:12:1 | 12 | export message E {} | ^^^^^^ specified here | ::: export.proto:4:45 | 4 | option features.default_symbol_visibility = EXPORT_ALL; | ---------- this implies it warning: redundant visibility modifier --> local.proto:9:3 | 9 | local message L {} | ^^^^^ specified here | ::: local.proto:4:45 | 4 | option features.default_symbol_visibility = LOCAL_ALL; | --------- this implies it warning: redundant visibility modifier --> local.proto:13:1 | 13 | local message L {} | ^^^^^ specified here | ::: local.proto:4:45 | 4 | option features.default_symbol_visibility = LOCAL_ALL; | --------- this implies it error: found unexported message type `test.export.L` --> main.proto:12:3 | 12 | export.L l = 3; | ^^^^^^^^ unexported type | ::: export.proto:13:1 | 13 | local message L {} | ----- marked as local here error: found unexported message type `test.export.N.L` --> main.proto:15:3 | 15 | export.N.L nl = 6; | ^^^^^^^^^^ unexported type | ::: export.proto:9:3 | 9 | local message L {} | ----- marked as local here error: found unexported message type `test.local.D` --> main.proto:19:3 | 19 | local.D d = 1; | ^^^^^^^ unexported type | ::: local.proto:4:45 | 4 | option features.default_symbol_visibility = LOCAL_ALL; | --------- this implies `local` error: found unexported message type `test.local.L` --> main.proto:21:3 | 21 | local.L l = 3; | ^^^^^^^ unexported type | ::: local.proto:13:1 | 13 | local message L {} | ----- marked as local here error: found unexported message type `test.local.N.D` --> main.proto:22:3 | 22 | local.N.D nd = 4; | ^^^^^^^^^ unexported type | ::: local.proto:4:45 | 4 | option features.default_symbol_visibility = LOCAL_ALL; | --------- this implies `local` error: found unexported message type `test.local.N.L` --> main.proto:24:3 | 24 | local.N.L nl = 6; | ^^^^^^^^^ unexported type | ::: local.proto:9:3 | 9 | local message L {} | ----- marked as local here error: found unexported message type `test.top_level.L` --> main.proto:30:3 | 30 | top_level.L l = 3; | ^^^^^^^^^^^ unexported type | ::: top_level.proto:13:1 | 13 | local message L {} | ----- marked as local here error: found unexported message type `test.top_level.N.D` --> main.proto:31:3 | 31 | top_level.N.D nd = 4; | ^^^^^^^^^^^^^ unexported type | ::: top_level.proto:4:45 | 4 | option features.default_symbol_visibility = EXPORT_TOP_LEVEL; | ---------------- | | | this implies `local` error: found unexported message type `test.top_level.N.L` --> main.proto:33:3 | 33 | top_level.N.L nl = 6; | ^^^^^^^^^^^^^ unexported type | ::: top_level.proto:9:3 | 9 | local message L {} | ----- marked as local here error: found unexported message type `test.strict.D` --> main.proto:37:3 | 37 | strict.D d = 1; | ^^^^^^^^ unexported type | ::: strict.proto:4:45 | 4 | option features.default_symbol_visibility = STRICT; | ------ this implies `local` error: found unexported message type `test.strict.L` --> main.proto:39:3 | 39 | strict.L l = 3; | ^^^^^^^^ unexported type | ::: strict.proto:13:1 | 13 | local message L {} | ----- marked as local here error: found unexported message type `test.strict.N.D` --> main.proto:40:3 | 40 | strict.N.D nd = 4; | ^^^^^^^^^^ unexported type | ::: strict.proto:4:45 | 4 | option features.default_symbol_visibility = STRICT; | ------ this implies `local` error: found unexported message type `test.strict.N.L` --> main.proto:42:3 | 42 | strict.N.L nl = 6; | ^^^^^^^^^^ unexported type | ::: strict.proto:9:3 | 9 | local message L {} | ----- marked as local here error: message type `test.strict.N` does not reserve all field numbers --> strict.proto:8:3 | 6 | / message N { 7 | | message D {} 8 | | export message E {} | | ^^^^^^ nested type exported here 9 | | local message L {} 10 | | } | \_- ... within this type | ::: strict.proto:4:45 | 4 | option features.default_symbol_visibility = STRICT; | ------ `STRICT` specified here | = help: in strict mode, nesting an exported type within another type requires that that type reserve every field number (the "C++ namespace exception"), but this type does not reserve the field number 1 warning: redundant visibility modifier --> strict.proto:9:3 | 9 | local message L {} | ^^^^^ specified here | ::: strict.proto:4:45 | 4 | option features.default_symbol_visibility = STRICT; | ------ this implies it warning: redundant visibility modifier --> strict.proto:13:1 | 13 | local message L {} | ^^^^^ specified here | ::: strict.proto:4:45 | 4 | option features.default_symbol_visibility = STRICT; | ------ this implies it warning: redundant visibility modifier --> top_level.proto:9:3 | 9 | local message L {} | ^^^^^ specified here | ::: top_level.proto:4:45 | 4 | option features.default_symbol_visibility = EXPORT_TOP_LEVEL; | ---------------- this implies it warning: redundant visibility modifier --> top_level.proto:12:1 | 12 | export message E {} | ^^^^^^ specified here | ::: top_level.proto:4:45 | 4 | option features.default_symbol_visibility = EXPORT_TOP_LEVEL; | ---------------- this implies it encountered 14 errors and 8 warnings