Skip to content

Commit f3b8ee7

Browse files
TeemperorRaphael Isemann
authored andcommitted
[upstreaming] Move GetGenericArgumentType to SwiftASTContext
1 parent 0db9065 commit f3b8ee7

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
@@ -331,8 +331,6 @@ class CompilerType {
331331
lldb::TemplateArgumentKind GetTemplateArgumentKind(size_t idx) const;
332332
CompilerType GetTypeTemplateArgument(size_t idx) const;
333333

334-
CompilerType GetGenericArgumentType(size_t idx) const;
335-
336334
// Returns the value of the template argument and its type.
337335
llvm::Optional<IntegralTemplateArgument>
338336
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
@@ -597,7 +597,8 @@ class SwiftASTContext : public TypeSystem {
597597
lldb::GenericKind GetGenericArgumentKind(void *type, size_t idx);
598598
CompilerType GetUnboundGenericType(void *type, size_t idx);
599599
CompilerType GetBoundGenericType(void *type, size_t idx);
600-
CompilerType GetGenericArgumentType(void *type, size_t idx) override;
600+
static CompilerType GetGenericArgumentType(CompilerType ct, size_t idx);
601+
CompilerType GetGenericArgumentType(void *type, size_t idx);
601602

602603
CompilerType GetTypeForFormatters(void *type) override;
603604

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
@@ -711,13 +711,6 @@ CompilerType CompilerType::GetTypeTemplateArgument(size_t idx) const {
711711
return CompilerType();
712712
}
713713

714-
CompilerType CompilerType::GetGenericArgumentType(size_t idx) const {
715-
if (IsValid()) {
716-
return m_type_system->GetGenericArgumentType(m_type, idx);
717-
}
718-
return CompilerType();
719-
}
720-
721714
llvm::Optional<CompilerType::IntegralTemplateArgument>
722715
CompilerType::GetIntegralTemplateArgument(size_t idx) const {
723716
if (IsValid())

lldb/source/Symbol/SwiftASTContext.cpp

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

7712+
CompilerType SwiftASTContext::GetGenericArgumentType(CompilerType ct, size_t idx) {
7713+
if (!ct)
7714+
return {};
7715+
7716+
SwiftASTContext *ctxt = llvm::dyn_cast<SwiftASTContext>(ct.GetTypeSystem());
7717+
7718+
if (!ctxt)
7719+
return CompilerType();
7720+
7721+
return ctxt->GetGenericArgumentType(ct.GetOpaqueQualType(), idx);
7722+
}
7723+
77127724
CompilerType SwiftASTContext::GetGenericArgumentType(void *type, size_t idx) {
77137725
VALID_OR_RETURN(CompilerType());
77147726

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)