aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/lldb/include/lldb/Target/Language.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/lldb/include/lldb/Target/Language.h')
-rw-r--r--contrib/llvm-project/lldb/include/lldb/Target/Language.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/contrib/llvm-project/lldb/include/lldb/Target/Language.h b/contrib/llvm-project/lldb/include/lldb/Target/Language.h
index 6368828e36da..11b9daa38945 100644
--- a/contrib/llvm-project/lldb/include/lldb/Target/Language.h
+++ b/contrib/llvm-project/lldb/include/lldb/Target/Language.h
@@ -184,14 +184,31 @@ public:
virtual const char *GetLanguageSpecificTypeLookupHelp();
+ class MethodNameVariant {
+ ConstString m_name;
+ lldb::FunctionNameType m_type;
+
+ public:
+ MethodNameVariant(ConstString name, lldb::FunctionNameType type)
+ : m_name(name), m_type(type) {}
+ ConstString GetName() const { return m_name; }
+ lldb::FunctionNameType GetType() const { return m_type; }
+ };
// If a language can have more than one possible name for a method, this
// function can be used to enumerate them. This is useful when doing name
// lookups.
- virtual std::vector<ConstString>
+ virtual std::vector<Language::MethodNameVariant>
GetMethodNameVariants(ConstString method_name) const {
- return std::vector<ConstString>();
+ return std::vector<Language::MethodNameVariant>();
};
+ /// Returns true iff the given symbol name is compatible with the mangling
+ /// scheme of this language.
+ ///
+ /// This function should only return true if there is a high confidence
+ /// that the name actually belongs to this language.
+ virtual bool SymbolNameFitsToLanguage(Mangled name) const { return false; }
+
// if an individual data formatter can apply to several types and cross a
// language boundary it makes sense for individual languages to want to
// customize the printing of values of that type by appending proper