THRIFT-1907 Compiling namespace and sub-namespace directives for unrecognized generators should only be a warning
Patch: Andrew Cox
diff --git a/compiler/cpp/src/parse/t_program.h b/compiler/cpp/src/parse/t_program.h
index 12fcf0e..dfd9d43 100644
--- a/compiler/cpp/src/parse/t_program.h
+++ b/compiler/cpp/src/parse/t_program.h
@@ -188,7 +188,8 @@
if (sub_index != std::string::npos) {
std::string sub_namespace = language.substr(sub_index+1);
if ( ! it->second->is_valid_namespace(sub_namespace)) {
- throw base_language + " generator does not accept '" + sub_namespace + "' as sub-namespace!";
+ std::string warning = base_language + " generator does not accept '" + sub_namespace + "' as sub-namespace!";
+ pwarning(1, warning.c_str());
}
}
}
diff --git a/test/ThriftTest.thrift b/test/ThriftTest.thrift
index 2be53fa..be000b6 100644
--- a/test/ThriftTest.thrift
+++ b/test/ThriftTest.thrift
@@ -35,6 +35,12 @@
namespace php ThriftTest
namespace delphi Thrift.Test
namespace cocoa ThriftTest
+
+// Presence of namespaces and sub-namespaces for which there is
+// no generator should compile with warnings only
+namespace noexist ThriftTest
+namespace cpp.noexist ThriftTest
+
namespace * thrift.test
/**
@@ -368,4 +374,4 @@
struct StructB {
1: optional StructA aa;
2: required StructA ab;
-}
\ No newline at end of file
+}