Skip to content

Commit d53d275

Browse files
authored
Merge pull request #11450 from d10c/swift/missing-enum-cases
Swift: extract missing cases of `AccessorKind` and `AccessSemantics` enums
2 parents 3d04b26 + 91edeac commit d53d275

File tree

29 files changed

+10330
-152
lines changed

29 files changed

+10330
-152
lines changed

swift/downgrades/1a6e9325bd60462e669e524438174deef4476df0/old.dbscheme

Lines changed: 2513 additions & 0 deletions
Large diffs are not rendered by default.

swift/downgrades/1a6e9325bd60462e669e524438174deef4476df0/swift.dbscheme

Lines changed: 2478 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
description: Revert adding missing Accessor and AccessSemantics cases
2+
compatibility: full
3+
accessor_decl_is_read.rel: delete
4+
accessor_decl_is_modify.rel: delete
5+
accessor_decl_is_unsafe_address.rel: delete
6+
accessor_decl_is_unsafe_mutable_address.rel: delete
7+
decl_ref_expr_has_distributed_thunk_semantics.rel: delete
8+
member_ref_expr_has_distributed_thunk_semantics.rel: delete
9+
subscript_expr_has_distributed_thunk_semantics.rel: delete

swift/extractor/remapping/SwiftOpenInterception.macOS.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ static std::string originalHashFile(const fs::path& filename) {
2727
}
2828

2929
static int codeql_open(const char* path, int oflag, ...) {
30-
va_list ap = {0};
30+
va_list ap;
3131
mode_t mode = 0;
3232
if ((oflag & O_CREAT) != 0) {
3333
// mode only applies to O_CREAT

swift/extractor/translators/DeclTranslator.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,18 @@ std::optional<codeql::AccessorDecl> DeclTranslator::translateAccessorDecl(
231231
case swift::AccessorKind::DidSet:
232232
entry->is_did_set = true;
233233
break;
234+
case swift::AccessorKind::Read:
235+
entry->is_read = true;
236+
break;
237+
case swift::AccessorKind::Modify:
238+
entry->is_modify = true;
239+
break;
240+
case swift::AccessorKind::Address:
241+
entry->is_unsafe_address = true;
242+
break;
243+
case swift::AccessorKind::MutableAddress:
244+
entry->is_unsafe_mutable_address = true;
245+
break;
234246
}
235247
fillAbstractFunctionDecl(decl, *entry);
236248
return entry;

swift/extractor/translators/ExprTranslator.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ void ExprTranslator::fillAccessorSemantics(const T& ast, TrapClassOf<T>& entry)
1616
case swift::AccessSemantics::Ordinary:
1717
entry.has_ordinary_semantics = true;
1818
break;
19+
case swift::AccessSemantics::DistributedThunk:
20+
entry.has_distributed_thunk_semantics = true;
21+
break;
1922
}
2023
}
2124

swift/extractor/trap/TrapTagTraits.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// label tags
55

66
#include <type_traits>
7+
#include "swift/extractor/trap/TrapLabel.h"
78

