diff options
author | Samuel Benzaquen <sbenza@google.com> | 2013-06-20 14:28:32 +0000 |
---|---|---|
committer | Samuel Benzaquen <sbenza@google.com> | 2013-06-20 14:28:32 +0000 |
commit | 81ef929b8f0fc5bbbe6d7edbde38670bd26f8a5e (patch) | |
tree | cf62c7e9897b154061b7c94e4e65b8c1bd23639c /clang/lib/ASTMatchers/Dynamic/VariantValue.cpp | |
parent | ca692609d0547908b95e884b881a6bb2f985126b (diff) | |
download | bcm5719-llvm-81ef929b8f0fc5bbbe6d7edbde38670bd26f8a5e.tar.gz bcm5719-llvm-81ef929b8f0fc5bbbe6d7edbde38670bd26f8a5e.zip |
Enhancements for the DynTypedMatcher system.
- Added conversion routines and checks in Matcher<T> that take a DynTypedMatcher.
- Added type information on the error messages for the marshallers.
- Allows future work on Polymorphic/overloaded matchers. We should be
able to disambiguate at runtime and choose the appropriate overload.
llvm-svn: 184429
Diffstat (limited to 'clang/lib/ASTMatchers/Dynamic/VariantValue.cpp')
-rw-r--r-- | clang/lib/ASTMatchers/Dynamic/VariantValue.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp b/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp index 6fcbe7fc495..912858f5485 100644 --- a/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp +++ b/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp @@ -14,6 +14,8 @@ #include "clang/ASTMatchers/Dynamic/VariantValue.h" +#include "clang/Basic/LLVM.h" + namespace clang { namespace ast_matchers { namespace dynamic { @@ -123,6 +125,18 @@ void VariantValue::takeMatcher(DynTypedMatcher *NewValue) { Value.Matcher = NewValue; } +std::string VariantValue::getTypeAsString() const { + switch (Type) { + case VT_String: return "String"; + case VT_Matcher: + return (Twine("Matcher<") + getMatcher().getSupportedKind().asStringRef() + + ">").str(); + case VT_Unsigned: return "Unsigned"; + case VT_Nothing: return "Nothing"; + } + llvm_unreachable("Invalid Type"); +} + } // end namespace dynamic } // end namespace ast_matchers } // end namespace clang |