Index: src/Concurrency/WaitforNew.cpp
===================================================================
--- src/Concurrency/WaitforNew.cpp	(revision 1c0657a24705f031e11cf6079e70e920d69afcfa)
+++ src/Concurrency/WaitforNew.cpp	(revision c36814a10414e8846cf2d03be08ada58aafc93a7)
@@ -101,5 +101,5 @@
 namespace {
 
-class GenerateWaitForCore :
+class GenerateWaitForCore final :
 		public ast::WithSymbolTable, public ast::WithConstTranslationUnit {
 	const ast::FunctionDecl * decl_waitfor    = nullptr;
Index: src/ControlStruct/ExceptTranslateNew.cpp
===================================================================
--- src/ControlStruct/ExceptTranslateNew.cpp	(revision 1c0657a24705f031e11cf6079e70e920d69afcfa)
+++ src/ControlStruct/ExceptTranslateNew.cpp	(revision c36814a10414e8846cf2d03be08ada58aafc93a7)
@@ -32,5 +32,5 @@
 	}
 
-class TranslateThrowsCore : public ast::WithGuards {
+class TranslateThrowsCore final : public ast::WithGuards {
 	const ast::ObjectDecl * terminateHandlerExcept;
 	enum Context { NoHandler, TerHandler, ResHandler } currentContext;
@@ -136,5 +136,5 @@
 
 
-class TryMutatorCore {
+class TryMutatorCore final {
 	// The built in types used in translation.
 	const ast::StructDecl * except_decl;
Index: src/GenPoly/InstantiateGenericNew.cpp
===================================================================
--- src/GenPoly/InstantiateGenericNew.cpp	(revision 1c0657a24705f031e11cf6079e70e920d69afcfa)
+++ src/GenPoly/InstantiateGenericNew.cpp	(revision c36814a10414e8846cf2d03be08ada58aafc93a7)
@@ -85,5 +85,5 @@
 
 /// Maps a key and a TypeList to a valuue. Also supports scoping.
-class InstantiationMap {
+class InstantiationMap final {
 	/// Wraps value for a specific (AggregateDecl, TypeList) combination.
 	using Instantiation = std::pair<TypeList, ast::ptr<ast::AggregateDecl>>;
Index: src/GenPoly/SpecializeNew.cpp
===================================================================
--- src/GenPoly/SpecializeNew.cpp	(revision 1c0657a24705f031e11cf6079e70e920d69afcfa)
+++ src/GenPoly/SpecializeNew.cpp	(revision c36814a10414e8846cf2d03be08ada58aafc93a7)
@@ -240,21 +240,19 @@
 }
 
-namespace {
-	struct TypeInstFixer : public ast::WithShortCircuiting {
-		std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap;
-
-		void previsit(const ast::TypeDecl *) { visit_children = false; }
-		const ast::TypeInstType * postvisit(const ast::TypeInstType * typeInst) {
-			if (typeMap.count(typeInst->base)) {
-				ast::TypeInstType * newInst = mutate(typeInst);
-				auto const & pair = typeMap[typeInst->base];
-				newInst->expr_id = pair.first;
-				newInst->formal_usage = pair.second;
-				return newInst;
-			}
-			return typeInst;
-		}
-	};
-}
+struct TypeInstFixer final : public ast::WithShortCircuiting {
+	std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap;
+
+	void previsit(const ast::TypeDecl *) { visit_children = false; }
+	const ast::TypeInstType * postvisit(const ast::TypeInstType * typeInst) {
+		if (typeMap.count(typeInst->base)) {
+			ast::TypeInstType * newInst = mutate(typeInst);
+			auto const & pair = typeMap[typeInst->base];
+			newInst->expr_id = pair.first;
+			newInst->formal_usage = pair.second;
+			return newInst;
+		}
+		return typeInst;
+	}
+};
 
 const ast::Expr * SpecializeCore::createThunkFunction(
Index: src/Tuples/TupleExpansionNew.cpp
===================================================================
--- src/Tuples/TupleExpansionNew.cpp	(revision 1c0657a24705f031e11cf6079e70e920d69afcfa)
+++ src/Tuples/TupleExpansionNew.cpp	(revision c36814a10414e8846cf2d03be08ada58aafc93a7)
@@ -101,5 +101,5 @@
 
 /// Replaces Tuple Assign & Index Expressions, and Tuple Types.
-struct TupleMainExpander :
+struct TupleMainExpander final :
 		public ast::WithGuards,
 		public ast::WithVisitorRef<TupleMainExpander>,
@@ -254,5 +254,5 @@
 }
 
-struct TupleExprExpander {
+struct TupleExprExpander final {
 	ast::Expr const * postvisit( ast::TupleExpr const * expr ) {
 		return replaceTupleExpr( expr->location,
Index: src/Virtual/ExpandCasts.cc
===================================================================
--- src/Virtual/ExpandCasts.cc	(revision 1c0657a24705f031e11cf6079e70e920d69afcfa)
+++ src/Virtual/ExpandCasts.cc	(revision c36814a10414e8846cf2d03be08ada58aafc93a7)
@@ -317,5 +317,5 @@
 };
 
-struct ExpandCastsCore {
+struct ExpandCastsCore final {
 	void previsit( ast::FunctionDecl const * decl );
 	void previsit( ast::StructDecl const * decl );
