Skip to content

Commit f4d1e1c

Browse files
committed
Swift: Handle InlineArrayTypes
1 parent 72e8ec3 commit f4d1e1c

File tree

19 files changed

+220
-7
lines changed

19 files changed

+220
-7
lines changed

swift/extractor/infra/SwiftTagTraits.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ MAP(swift::TypeBase, TypeTag)
348348
MAP(swift::ArraySliceType, ArraySliceTypeTag)
349349
MAP(swift::OptionalType, OptionalTypeTag)
350350
MAP(swift::VariadicSequenceType, VariadicSequenceTypeTag)
351-
MAP(swift::InlineArrayType, void) // TODO: Swift 6.2
351+
MAP(swift::InlineArrayType, InlineArrayTypeTag)
352352
MAP(swift::DictionaryType, DictionaryTypeTag)
353353

354354
MAP(swift::AvailabilitySpec, AvailabilitySpecTag)

swift/extractor/translators/TypeTranslator.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ codeql::ArraySliceType TypeTranslator::translateArraySliceType(const swift::Arra
8888
return entry;
8989
}
9090

91+
codeql::InlineArrayType TypeTranslator::translateInlineArrayType(
92+
const swift::InlineArrayType& type) {
93+
auto entry = createTypeEntry(type);
94+
entry.count_type = dispatcher.fetchLabel(type.getCountType());
95+
entry.element_type = dispatcher.fetchLabel(type.getElementType());
96+
return entry;
97+
}
98+
9199
codeql::DictionaryType TypeTranslator::translateDictionaryType(const swift::DictionaryType& type) {
92100
auto entry = createTypeEntry(type);
93101
entry.key_type = dispatcher.fetchLabel(type.getKeyType());

swift/extractor/translators/TypeTranslator.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class TypeTranslator : public TypeTranslatorBase<TypeTranslator> {
2828
const swift::UnarySyntaxSugarType& type);
2929
codeql::OptionalType translateOptionalType(const swift::OptionalType& type);
3030
codeql::ArraySliceType translateArraySliceType(const swift::ArraySliceType& type);
31+
codeql::InlineArrayType translateInlineArrayType(const swift::InlineArrayType& type);
3132
codeql::DictionaryType translateDictionaryType(const swift::DictionaryType& type);
3233
codeql::GenericFunctionType translateGenericFunctionType(const swift::GenericFunctionType& type);
3334
codeql::GenericTypeParamType translateGenericTypeParamType(

swift/ql/.generated.list

Lines changed: 10 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

swift/ql/.gitattributes

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

swift/ql/lib/codeql/swift/elements.qll

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

swift/ql/lib/codeql/swift/elements/type/InlineArrayType.qll

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

swift/ql/lib/codeql/swift/elements/type/internal/InlineArrayTypeConstructor.qll

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

swift/ql/lib/codeql/swift/elements/type/internal/InlineArrayTypeImpl.qll

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

swift/ql/lib/codeql/swift/generated/ParentChild.qll

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)