mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
RemoteAST: Add experimental swift::remoteAST::getTypeForMangling() entry point
This will eventually replace swift::ide::getTypeFromMangledSymbolname().
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user