THRIFT-2560 Thrift compiler generator tries to concat ints with strings using +
Client: Compiler
Patch: Jens Geyer
diff --git a/compiler/cpp/src/generate/t_as3_generator.cc b/compiler/cpp/src/generate/t_as3_generator.cc
index c673845..a965aab 100644
--- a/compiler/cpp/src/generate/t_as3_generator.cc
+++ b/compiler/cpp/src/generate/t_as3_generator.cc
@@ -2499,7 +2499,7 @@
   case t_base_type::TYPE_DOUBLE:
     return "Number";
   default:
-    throw "compiler error: no C++ name for base type " + t_base_type::t_base_name(tbase);
+    throw "compiler error: no As3 name for base type " + t_base_type::t_base_name(tbase);
   }
 }
 
diff --git a/compiler/cpp/src/generate/t_cocoa_generator.cc b/compiler/cpp/src/generate/t_cocoa_generator.cc
index e498032..558d82e 100644
--- a/compiler/cpp/src/generate/t_cocoa_generator.cc
+++ b/compiler/cpp/src/generate/t_cocoa_generator.cc
@@ -2029,7 +2029,7 @@
         out << "writeDouble: " << fieldName << "];";
         break;
       default:
-        throw "compiler error: no Java name for base type " + t_base_type::t_base_name(tbase);
+        throw "compiler error: no Objective-C name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "writeI32: " << fieldName << "];";
@@ -2271,7 +2271,7 @@
   case t_base_type::TYPE_DOUBLE:
     return "double";
   default:
-    throw "compiler error: no objective-c name for base type " + t_base_type::t_base_name(tbase);
+    throw "compiler error: no Objective-C name for base type " + t_base_type::t_base_name(tbase);
   }
 }
 
diff --git a/compiler/cpp/src/generate/t_csharp_generator.cc b/compiler/cpp/src/generate/t_csharp_generator.cc
index 8e477e4..84e3674 100644
--- a/compiler/cpp/src/generate/t_csharp_generator.cc
+++ b/compiler/cpp/src/generate/t_csharp_generator.cc
@@ -464,11 +464,7 @@
         }
         break;
       default:
-      {
-        std::stringstream ss;
-        ss << "compiler error: no const of base type " << tbase;
-        throw ss.str();
-      }
+        throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     render << type->get_name() << "." << value->get_identifier_name();
@@ -2038,11 +2034,7 @@
           out << "ReadDouble();";
           break;
         default:
-        {
-          std::stringstream ss;
-          ss << "compiler error: no C# name for base type " << tbase;
-          throw ss.str();
-        }
+          throw "compiler error: no C# name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "ReadI32();";
@@ -2217,11 +2209,7 @@
           out << "WriteDouble(" << nullable_name << ");";
           break;
         default:
-        {
-          std::stringstream ss;
-          ss << "compiler error: no C# name for base type " << tbase;
-          throw ss.str();
-        }
+          throw "compiler error: no C# name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "WriteI32((int)" << nullable_name << ");";
@@ -2465,11 +2453,7 @@
     case t_base_type::TYPE_DOUBLE:
       return "double" + postfix;
     default:
-    {
-      std::stringstream ss;
-      ss << "compiler error: no C# name for base type " << tbase->get_base();
-      throw ss.str();
-    }
+      throw "compiler error: no C# name for base type " + t_base_type::t_base_name(tbase->get_base());
   }
 }
 
diff --git a/compiler/cpp/src/generate/t_d_generator.cc b/compiler/cpp/src/generate/t_d_generator.cc
index 58dbb9a..706506a 100644
--- a/compiler/cpp/src/generate/t_d_generator.cc
+++ b/compiler/cpp/src/generate/t_d_generator.cc
@@ -740,7 +740,12 @@
     case t_field::T_REQUIRED:
       return "TReq.REQUIRED";
     default:
-      throw "Compiler error: Invalid requirement level: " + req;
+      {
+        std::stringstream ss;
+        ss << "Compiler error: Invalid requirement level " << req;
+        throw ss.str();
+      }
+	  
     }
   }
 
diff --git a/compiler/cpp/src/generate/t_delphi_generator.cc b/compiler/cpp/src/generate/t_delphi_generator.cc
index 4ecc269..b877e86 100644
--- a/compiler/cpp/src/generate/t_delphi_generator.cc
+++ b/compiler/cpp/src/generate/t_delphi_generator.cc
@@ -1127,7 +1127,7 @@
         }
         break;
       default:
-          render << "";
+          throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (truetype->is_enum()) {
     render << type_name( type, false) << "." << value->get_identifier_name();
@@ -2232,7 +2232,7 @@
           out << "ReadDouble();";
           break;
         default:
-          throw "compiler error: no C# name for base type " + tbase;
+          throw "compiler error: no Delphi name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "ReadI32()";
@@ -2415,7 +2415,7 @@
           out << "WriteDouble(" << name << ");";
           break;
         default:
-          throw "compiler error: no Delphi name for base type " + tbase;
+          throw "compiler error: no Delphi name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "WriteI32(Integer(" << name << "));";
@@ -2662,7 +2662,7 @@
       
       // we better always report any unknown types
       default:
-        throw "compiler error: no input_arg_prefix() for base type " + (((t_base_type*)ttype)->get_base());
+        throw "compiler error: no input_arg_prefix() for base type " + t_base_type::t_base_name(((t_base_type*)ttype)->get_base());
     }
   
   // enums
@@ -2713,7 +2713,7 @@
     case t_base_type::TYPE_DOUBLE:
       return "Double";
     default:
-      throw "compiler error: no Delphi name for base type " + tbase->get_base();
+      throw "compiler error: no Delphi name for base type " + t_base_type::t_base_name(tbase->get_base());
   }
 }
 
diff --git a/compiler/cpp/src/generate/t_javame_generator.cc b/compiler/cpp/src/generate/t_javame_generator.cc
index a2a31a5..6d02979 100644
--- a/compiler/cpp/src/generate/t_javame_generator.cc
+++ b/compiler/cpp/src/generate/t_javame_generator.cc
@@ -2953,7 +2953,7 @@
   case t_base_type::TYPE_DOUBLE:
     return (in_container ? "Double" : "double");
   default:
-    throw "compiler error: no C++ name for base type " + t_base_type::t_base_name(tbase);
+    throw "compiler error: no Java name for base type " + t_base_type::t_base_name(tbase);
   }
 }
 
diff --git a/compiler/cpp/src/generate/t_ocaml_generator.cc b/compiler/cpp/src/generate/t_ocaml_generator.cc
index 8ee870f..f3df4e3 100644
--- a/compiler/cpp/src/generate/t_ocaml_generator.cc
+++ b/compiler/cpp/src/generate/t_ocaml_generator.cc
@@ -1462,7 +1462,7 @@
       out << "readDouble";
       break;
     default:
-      throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
+      throw "compiler error: no ocaml name for base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     string ename = capitalize(type->get_name());
diff --git a/compiler/cpp/src/generate/t_xsd_generator.cc b/compiler/cpp/src/generate/t_xsd_generator.cc
index ef00e51..7135f6a 100644
--- a/compiler/cpp/src/generate/t_xsd_generator.cc
+++ b/compiler/cpp/src/generate/t_xsd_generator.cc
@@ -359,7 +359,7 @@
   case t_base_type::TYPE_DOUBLE:
     return "decimal";
   default:
-    throw "compiler error: no C++ base type name for base type " + t_base_type::t_base_name(tbase);
+    throw "compiler error: no XSD base type name for base type " + t_base_type::t_base_name(tbase);
   }
 }