Skip to content

Commit dd64a25

Browse files
authored
Merge pull request #266 from Teemperor/RemoveGetGenericArgumentTypeMaster
[upstreaming] Move GetGenericArgumentType to SwiftASTContext
2 parents e42e9fc + f3b8ee7 commit dd64a25

File tree

8 files changed

+19
-21
lines changed

8 files changed

+19
-21
lines changed

lldb/include/lldb/Symbol/CompilerType.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,8 +329,6 @@ class CompilerType {
329329
lldb::TemplateArgumentKind GetTemplateArgumentKind(size_t idx) const;
330330
CompilerType GetTypeTemplateArgument(size_t idx) const;
331331

332-
CompilerType GetGenericArgumentType(size_t idx) const;
333-
334332
// Returns the value of the template argument and its type.
335333
llvm::Optional<IntegralTemplateArgument>
336334
GetIntegralTemplateArgument(size_t idx) const;

lldb/include/lldb/Symbol/SwiftASTContext.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,8 @@ class SwiftASTContext : public TypeSystem {
600600
lldb::GenericKind GetGenericArgumentKind(void *type, size_t idx);
601601
CompilerType GetUnboundGenericType(void *type, size_t idx);
602602
CompilerType GetBoundGenericType(void *type, size_t idx);
603-
CompilerType GetGenericArgumentType(void *type, size_t idx) override;
603+
static CompilerType GetGenericArgumentType(CompilerType ct, size_t idx);
604+
CompilerType GetGenericArgumentType(void *type, size_t idx);
604605

605606
CompilerType GetTypeForFormatters(void *type) override;
606607

lldb/include/lldb/Symbol/TypeSystem.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,8 +384,6 @@ class TypeSystem : public PluginInterface {
384384
virtual llvm::Optional<CompilerType::IntegralTemplateArgument>
385385
GetIntegralTemplateArgument(lldb::opaque_compiler_type_t type, size_t idx);
386386

387-
virtual CompilerType GetGenericArgumentType(void *type, size_t idx);
388-
389387
// Dumping types
390388

391389
#ifndef NDEBUG

lldb/source/Plugins/Language/Swift/SwiftArray.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ SwiftArrayBufferHandler::CreateBufferHandler(ValueObject &valobj) {
342342
swift_runtime->GetMetadataPromise(argmetadata_ptr, valobj));
343343
if (promise_sp)
344344
if (CompilerType type = promise_sp->FulfillTypePromise())
345-
argument_type = type.GetGenericArgumentType(0);
345+
argument_type = SwiftASTContext::GetGenericArgumentType(type, 0);
346346

347347
if (!argument_type.IsValid())
348348
return nullptr;

lldb/source/Plugins/Language/Swift/SwiftHashedContainer.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,8 @@ HashedCollectionConfig::CreateNativeHandler(
366366
}
367367

368368
if (typeName.startswith(m_nativeStorage_demangledPrefix.GetStringRef())) {
369-
auto key_type = type.GetGenericArgumentType(0);
370-
auto value_type = type.GetGenericArgumentType(1);
369+
auto key_type = SwiftASTContext::GetGenericArgumentType(type, 0);
370+
auto value_type = SwiftASTContext::GetGenericArgumentType(type, 1);
371371
if (key_type.IsValid()) {
372372
return _CreateNativeHandler(dynamic_storage_sp, key_type, value_type);
373373
}
@@ -377,8 +377,8 @@ HashedCollectionConfig::CreateNativeHandler(
377377
// is some valid storage class instance, and attempt to get
378378
// key/value types from value_sp.
379379
type = value_sp->GetCompilerType();
380-
CompilerType key_type = type.GetGenericArgumentType(0);
381-
CompilerType value_type = type.GetGenericArgumentType(1);
380+
CompilerType key_type = SwiftASTContext::GetGenericArgumentType(type, 0);
381+
CompilerType value_type = SwiftASTContext::GetGenericArgumentType(type, 1);
382382
if (key_type.IsValid()) {
383383
return _CreateNativeHandler(storage_sp, key_type, value_type);
384384
}

lldb/source/Symbol/CompilerType.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -705,13 +705,6 @@ CompilerType CompilerType::GetTypeTemplateArgument(size_t idx) const {
705705
return CompilerType();
706706
}
707707

708-
CompilerType CompilerType::GetGenericArgumentType(size_t idx) const {
709-
if (IsValid()) {
710-
return m_type_system->GetGenericArgumentType(m_type, idx);
711-
}
712-
return CompilerType();
713-
}
714-
715708
llvm::Optional<CompilerType::IntegralTemplateArgument>
716709
CompilerType::GetIntegralTemplateArgument(size_t idx) const {
717710
if (IsValid())

lldb/source/Symbol/SwiftASTContext.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7778,6 +7778,18 @@ CompilerType SwiftASTContext::GetUnboundGenericType(void *type, size_t idx) {
77787778
return {};
77797779
}
77807780

7781+
CompilerType SwiftASTContext::GetGenericArgumentType(CompilerType ct, size_t idx) {
7782+
if (!ct)
7783+
return {};
7784+
7785+
SwiftASTContext *ctxt = llvm::dyn_cast<SwiftASTContext>(ct.GetTypeSystem());
7786+
7787+
if (!ctxt)
7788+
return CompilerType();
7789+
7790+
return ctxt->GetGenericArgumentType(ct.GetOpaqueQualType(), idx);
7791+
}
7792+
77817793
CompilerType SwiftASTContext::GetGenericArgumentType(void *type, size_t idx) {
77827794
VALID_OR_RETURN(CompilerType());
77837795

lldb/source/Symbol/TypeSystem.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,6 @@ CompilerType TypeSystem::GetTypeTemplateArgument(opaque_compiler_type_t type,
141141
return CompilerType();
142142
}
143143

144-
CompilerType TypeSystem::GetGenericArgumentType(void *type, size_t idx) {
145-
return CompilerType();
146-
}
147-
148144
llvm::Optional<CompilerType::IntegralTemplateArgument>
149145
TypeSystem::GetIntegralTemplateArgument(opaque_compiler_type_t type,
150146
size_t idx) {

0 commit comments

Comments
 (0)