89
namespace codeql {
910

swift/ql/.generated.list

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -378,9 +378,9 @@ ql/lib/codeql/swift/generated/ErrorElement.qll 4b032abe8ffb71376a29c63e470a52943
378378
ql/lib/codeql/swift/generated/File.qll 61454459f5f1ae378bd4970ad1da4f39f3e696bac8a5eebdd162f131995c5316 3e6805f8858cd55dd0e0d0e5aeab923d6a55292dbf98b0029db1ae0208efe684
379379
ql/lib/codeql/swift/generated/Locatable.qll bdc98b9fb7788f44a4bf7e487ee5bd329473409950a8e9f116d61995615ad849 0b36b4fe45e2aa195e4bb70c50ea95f32f141b8e01e5f23466c6427dd9ab88fb
380380
ql/lib/codeql/swift/generated/Location.qll 851766e474cdfdfa67da42e0031fc42dd60196ff5edd39d82f08d3e32deb84c1 b29b2c37672f5acff15f1d3c5727d902f193e51122327b31bd27ec5f877bca3b
381-
ql/lib/codeql/swift/generated/ParentChild.qll 9d6fe5dd7ab99fa9afdc1bd846e21ce951613bbe6a89d4e34c29e36466a8293f e0e59a05018e4b59ebda3a9fdc3435b1c82207b915630d55edbe6d3f92488356
381+
ql/lib/codeql/swift/generated/ParentChild.qll d9c1edbbb28e685d31153c3a17419e80fd106cb580ef8440e25a8709e7f4c021 e0e59a05018e4b59ebda3a9fdc3435b1c82207b915630d55edbe6d3f92488356
382382
ql/lib/codeql/swift/generated/PureSynthConstructors.qll 1cd47d61fec37e019ce2e476603eb2273775bea81062d6bf3d6bbc49796f7b77 1cd47d61fec37e019ce2e476603eb2273775bea81062d6bf3d6bbc49796f7b77
383-
ql/lib/codeql/swift/generated/Raw.qll 34ce12e57d0cfffb8ca127e44041fece4ac6079cb2a80d14e0a05c0a8d344fdd dd7b6f54f2cc4ba1d8ed31168f97e3f6f8197ebb4d759e0bed0ed68d55a43c25
383+
ql/lib/codeql/swift/generated/Raw.qll 74159a7425c2da672d72e71655d27af3479b0acc23d871eafcee7d044d013550 0a6e8a85fbfd7262c983b6a6fedabbe9f11648edbcc52cba5828b97fe18fbd02
384384
ql/lib/codeql/swift/generated/Synth.qll 90df85be365c89c3c2e22041ee7dc9dd2ad9194b66f82e8f9d8fefb8afd900ec 1632984f7a55f6bc55adb9f647baf634b002c299655cbf641dfb110525291689
385385
ql/lib/codeql/swift/generated/SynthConstructors.qll 5c91f09bd82728651ed61f498704e0f62847788fa986dec5e674d81f294076c7 5c91f09bd82728651ed61f498704e0f62847788fa986dec5e674d81f294076c7
386386
ql/lib/codeql/swift/generated/UnknownFile.qll 0fcf9beb8de79440bcdfff4bb6ab3dd139bd273e6c32754e05e6a632651e85f6 0fcf9beb8de79440bcdfff4bb6ab3dd139bd273e6c32754e05e6a632651e85f6
@@ -389,7 +389,7 @@ ql/lib/codeql/swift/generated/UnspecifiedElement.qll dbc6ca4018012977b26ca184a88
389389
ql/lib/codeql/swift/generated/decl/AbstractFunctionDecl.qll 8255b24dddda83e8a7dee9d69a4cf9883b5a7ae43676d7242b5aab5169f68982 407c7d63681fb03ad6cb4ea3c2b04be7ccb5ddbe655a8aec4219eb3799bc36e8
390390
ql/lib/codeql/swift/generated/decl/AbstractStorageDecl.qll 66147ad36cefce974b4ae0f3e84569bd6742ea2f3e842c3c04e6e5cbd17e7928 ce7c2347e2dfe0b141db103ccb8e56a61d286476c201aebe6a275edd7fca2c0f
391391
ql/lib/codeql/swift/generated/decl/AbstractTypeParamDecl.qll 1e268b00d0f2dbbd85aa70ac206c5e4a4612f06ba0091e5253483635f486ccf9 5479e13e99f68f1f347283535f8098964f7fd4a34326ff36ad5711b2de1ab0d0
392-
ql/lib/codeql/swift/generated/decl/AccessorDecl.qll 97773751c95475efd78ee5cb0c71e3094b13bba121b564c99934659d1908dca2 25c97d7586379558ff8f7cea4d4fcf7633256029fe3e560964353c3b90497076
392+
ql/lib/codeql/swift/generated/decl/AccessorDecl.qll 443cb9888dbdbaee680bf24469ce097a8292806dc53f0b109d492db621fa00aa 0dbe38cbbd3f3cd880c1569d9d42165e7cf0358da0cc7cb63e89890310ad40a0
393393
ql/lib/codeql/swift/generated/decl/AssociatedTypeDecl.qll 4169d083104f9c089223ed3c5968f757b8cd6c726887bbb6fbaf21f5ed7ee144 4169d083104f9c089223ed3c5968f757b8cd6c726887bbb6fbaf21f5ed7ee144
394394
ql/lib/codeql/swift/generated/decl/ClassDecl.qll a60e8af2fdbcd20cfa2049660c8bcbbc00508fbd3dde72b4778317dfc23c5ae4 a60e8af2fdbcd20cfa2049660c8bcbbc00508fbd3dde72b4778317dfc23c5ae4
395395
ql/lib/codeql/swift/generated/decl/ConcreteFuncDecl.qll c7192e79ce67f77df36575cceb942f11b182c26c93899469654316de2d543cf9 c7192e79ce67f77df36575cceb942f11b182c26c93899469654316de2d543cf9
@@ -459,7 +459,7 @@ ql/lib/codeql/swift/generated/expr/ConditionalCheckedCastExpr.qll 92a999dd1dcc1f
459459
ql/lib/codeql/swift/generated/expr/ConstructorRefCallExpr.qll d0662d960b78c3cf7e81cf5b619aa9e2a906d35c094ae32702da96720354fe4f d0662d960b78c3cf7e81cf5b619aa9e2a906d35c094ae32702da96720354fe4f
460460
ql/lib/codeql/swift/generated/expr/CovariantFunctionConversionExpr.qll b749118590163eafbd538e71e4c903668451f52ae0dabbb13e504e7b1fefa9e1 d3af8e3beb6e395f537348d875978dfae119243dc3495c48a7c83b056aff2f6c
461461
ql/lib/codeql/swift/generated/expr/CovariantReturnConversionExpr.qll f1b409f0bf54b149deb1a40fbe337579a0f6eb2498ef176ef5f64bc53e94e2fe a32992597057657c7bbf13c809db67844b834668e8d2804adabcf6187d81c244
462-
ql/lib/codeql/swift/generated/expr/DeclRefExpr.qll c68a39ef4445d6c865976fe9f6013bbe77dca68a23d188f1fac3a8492eac70a6 92ae3f39d0e9e1d5017bd660c940225ad2cb07ef9076608dc1bca844adb5d6f0
462+
ql/lib/codeql/swift/generated/expr/DeclRefExpr.qll 441f0cba088ce3845a0d55500cccc94947da440d9f4ce879aed3e5bf5471d48e d54b4d0ca11d85a403fa470407e915472cd51116a633499bdfb293ac5f4a3b77
463463
ql/lib/codeql/swift/generated/expr/DefaultArgumentExpr.qll b38015d25ef840298a284b3f4e20cd444987474545544dc451dd5e12c3783f20 afc581e2127983faae125fd58b24d346bfee34d9a474e6d499e4606b672fe5f0
464464
ql/lib/codeql/swift/generated/expr/DerivedToBaseExpr.qll 5f371b5b82262efb416af1a54073079dcf857f7a744010294f79a631c76c0e68 5f371b5b82262efb416af1a54073079dcf857f7a744010294f79a631c76c0e68
465465
ql/lib/codeql/swift/generated/expr/DestructureTupleExpr.qll 1214d25d0fa6a7c2f183d9b12c97c679e9b92420ca1970d802ea1fe84b42ccc8 1214d25d0fa6a7c2f183d9b12c97c679e9b92420ca1970d802ea1fe84b42ccc8
@@ -507,7 +507,7 @@ ql/lib/codeql/swift/generated/expr/LoadExpr.qll 90b9ba4c96c26c476c3692b1200c3107
507507
ql/lib/codeql/swift/generated/expr/LookupExpr.qll 4b8c4f710e3cbdeb684a07c105f48915782e5de002da87f693ae1e07f3b67031 eceb13729282b77a44317c39f9206d9c1467bc93633b7bac5ada97ea13a773fe
508508
ql/lib/codeql/swift/generated/expr/MagicIdentifierLiteralExpr.qll 16f0050128caf916506b1f7372dc225a12809a60b5b00f108705fcdfce3344a8 c064778526a5854bdf8cdbf4b64ad680b60df9fe71ec7a2d9aa6c36a7c4e5b31
509509
ql/lib/codeql/swift/generated/expr/MakeTemporarilyEscapableExpr.qll d23bd9ea3b13869d7a7f7eef3c3d1c3c156d384b72c65867a0b955bc517da775 f2fd167ac40f01c092b2b443af1557c92dac32074506f2195d32f60b0e0547d8
510-
ql/lib/codeql/swift/generated/expr/MemberRefExpr.qll 07000a05bec2e6d18e89ec4bbdba41a149691c50527da9073630d4193c0248d8 1bd43b79231aa31e0d60f9f7104f2b889fc3d9f042ecba8fe09d2cd289f4381d
510+
ql/lib/codeql/swift/generated/expr/MemberRefExpr.qll 0ece9ffbfd4b15722aa3870014a46afdbf1b1382972fb366d741fafb5473e3de fcb57bd65a94ed4214730339c4ed2b167ec22a3dc9017399596f9b26bdeb95cd
511511
ql/lib/codeql/swift/generated/expr/MetatypeConversionExpr.qll 714ecbc8ac51fdaaa4075388f20fe5063ead9264ca20c4ab8864c48364ef4b42 714ecbc8ac51fdaaa4075388f20fe5063ead9264ca20c4ab8864c48364ef4b42
512512
ql/lib/codeql/swift/generated/expr/MethodRefExpr.qll 014f976ce55cfc07a18a86c379fcf12c68f3c300c2d5e730731e61bfa50c6419 014f976ce55cfc07a18a86c379fcf12c68f3c300c2d5e730731e61bfa50c6419
513513
ql/lib/codeql/swift/generated/expr/NilLiteralExpr.qll 6f44106bc5396c87681676fc3e1239fe052d1a481d0a854afa8b66369668b058 6f44106bc5396c87681676fc3e1239fe052d1a481d0a854afa8b66369668b058
@@ -533,7 +533,7 @@ ql/lib/codeql/swift/generated/expr/SelfApplyExpr.qll c676c551bcb528512dad6422cce
533533
ql/lib/codeql/swift/generated/expr/SequenceExpr.qll 044581c933d44ecf153a22724985d0c9d3b1bb0ca2614ba60db962ee126a293a 3ae93804ece0fa386099be2344dc7cb8b5d8091ce53980a265973c0faacad1c7
534534
ql/lib/codeql/swift/generated/expr/StringLiteralExpr.qll f420c5cd51a223b6f98177147967266e0094a5718ba2d57ae2d3acbb64bbb4b6 30d6dab2a93fd95e652a700902c4d106fecfce13880c2ece565de29f2504bedf
535535
ql/lib/codeql/swift/generated/expr/StringToPointerExpr.qll ef69b570aa90697d438f5787a86797955b4b2f985960b5859a7bd13b9ecb9cd3 ef69b570aa90697d438f5787a86797955b4b2f985960b5859a7bd13b9ecb9cd3
536-
ql/lib/codeql/swift/generated/expr/SubscriptExpr.qll f207679b6a8387fe71eb7ce13061bc4ca8af62ccec92d062b8d67fb2ea0f0d10 ba7ed5c7105f2297ff15e0b07dce96b731da1249c9319bddb723d6898254c5f7
536+
ql/lib/codeql/swift/generated/expr/SubscriptExpr.qll 68523f3704985400e879903c365ece3910742a7d97368f6b3466efb25a23bd0f 3b5ea472a03958b6705d00041b4b354a6e691418c9d526bc70553b9b82698cda
537537
ql/lib/codeql/swift/generated/expr/SuperRefExpr.qll 3cc44a550ecab7d11b591082a3ad1ac88207d55cd694942ce44a90c576517482 d1712eed916f83d3e1b21c6af944ef56df2b82d163b9b3cb8dc793d48305fa6c
538538
ql/lib/codeql/swift/generated/expr/TapExpr.qll 0a2cbaaec596fa5aabb7acc3cab23bbf1bb1173ea4f240634698d5a89686d014 2267243198f67bb879d639f566e9729cfa9e3a3e205ffe6ff3782b7017a8bf7f
539539
ql/lib/codeql/swift/generated/expr/TryExpr.qll e6619905d9b2e06708c3bf41dace8c4e6332903f7111b3a59609d2bb7a6483ee e6619905d9b2e06708c3bf41dace8c4e6332903f7111b3a59609d2bb7a6483ee
@@ -654,7 +654,7 @@ ql/lib/codeql/swift/generated/type/WeakStorageType.qll dda4397a49f537ec44117a86d
654654
ql/test/extractor-tests/generated/Comment/MISSING_SOURCE.txt 7e714762ffb48c436102027d560fb5addc1f7dc6dd6936b06e0d3cca031d67fd 7e714762ffb48c436102027d560fb5addc1f7dc6dd6936b06e0d3cca031d67fd
655655
ql/test/extractor-tests/generated/Diagnostics/Diagnostics.ql 6a4a9480cc929381e0337b181e5ac519a7abc6d597ebe24fb6701acf79ced86f 199c5bf8bd38e161d989e0e4db1ea1d3ddcb4d7cf571afd9112ce3ed8d9b8d2a
656656
ql/test/extractor-tests/generated/File/File.ql ab0968ae31b749da2b66462bd04e4dfb30604dba405a84594b575abfc4fa4c35 bcc0ff648b28c5ecd567e196e700272883756bbcc65296bbb880a979e3162628
657-
ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql f378065da46252a3fb7f960731645ad0d69639907bcbe4a5922c416a0c8efcf9 e80e09a2bb54c397f101aaa4c820c94a6d7df819dd746437e74325a8243405e0
657+
ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl.ql 45a730bb247735161aa2b04f35d4e815c22a64cffd0ff8f7b1a03ab3a50dafb1 edb1031d59cbde8aa4961a985ce3ba2281f20463f805e154728487d76f826ced
658658
ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getBody.ql 1d42eb1a5b832cfaf1949b61a01a6a11448a6d4369a44f2511bb31d1d7fc10a8 b326a6743121353f8a66410d3d9151ca969939abcbbe5c411872ca290da45123
659659
ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getGenericTypeParam.ql 8648679e9403477c7f97b6df450a0fa623dc9aff0777021ee33f9cc96eef2611 59c384c35804bf205c3c63e8b956e6bc89d3ded7952911c40e7bf156acb56bf8
660660
ql/test/extractor-tests/generated/decl/AccessorDecl/AccessorDecl_getParam.ql 7c61c15d75f681c5f5817bdc1e0c1e2594afdc43a5a8889bd385b6cd007d6509 7f6111069c3f289fb3bd21933893757a0adbf8be8f21bf5f8960b6fb26840219

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ private predicate isKnownAccessorKind(AccessorDecl decl, string kind) {
88
decl.isWillSet() and kind = "willSet"
99
or
1010
decl.isDidSet() and kind = "didSet"
11+
or
12+
decl.isRead() and kind = "_read"
13+
or
14+
decl.isModify() and kind = "_modify"
15+
or
16+
decl.isUnsafeAddress() and kind = "unsafeAddress"
17+
or
18+
decl.isUnsafeMutableAddress() and kind = "unsafeMutableAddress"
1119
}
1220

1321
class AccessorDecl extends Generated::AccessorDecl {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,14 @@ module Raw {
261261
predicate isWillSet() { accessor_decl_is_will_set(this) }
262262

263263
predicate isDidSet() { accessor_decl_is_did_set(this) }
264+
265+
predicate isRead() { accessor_decl_is_read(this) }
266+
267+
predicate isModify() { accessor_decl_is_modify(this) }
268+
269+
predicate isUnsafeAddress() { accessor_decl_is_unsafe_address(this) }
270+
271+
predicate isUnsafeMutableAddress() { accessor_decl_is_unsafe_mutable_address(this) }
264272
}
265273

266274
class AssociatedTypeDecl extends @associated_type_decl, AbstractTypeParamDecl {
@@ -403,6 +411,8 @@ module Raw {
403411
}
404412

405413
predicate hasOrdinarySemantics() { decl_ref_expr_has_ordinary_semantics(this) }
414+
415+
predicate hasDistributedThunkSemantics() { decl_ref_expr_has_distributed_thunk_semantics(this) }
406416
}
407417

408418
class DefaultArgumentExpr extends @default_argument_expr, Expr {
@@ -851,6 +861,10 @@ module Raw {
851861
}
852862

853863
predicate hasOrdinarySemantics() { member_ref_expr_has_ordinary_semantics(this) }
864+
865+
predicate hasDistributedThunkSemantics() {
866+
member_ref_expr_has_distributed_thunk_semantics(this)
867+
}
854868
}
855869

856870
class MetatypeConversionExpr extends @metatype_conversion_expr, ImplicitConversionExpr {
@@ -918,6 +932,10 @@ module Raw {
918932
}
919933

920934
predicate hasOrdinarySemantics() { subscript_expr_has_ordinary_semantics(this) }
935+
936+
predicate hasDistributedThunkSemantics() {
937+
subscript_expr_has_distributed_thunk_semantics(this)
938+
}
921939
}
922940

923941
class TryExpr extends @try_expr, AnyTryExpr {

swift/ql/lib/codeql/swift/generated/decl/AccessorDecl.qll

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,29 @@ module Generated {
2626
* Holds if this accessor is a `didSet`, called after the property is set.
2727
*/
2828
predicate isDidSet() { Synth::convertAccessorDeclToRaw(this).(Raw::AccessorDecl).isDidSet() }
29+
30+
/**
31+
* Holds if this accessor is a `_read` coroutine, yielding a borrowed value of the property.
32+
*/
33+
predicate isRead() { Synth::convertAccessorDeclToRaw(this).(Raw::AccessorDecl).isRead() }
34+
35+
/**
36+
* Holds if this accessor is a `_modify` coroutine, yielding an inout value of the property.
37+
*/
38+
predicate isModify() { Synth::convertAccessorDeclToRaw(this).(Raw::AccessorDecl).isModify() }
39+
40+
/**
41+
* Holds if this accessor is an `unsafeAddress` immutable addressor.
42+
*/
43+
predicate isUnsafeAddress() {
44+
Synth::convertAccessorDeclToRaw(this).(Raw::AccessorDecl).isUnsafeAddress()
45+
}
46+
47+
/**
48+
* Holds if this accessor is an `unsafeMutableAddress` mutable addressor.
49+
*/
50+
predicate isUnsafeMutableAddress() {
51+
Synth::convertAccessorDeclToRaw(this).(Raw::AccessorDecl).isUnsafeMutableAddress()
52+
}
2953
}
3054
}

swift/ql/lib/codeql/swift/generated/expr/DeclRefExpr.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,12 @@ module Generated {
7575
predicate hasOrdinarySemantics() {
7676
Synth::convertDeclRefExprToRaw(this).(Raw::DeclRefExpr).hasOrdinarySemantics()
7777
}
78+
79+
/**
80+
* Holds if this declaration ref expression has distributed thunk semantics.
81+
*/
82+
predicate hasDistributedThunkSemantics() {
83+
Synth::convertDeclRefExprToRaw(this).(Raw::DeclRefExpr).hasDistributedThunkSemantics()
84+
}
7885
}
7986
}

swift/ql/lib/codeql/swift/generated/expr/MemberRefExpr.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,12 @@ module Generated {
2929
predicate hasOrdinarySemantics() {
3030
Synth::convertMemberRefExprToRaw(this).(Raw::MemberRefExpr).hasOrdinarySemantics()
3131
}
32+
33+
/**
34+
* Holds if this member ref expression has distributed thunk semantics.
35+
*/
36+
predicate hasDistributedThunkSemantics() {
37+
Synth::convertMemberRefExprToRaw(this).(Raw::MemberRefExpr).hasDistributedThunkSemantics()
38+
}
3239
}
3340
}

