Various build fixes for clang and rust
diff --git a/compiler/cpp/src/thrift/generate/t_go_generator.h b/compiler/cpp/src/thrift/generate/t_go_generator.h
index d84b186..72825bc 100644
--- a/compiler/cpp/src/thrift/generate/t_go_generator.h
+++ b/compiler/cpp/src/thrift/generate/t_go_generator.h
@@ -288,7 +288,7 @@
 
   static bool is_pointer_field(t_field* tfield, bool in_container = false);
 
-  std::string indent_str() const {
+  std::string indent_str() const override {
     return "\t";
   }
 
diff --git a/compiler/cpp/src/thrift/parse/t_function.h b/compiler/cpp/src/thrift/parse/t_function.h
index d2cb19b..abe2903 100644
--- a/compiler/cpp/src/thrift/parse/t_function.h
+++ b/compiler/cpp/src/thrift/parse/t_function.h
@@ -83,7 +83,7 @@
 
   std::map<std::string, std::vector<std::string>> annotations_;
 
-  void validate() const {
+  void validate() const override {
     get_returntype()->validate();
 
 #ifndef ALLOW_EXCEPTIONS_AS_TYPE
diff --git a/compiler/cpp/src/thrift/parse/t_list.h b/compiler/cpp/src/thrift/parse/t_list.h
index 162281c..9c1dfad 100644
--- a/compiler/cpp/src/thrift/parse/t_list.h
+++ b/compiler/cpp/src/thrift/parse/t_list.h
@@ -34,7 +34,7 @@
 
   bool is_list() const override { return true; }
 
-  void validate() const {
+  void validate() const override {
 #ifndef ALLOW_EXCEPTIONS_AS_TYPE
     if( get_elem_type()->get_true_type()->is_xception()) {
       failure("exception type \"%s\" cannot be used inside a list", get_elem_type()->get_name().c_str());
diff --git a/compiler/cpp/src/thrift/parse/t_map.h b/compiler/cpp/src/thrift/parse/t_map.h
index 30a8b06..6ec58cf 100644
--- a/compiler/cpp/src/thrift/parse/t_map.h
+++ b/compiler/cpp/src/thrift/parse/t_map.h
@@ -37,7 +37,7 @@
 
   bool is_map() const override { return true; }
 
-  void validate() const {
+  void validate() const override {
 #ifndef ALLOW_EXCEPTIONS_AS_TYPE
     if( get_key_type()->get_true_type()->is_xception()) {
       failure("exception type \"%s\" cannot be used inside a map", get_key_type()->get_name().c_str());
diff --git a/compiler/cpp/src/thrift/parse/t_set.h b/compiler/cpp/src/thrift/parse/t_set.h
index 88de93f..8f7599a 100644
--- a/compiler/cpp/src/thrift/parse/t_set.h
+++ b/compiler/cpp/src/thrift/parse/t_set.h
@@ -36,7 +36,7 @@
 
   bool is_set() const override { return true; }
 
-  void validate() const {
+  void validate() const override {
 #ifndef ALLOW_EXCEPTIONS_AS_TYPE
     if( get_elem_type()->get_true_type()->is_xception()) {
       failure("exception type \"%s\" cannot be used inside a set", get_elem_type()->get_name().c_str());
diff --git a/compiler/cpp/src/thrift/parse/t_struct.h b/compiler/cpp/src/thrift/parse/t_struct.h
index 3aa67c0..8b33ee6 100644
--- a/compiler/cpp/src/thrift/parse/t_struct.h
+++ b/compiler/cpp/src/thrift/parse/t_struct.h
@@ -130,7 +130,7 @@
     return nullptr;
   }
 
-  void validate() const {
+  void validate() const override {
     std::string what = "struct";
     if( is_union()) {
       what = "union";
diff --git a/tutorial/rs/src/bin/tutorial_client.rs b/tutorial/rs/src/bin/tutorial_client.rs
index 4bf2ec0..b79ae83 100644
--- a/tutorial/rs/src/bin/tutorial_client.rs
+++ b/tutorial/rs/src/bin/tutorial_client.rs
@@ -107,7 +107,7 @@
 
     // open the underlying TCP stream
     println!("connecting to tutorial server on {}:{}", host, port);
-    c.open(&format!("{}:{}", host, port))?;
+    c.open(format!("{}:{}", host, port))?;
 
     // clone the TCP channel into two halves, one which
     // we'll use for reading, the other for writing