Skip to content

Commit 3f467c8

Browse files
author
git apple-llvm automerger
committed
Merge commit 'bbea9d7fa920' from swift/release/6.2 into stable/20240723
2 parents 68128bc + bbea9d7 commit 3f467c8

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

lldb/source/Plugins/TypeSystem/Swift/TypeSystemSwiftTypeRef.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3057,9 +3057,8 @@ bool TypeSystemSwiftTypeRef::IsFunctionType(opaque_compiler_type_t type) {
30573057
using namespace swift::Demangle;
30583058
Demangler dem;
30593059
NodePointer node = DemangleCanonicalOutermostType(dem, type);
3060-
// Note: There are a number of other candidates, and this list may need
3061-
// updating. Ex: `NoEscapeFunctionType`, `ThinFunctionType`, etc.
30623060
return node && (node->getKind() == Node::Kind::FunctionType ||
3061+
node->getKind() == Node::Kind::ThinFunctionType ||
30633062
node->getKind() == Node::Kind::NoEscapeFunctionType ||
30643063
node->getKind() == Node::Kind::ImplFunctionType);
30653064
};

lldb/unittests/Symbol/TestTypeSystemSwiftTypeRef.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,18 @@ TEST_F(TestTypeSystemSwiftTypeRef, Function) {
148148
ASSERT_TRUE(void_void.IsFunctionPointerType());
149149
ASSERT_EQ(void_void.GetNumberOfFunctionArguments(), 0UL);
150150
}
151+
{
152+
NodePointer n = b.GlobalType(
153+
b.Node(Node::Kind::ThinFunctionType,
154+
b.Node(Node::Kind::ArgumentTuple,
155+
b.Node(Node::Kind::Type, b.Node(Node::Kind::Tuple))),
156+
b.Node(Node::Kind::ReturnType,
157+
b.Node(Node::Kind::Type, b.Node(Node::Kind::Tuple)))));
158+
CompilerType void_void = GetCompilerType(b.Mangle(n));
159+
ASSERT_TRUE(void_void.IsFunctionType());
160+
ASSERT_TRUE(void_void.IsFunctionPointerType());
161+
ASSERT_EQ(void_void.GetNumberOfFunctionArguments(), 0UL);
162+
}
151163
{
152164
NodePointer n = b.GlobalType(
153165
b.Node(Node::Kind::ImplFunctionType, b.Node(Node::Kind::ImplEscaping),

0 commit comments

Comments
 (0)