swift/ql/lib/codeql/swift/generated/expr/SubscriptExpr.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,12 @@ module Generated {
5858
predicate hasOrdinarySemantics() {
5959
Synth::convertSubscriptExprToRaw(this).(Raw::SubscriptExpr).hasOrdinarySemantics()
6060
}
61+
62+
/**
63+
* Holds if this subscript expression has distributed thunk semantics.
64+
*/
65+
predicate hasDistributedThunkSemantics() {
66+
Synth::convertSubscriptExprToRaw(this).(Raw::SubscriptExpr).hasDistributedThunkSemantics()
67+
}
6168
}
6269
}

swift/ql/lib/swift.dbscheme

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,26 @@ accessor_decl_is_did_set( //dir=decl
524524
int id: @accessor_decl ref
525525
);
526526

527+
#keyset[id]
528+
accessor_decl_is_read( //dir=decl
529+
int id: @accessor_decl ref
530+
);
531+
532+
#keyset[id]
533+
accessor_decl_is_modify( //dir=decl
534+
int id: @accessor_decl ref
535+
);
536+
537+
#keyset[id]
538+
accessor_decl_is_unsafe_address( //dir=decl
539+
int id: @accessor_decl ref
540+
);
541+
542+
#keyset[id]
543+
accessor_decl_is_unsafe_mutable_address( //dir=decl
544+
int id: @accessor_decl ref
545+
);
546+
527547
associated_type_decls( //dir=decl
528548
unique int id: @associated_type_decl
529549
);
@@ -771,6 +791,11 @@ decl_ref_expr_has_ordinary_semantics( //dir=expr
771791
int id: @decl_ref_expr ref
772792
);
773793

