Now persistent expression data no longer lives with the Target, but rather with
the corresponding TypeSystem.  This makes sense because what kind of data there
is -- and how it can be looked up -- depends on the language.

Functionality that is common to all type systems is factored out into
PersistentExpressionState.

llvm-svn: 248934
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h b/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h
index 828badb..4c6a19d 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h
@@ -13,6 +13,8 @@
 #include "ClangExpressionVariable.h"
 #include "ClangModulesDeclVendor.h"
 
+#include "lldb/Expression/ExpressionVariable.h"
+
 #include "llvm/ADT/DenseMap.h"
 
 namespace lldb_private
@@ -26,7 +28,7 @@
 /// ClangPersistentVariable for more discussion.  Also provides an increasing,
 /// 0-based counter for naming result variables.
 //----------------------------------------------------------------------
-class ClangPersistentVariables : public ExpressionVariableList
+class ClangPersistentVariables : public PersistentExpressionState
 {
 public:
     
@@ -34,6 +36,16 @@
     /// Constructor
     //----------------------------------------------------------------------
     ClangPersistentVariables ();
+    
+    ~ClangPersistentVariables () { }
+    
+    //------------------------------------------------------------------
+    // llvm casting support
+    //------------------------------------------------------------------
+    static bool classof(const PersistentExpressionState *pv)
+    {
+        return pv->getKind() == PersistentExpressionState::eKindClang;
+    }
 
     lldb::ExpressionVariableSP
     CreatePersistentVariable (const lldb::ValueObjectSP &valobj_sp);
@@ -53,10 +65,10 @@
     ///     A string that contains the next persistent variable name.
     //----------------------------------------------------------------------
     ConstString
-    GetNextPersistentVariableName ();
+    GetNextPersistentVariableName () override;
     
     void
-    RemovePersistentVariable (lldb::ExpressionVariableSP variable);
+    RemovePersistentVariable (lldb::ExpressionVariableSP variable) override;
 
     void
     RegisterPersistentType (const ConstString &name,