RemoteAST: Add experimental swift::remoteAST::getTypeForMangling() entry point

This will eventually replace swift::ide::getTypeFromMangledSymbolname().
This commit is contained in:
Slava Pestov
2018-11-02 00:46:22 -04:00
parent 2f901a7fa1
commit 9074136a09
2 changed files with 15 additions and 0 deletions

View File

@@ -29,6 +29,7 @@
#include "swift/AST/TypeRepr.h"
#include "swift/Basic/Mangler.h"
#include "swift/ClangImporter/ClangImporter.h"
#include "swift/Demangling/Demangler.h"
#include "llvm/ADT/StringSwitch.h"
// TODO: Develop a proper interface for this.
@@ -1342,3 +1343,14 @@ RemoteASTContext::getDynamicTypeAndAddressForExistential(
return asImpl(Impl)->getDynamicTypeAndAddressForExistential(address,
staticType);
}
Type swift::remoteAST::getTypeForMangling(ASTContext &ctx,
StringRef mangling) {
Demangle::Context Dem;
auto node = Dem.demangleSymbolAsNode(mangling);
if (!node)
return Type();
RemoteASTTypeBuilder builder(ctx);
return swift::Demangle::decodeMangledType(builder, node);
}