794+
#keyset[id]
795+
decl_ref_expr_has_distributed_thunk_semantics( //dir=expr
796+
int id: @decl_ref_expr ref
797+
);
798+
774799
default_argument_exprs( //dir=expr
775800
unique int id: @default_argument_expr,
776801
int param_decl: @param_decl_or_none ref,
@@ -1319,6 +1344,11 @@ member_ref_expr_has_ordinary_semantics( //dir=expr
13191344
int id: @member_ref_expr ref
13201345
);
13211346

1347+
#keyset[id]
1348+
member_ref_expr_has_distributed_thunk_semantics( //dir=expr
1349+
int id: @member_ref_expr ref
1350+
);
1351+
13221352
metatype_conversion_exprs( //dir=expr
13231353
unique int id: @metatype_conversion_expr
13241354
);
@@ -1408,6 +1438,11 @@ subscript_expr_has_ordinary_semantics( //dir=expr
14081438
int id: @subscript_expr ref
14091439
);
14101440

1441+
#keyset[id]
1442+
subscript_expr_has_distributed_thunk_semantics( //dir=expr
1443+
int id: @subscript_expr ref
1444+
);
1445+
14111446
try_exprs( //dir=expr
14121447
unique int id: @try_expr
14131448
);

0 commit comments

Comments
 (0)