diff --git a/prost-build/src/config.rs b/prost-build/src/config.rs index 0fafa8f6e..92d154da1 100644 --- a/prost-build/src/config.rs +++ b/prost-build/src/config.rs @@ -684,7 +684,6 @@ impl Config { S: AsRef, D: AsRef, { - self.type_name_domains.clear(); for matcher in paths { self.type_name_domains .insert(matcher.as_ref().to_string(), domain.as_ref().to_string()); diff --git a/tests/build.rs b/tests/build.rs index 06c9e0472..1403a3e5e 100644 --- a/tests/build.rs +++ b/tests/build.rs @@ -165,6 +165,7 @@ fn main() { prost_build::Config::new() .enable_type_names() .type_name_domain([".type_names.Foo"], "tests") + .type_name_domain([".type_names.Qux"], "tests-cumulative") .compile_protos(&[src.join("type_names.proto")], includes) .unwrap(); diff --git a/tests/src/type_names.proto b/tests/src/type_names.proto index 58c599d17..0b6b6f1be 100644 --- a/tests/src/type_names.proto +++ b/tests/src/type_names.proto @@ -8,4 +8,7 @@ message Foo { } message Baz { -} \ No newline at end of file +} + +message Qux { +} diff --git a/tests/src/type_names.rs b/tests/src/type_names.rs index 09fb41aa1..285dc50b4 100644 --- a/tests/src/type_names.rs +++ b/tests/src/type_names.rs @@ -18,4 +18,9 @@ fn valid_type_names() { assert_eq!("type_names", Baz::PACKAGE); assert_eq!("type_names.Baz", Baz::full_name()); assert_eq!("/type_names.Baz", Baz::type_url()); + + assert_eq!("Qux", Qux::NAME); + assert_eq!("type_names", Qux::PACKAGE); + assert_eq!("type_names.Qux", Qux::full_name()); + assert_eq!("tests-cumulative/type_names.Qux", Qux::type_url()); }