mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Swift: extract UnreachableExpr
This commit is contained in:
@@ -176,7 +176,7 @@ MAP(swift::Expr, ExprTag)
|
||||
MAP(swift::LinearToDifferentiableFunctionExpr, LinearToDifferentiableFunctionExprTag)
|
||||
MAP(swift::ABISafeConversionExpr, AbiSafeConversionExprTag) // different acronym convention
|
||||
MAP(swift::ActorIsolationErasureExpr, ActorIsolationErasureExprTag)
|
||||
MAP(swift::UnreachableExpr, void) // TODO swift 6.0
|
||||
MAP(swift::UnreachableExpr, UnreachableExprTag)
|
||||
MAP(swift::ExplicitCastExpr, ExplicitCastExprTag)
|
||||
MAP(swift::CheckedCastExpr, CheckedCastExprTag)
|
||||
MAP(swift::ForcedCheckedCastExpr, ForcedCheckedCastExprTag)
|
||||
|
||||
14
swift/ql/.generated.list
generated
14
swift/ql/.generated.list
generated
@@ -232,6 +232,7 @@ lib/codeql/swift/elements/expr/TupleExpr.qll 11efe0f2737b561a392bbd684c7c1cc2e29
|
||||
lib/codeql/swift/elements/expr/TypeExpr.qll c3f7272b77aadd8a4a0e5c7e3876bba6bba45343415c8ce96de26e1e898d11c0 91cd440b768e4d9aa60a165ddb62ecdcad85eb4a676ab0d60ca8777e753bffc7
|
||||
lib/codeql/swift/elements/expr/UnderlyingToOpaqueExpr.qll f319daff97d13a5cacf2efcd1f2b77e58ec9b9a30413ddb30cc0333197cbef9f 9c6a97a66a452a6167b26f48b0f31a42e2c528fcd30e76c9f4dd146f6609b5d3
|
||||
lib/codeql/swift/elements/expr/UnevaluatedInstanceExpr.qll 7eca15f753e81d99a275ca1d29986d5209d8ffea4034746945227fedc1b74c38 714c9a7a09f525187f53a4c9599a141a32ec6071c405c2a425dc2cfb6f2457e6
|
||||
lib/codeql/swift/elements/expr/UnreachableExpr.qll 930822d66d99422603725161f55fec7b861ef33aa8fe57afbdbea2a68a764fcb e8005f5ac66a97e614f3792e8053b0fb6d6bb1f99bc1d0f7d0d0b41e703efe9c
|
||||
lib/codeql/swift/elements/expr/UnresolvedDeclRefExpr.qll 356dacb2b2ece20366a2d4b809210aeedcec31b8362a204854a77a192a01c0e1 7705b39752be30ab6bff12ccc690ed3b0fd843978721558e18f5f57e65f1f688
|
||||
lib/codeql/swift/elements/expr/UnresolvedDotExpr.qll 97c05188380cb890049db519d70168c3ca69c356fd15efd1ec52555519518a68 01455fb6e2c57941b209d844b65a0e6778d2d8d3db6081fb96c375c528574c41
|
||||
lib/codeql/swift/elements/expr/UnresolvedMemberChainResultExpr.qll 2a5747bdd60c30b9b32552ef48a1ba94bfa4c593896d7e1ba1992403680d10af c92cfd85209a0314b99a2f8549c73eb878ab251453330298da72aa9d2208e7ac
|
||||
@@ -410,6 +411,8 @@ lib/codeql/swift/elements/expr/internal/UnderlyingToOpaqueExprConstructor.qll 8b
|
||||
lib/codeql/swift/elements/expr/internal/UnderlyingToOpaqueExprImpl.qll cf2637b44a96fce2d8e618469692305181490a28f3b2698b6f9db2d58e7c474d 9b062defb7c19e217bea6e5bd65ccf28e1ff25fb1e784405eb92406806a3349c
|
||||
lib/codeql/swift/elements/expr/internal/UnevaluatedInstanceExprConstructor.qll 4560f4737cb47512b8348fd2a37599227df4a05bfad84873f6666d121a524e0a b49bfdfa550330bab087c5a6b7a3885fd22360e557adf984ce7a35534d882510
|
||||
lib/codeql/swift/elements/expr/internal/UnevaluatedInstanceExprImpl.qll 35107b79b01c1304167ce211e081991a2a8e05e9831da7d6523363d59a9dbb7a bc4811a0b40380b1a065f64dbd4b4f756e80cb11ee3b5c4f6ce035c5629db852
|
||||
lib/codeql/swift/elements/expr/internal/UnreachableExprConstructor.qll 53ff660f143f073f2675c37e2a471b79b82864051a3f5305faf33cd642904d3e 35d37b022f6c6f0b1d6483a2698c2e08f0bd545fd573edbf642815ad7d34bafd
|
||||
lib/codeql/swift/elements/expr/internal/UnreachableExprImpl.qll 3c305339fb8eef3b521638164290d630fc166106006a634c7ccec2198a4cb035 7ff8f246f567689305a44b04e990f31cb696ad2533dbb8c40f1cf82e3e8100ff
|
||||
lib/codeql/swift/elements/expr/internal/UnresolvedDeclRefExprConstructor.qll 344072439e0d95d1148d361ff764c17eaa47e5c0be82a3320cd9ab3868ac415f 25553a602da130b30e69ae9844e9be9da73ee579ba74c3bb84a9aa8e24801b46
|
||||
lib/codeql/swift/elements/expr/internal/UnresolvedDotExprConstructor.qll 2945ae07a65a7262e97cb28d35b9c3a9dfee662f2af54a8d9aba5f0c49216190 297485aa44da7ce69c7e33bc3ffde66bee79615fa947159b76e6ed73d1886b25
|
||||
lib/codeql/swift/elements/expr/internal/UnresolvedMemberChainResultExprConstructor.qll 1086b09aa950efd4e8ed1ce4723f6a6e6b43bbc147085375f589654f2dc04008 8adf6b2f415b69b8eb235c7e76eb5f0e5320939a0904d0b6823b28293eaa3b57
|
||||
@@ -701,7 +704,7 @@ lib/codeql/swift/elements/type/internal/UnresolvedTypeImpl.qll ee1499dd568753898
|
||||
lib/codeql/swift/elements/type/internal/VariadicSequenceTypeConstructor.qll fc74a5a2a2effa28ef24509b20ee4373d97cf6e8c71840121bb031c6adedf584 c9b2effc1d01c13c5e6a74a111122fa79a2f6554dda3cb016d68ba397e566ec4
|
||||
lib/codeql/swift/elements/type/internal/WeakStorageTypeConstructor.qll 5fdce3716aba6318522174a2c455a63480970222ae81c732fb19c6dd3ae2d271 60ea79d6943e129deba0deccb566cf9d73f78398b0f7f0212674d91287d6b2ae
|
||||
lib/codeql/swift/elements/type/internal/WeakStorageTypeImpl.qll 74f79b458f3204ec2519bd654de21bc4fb6b76816bd8ca01990fe897563a1383 34e1810f74cecda5b580ed050438ae1d914b97a36b8f4e2de1c25254c0cac633
|
||||
lib/codeql/swift/elements.qll 397f257159ffcad583f3944333f99406289ee2ef85c6da781d72dc52a59477e4 397f257159ffcad583f3944333f99406289ee2ef85c6da781d72dc52a59477e4
|
||||
lib/codeql/swift/elements.qll 9648ab501b413dc327513d9ed1d6e620a9eab6096e1130dc7e78cd6a2b6b549b 9648ab501b413dc327513d9ed1d6e620a9eab6096e1130dc7e78cd6a2b6b549b
|
||||
lib/codeql/swift/generated/AstNode.qll 6fb80e9b230a1e3ae8193af40744f253d5cc81dc4239156924e5ab606c491efc e5c28418e9a38bde08f323a3986a199620189fc4a8a4dc8f670610a5d3d65b99
|
||||
lib/codeql/swift/generated/AvailabilityInfo.qll e3a5274c43e72ff124b6988fd8be0c83a41b89337e11104150dd0ca7f51d8a11 889563791ca8d9758dbbccf64a0731c4bdbf721cad32bc6cd723f1072b6aa1de
|
||||
lib/codeql/swift/generated/AvailabilitySpec.qll bc64d5c690c4d18800f0a48cc76a6a9ee4f832041343666da2d8df2aae04ed7e d03bf874293ac0ab09c025f75c0f392473d47bebe3223143adcc13882a366119
|
||||
@@ -718,12 +721,12 @@ lib/codeql/swift/generated/Locatable.qll 1d37fa20de71c0b9986bfd7a7c0cb82ab7bf3fd
|
||||
lib/codeql/swift/generated/Location.qll 5e20316c3e480ddfe632b7e88e016c19f10a67df1f6ae9c8f128755a6907d6f5 5a0af2d070bcb2ed53d6d0282bf9c60dc64c2dce89c21fdd485e9c7893c1c8fa
|
||||
lib/codeql/swift/generated/MacroRole.qll 0d8fa6b0b6e2045d9097a87d53888cae2ea5371b2fa7d140341cf206f575b556 ea3b8a7c0a88851809f9a5a5aa80b0d2da3c4779bb29044cdba2b60246a2722c
|
||||
lib/codeql/swift/generated/OtherAvailabilitySpec.qll d9feaa2a71acff3184ca389045b0a49d09156210df0e034923d715b432ad594b 046737621a8bcf69bf805afb0cff476bd15259f12f0d77fce3206dd01b31518f
|
||||
lib/codeql/swift/generated/ParentChild.qll 2411882684c204243d9ea793ea8c9d02355e31f606ffc43cf8882e985d799c3d e7ab1c802ea38c0c048d43482852916b62df36b58e6033f87002ec362f11ea61
|
||||
lib/codeql/swift/generated/ParentChild.qll 7c9537f74a4c5a02622ce28c3de4b0ce02a7027d2e9aea9a860ece6a1e2ec340 49c1993b2a96df66903bffde78d63d8f4c68b2d604c419b20d88b63406366156
|
||||
lib/codeql/swift/generated/PlatformVersionAvailabilitySpec.qll dc17b49a90a18a8f7607adf2433bc8f0c194fa3e803aa3822f809d4d4fbd6793 be48ea9f8ae17354c8508aaed24337a9e57ce01f288fece3dcecd99776cabcec
|
||||
lib/codeql/swift/generated/PureSynthConstructors.qll bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4
|
||||
lib/codeql/swift/generated/Raw.qll 7ae3ca2a8c219aeeb7be1fb2b8f4be74ce8e6ce728bc97c259693ebd3c7bf8a5 8d0713432ec6355d9a9bd208c35e3751cee173996d9bea032796042bf39014e9
|
||||
lib/codeql/swift/generated/Synth.qll a009cd58c63421832a02bad44551350b1af97fcedd6c13e920df5f66ea30d4ad f2107a40928c833da54e5f6e4bc58d4db6a982d144c59c66e449baee3d4b5848
|
||||
lib/codeql/swift/generated/SynthConstructors.qll 4d984e2e839c082b9bc70d3b6166303d81eae9baa4cef5e072a792405a014cc8 4d984e2e839c082b9bc70d3b6166303d81eae9baa4cef5e072a792405a014cc8
|
||||
lib/codeql/swift/generated/Raw.qll 522f8500ce46d62fca22730ade5fa4716452adece25ffc36c50582b653f2fe6f 4d870e0695fff541c1a14eadc8ba51960a264ba2e6e53d0ccc32b34c7fd2cadd
|
||||
lib/codeql/swift/generated/Synth.qll a14dddab40979df82d30b2d73407fe0058a803ed6e1a882cd9a6ae5ffd240526 0879d2476a42123b46eee216d4ea03523e0c04fe0b68d9a68e0046253edb1bc9
|
||||
lib/codeql/swift/generated/SynthConstructors.qll f64121911e082aa15478eb8779025cee96e97503724c02aff31741e65a894a4b f64121911e082aa15478eb8779025cee96e97503724c02aff31741e65a894a4b
|
||||
lib/codeql/swift/generated/UnknownFile.qll 247ddf2ebb49ce5ed4bf7bf91a969ddff37de6c78d43d8affccaf7eb586e06f2 452b29f0465ef45e978ef8b647b75e5a2a1e53f2a568fc003bc8f52f73b3fa4d
|
||||
lib/codeql/swift/generated/UnknownLocation.qll d871000b4f53ffca4f67ea23ca5626e5dcce125d62a4d4b9969e08cc974af6fc b05971d7774e60790362fb810fb7086314f40a2de747b8cb1bc823ec6494a4dd
|
||||
lib/codeql/swift/generated/UnspecifiedElement.qll d9ad4ba1ffff90cc465e8ba0dea8c4e8ba67dce5529b53b63ab6dc8e13c85e67 025218e1fee8ee382b63ad38009dfec73dc604d2ba80b9ad956c7c96eeed7022
|
||||
@@ -895,6 +898,7 @@ lib/codeql/swift/generated/expr/TupleExpr.qll 860dde65c440ffa74648c663126194182c
|
||||
lib/codeql/swift/generated/expr/TypeExpr.qll 1f38f463b11b9f10878dab7266f05f455a0802e6d7464d81d4c05855d41adc64 b3c3f6b61b466be86a8cc0cea18d85b7a23b1f8dcf876ef2a050ef69778df32b
|
||||
lib/codeql/swift/generated/expr/UnderlyingToOpaqueExpr.qll 3d68175d73056e6f5afea5040ad2f9a8447adf078c490bb06769008857ee2ca7 f0ec8f0bf7271289b8be32038e60c2b1053d6563354c8bced53a42fef6292152
|
||||
lib/codeql/swift/generated/expr/UnevaluatedInstanceExpr.qll bac438970bc12eef2ace318b97d37ef58ab7a9c2c43c3f4515780f65cdc5de70 11810cdd753c744f3ee274fce889d272c3c94b6087c124cdd09e99188eb3f926
|
||||
lib/codeql/swift/generated/expr/UnreachableExpr.qll ab17ea1f01eb1b22b1012b57582b170936244c98f42374e0e21b9d468db9249c 93a2a3685a9f8d4eab06cf700bc6465915e29b49249a14fe6aa68d1af96c86ca
|
||||
lib/codeql/swift/generated/expr/UnresolvedDeclRefExpr.qll b6a72b3052829ac56f16b72baa7fc62926e8dde781ab9fa29b2cb7d87b5e287d df8fe19e9487c3ae83a19f38d98fd365add5b010ccab2f8699e4a2b841bb00a0
|
||||
lib/codeql/swift/generated/expr/UnresolvedDotExpr.qll 78a6d4cf27b3b6012b9880cae52604c49e7300d1b02e9f7a9157705078423d7a 79ca200646616ddb17fb72112469985b18718cba676e3bd94d8bcb234627ea93
|
||||
lib/codeql/swift/generated/expr/UnresolvedMemberChainResultExpr.qll 8277a5c54c868441217beab4b5f7f4bb937098611ce1e1fb098ad39f17660970 15996c1c571579db3e2ea861fa850294d916dde6ba437cabc6f18d18bcc6b785
|
||||
|
||||
4
swift/ql/.gitattributes
generated
vendored
4
swift/ql/.gitattributes
generated
vendored
@@ -234,6 +234,7 @@
|
||||
/lib/codeql/swift/elements/expr/TypeExpr.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/UnderlyingToOpaqueExpr.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/UnevaluatedInstanceExpr.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/UnreachableExpr.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/UnresolvedDeclRefExpr.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/UnresolvedDotExpr.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/UnresolvedMemberChainResultExpr.qll linguist-generated
|
||||
@@ -412,6 +413,8 @@
|
||||
/lib/codeql/swift/elements/expr/internal/UnderlyingToOpaqueExprImpl.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/internal/UnevaluatedInstanceExprConstructor.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/internal/UnevaluatedInstanceExprImpl.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/internal/UnreachableExprConstructor.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/internal/UnreachableExprImpl.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/internal/UnresolvedDeclRefExprConstructor.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/internal/UnresolvedDotExprConstructor.qll linguist-generated
|
||||
/lib/codeql/swift/elements/expr/internal/UnresolvedMemberChainResultExprConstructor.qll linguist-generated
|
||||
@@ -897,6 +900,7 @@
|
||||
/lib/codeql/swift/generated/expr/TypeExpr.qll linguist-generated
|
||||
/lib/codeql/swift/generated/expr/UnderlyingToOpaqueExpr.qll linguist-generated
|
||||
/lib/codeql/swift/generated/expr/UnevaluatedInstanceExpr.qll linguist-generated
|
||||
/lib/codeql/swift/generated/expr/UnreachableExpr.qll linguist-generated
|
||||
/lib/codeql/swift/generated/expr/UnresolvedDeclRefExpr.qll linguist-generated
|
||||
/lib/codeql/swift/generated/expr/UnresolvedDotExpr.qll linguist-generated
|
||||
/lib/codeql/swift/generated/expr/UnresolvedMemberChainResultExpr.qll linguist-generated
|
||||
|
||||
1
swift/ql/lib/codeql/swift/elements.qll
generated
1
swift/ql/lib/codeql/swift/elements.qll
generated
@@ -187,6 +187,7 @@ import codeql.swift.elements.expr.TupleExpr
|
||||
import codeql.swift.elements.expr.TypeExpr
|
||||
import codeql.swift.elements.expr.UnderlyingToOpaqueExpr
|
||||
import codeql.swift.elements.expr.UnevaluatedInstanceExpr
|
||||
import codeql.swift.elements.expr.UnreachableExpr
|
||||
import codeql.swift.elements.expr.UnresolvedDeclRefExpr
|
||||
import codeql.swift.elements.expr.UnresolvedDotExpr
|
||||
import codeql.swift.elements.expr.UnresolvedMemberChainResultExpr
|
||||
|
||||
12
swift/ql/lib/codeql/swift/elements/expr/UnreachableExpr.qll
generated
Normal file
12
swift/ql/lib/codeql/swift/elements/expr/UnreachableExpr.qll
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
// generated by codegen/codegen.py, do not edit
|
||||
/**
|
||||
* This module provides the public class `UnreachableExpr`.
|
||||
*/
|
||||
|
||||
private import internal.UnreachableExprImpl
|
||||
import codeql.swift.elements.expr.ImplicitConversionExpr
|
||||
|
||||
/**
|
||||
* A conversion from the uninhabited type to any other type. It's never evaluated.
|
||||
*/
|
||||
final class UnreachableExpr = Impl::UnreachableExpr;
|
||||
14
swift/ql/lib/codeql/swift/elements/expr/internal/UnreachableExprConstructor.qll
generated
Normal file
14
swift/ql/lib/codeql/swift/elements/expr/internal/UnreachableExprConstructor.qll
generated
Normal file
@@ -0,0 +1,14 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
/**
|
||||
* This module defines the hook used internally to tweak the characteristic predicate of
|
||||
* `UnreachableExpr` synthesized instances.
|
||||
* INTERNAL: Do not use.
|
||||
*/
|
||||
|
||||
private import codeql.swift.generated.Raw
|
||||
|
||||
/**
|
||||
* The characteristic predicate of `UnreachableExpr` synthesized instances.
|
||||
* INTERNAL: Do not use.
|
||||
*/
|
||||
predicate constructUnreachableExpr(Raw::UnreachableExpr id) { any() }
|
||||
19
swift/ql/lib/codeql/swift/elements/expr/internal/UnreachableExprImpl.qll
generated
Normal file
19
swift/ql/lib/codeql/swift/elements/expr/internal/UnreachableExprImpl.qll
generated
Normal file
@@ -0,0 +1,19 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
/**
|
||||
* This module provides a hand-modifiable wrapper around the generated class `UnreachableExpr`.
|
||||
*
|
||||
* INTERNAL: Do not use.
|
||||
*/
|
||||
|
||||
private import codeql.swift.generated.expr.UnreachableExpr
|
||||
|
||||
/**
|
||||
* INTERNAL: This module contains the customizable definition of `UnreachableExpr` and should not
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
/**
|
||||
* A conversion from the uninhabited type to any other type. It's never evaluated.
|
||||
*/
|
||||
class UnreachableExpr extends Generated::UnreachableExpr { }
|
||||
}
|
||||
19
swift/ql/lib/codeql/swift/generated/ParentChild.qll
generated
19
swift/ql/lib/codeql/swift/generated/ParentChild.qll
generated
@@ -3108,6 +3108,23 @@ private module Impl {
|
||||
)
|
||||
}
|
||||
|
||||
private Element getImmediateChildOfUnreachableExpr(
|
||||
UnreachableExpr e, int index, string partialPredicateCall
|
||||
) {
|
||||
exists(int b, int bImplicitConversionExpr, int n |
|
||||
b = 0 and
|
||||
bImplicitConversionExpr =
|
||||
b + 1 +
|
||||
max(int i | i = -1 or exists(getImmediateChildOfImplicitConversionExpr(e, i, _)) | i) and
|
||||
n = bImplicitConversionExpr and
|
||||
(
|
||||
none()
|
||||
or
|
||||
result = getImmediateChildOfImplicitConversionExpr(e, index - b, partialPredicateCall)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
private Element getImmediateChildOfUnresolvedMemberChainResultExpr(
|
||||
UnresolvedMemberChainResultExpr e, int index, string partialPredicateCall
|
||||
) {
|
||||
@@ -5470,6 +5487,8 @@ private module Impl {
|
||||
or
|
||||
result = getImmediateChildOfUnevaluatedInstanceExpr(e, index, partialAccessor)
|
||||
or
|
||||
result = getImmediateChildOfUnreachableExpr(e, index, partialAccessor)
|
||||
or
|
||||
result = getImmediateChildOfUnresolvedMemberChainResultExpr(e, index, partialAccessor)
|
||||
or
|
||||
result = getImmediateChildOfUnresolvedTypeConversionExpr(e, index, partialAccessor)
|
||||
|
||||
8
swift/ql/lib/codeql/swift/generated/Raw.qll
generated
8
swift/ql/lib/codeql/swift/generated/Raw.qll
generated
@@ -2462,6 +2462,14 @@ module Raw {
|
||||
override string toString() { result = "UnevaluatedInstanceExpr" }
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
* A conversion from the uninhabited type to any other type. It's never evaluated.
|
||||
*/
|
||||
class UnreachableExpr extends @unreachable_expr, ImplicitConversionExpr {
|
||||
override string toString() { result = "UnreachableExpr" }
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
*/
|
||||
|
||||
23
swift/ql/lib/codeql/swift/generated/Synth.qll
generated
23
swift/ql/lib/codeql/swift/generated/Synth.qll
generated
@@ -678,6 +678,10 @@ module Synth {
|
||||
TUnevaluatedInstanceExpr(Raw::UnevaluatedInstanceExpr id) {
|
||||
constructUnevaluatedInstanceExpr(id)
|
||||
} or
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
*/
|
||||
TUnreachableExpr(Raw::UnreachableExpr id) { constructUnreachableExpr(id) } or
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
*/
|
||||
@@ -1283,7 +1287,8 @@ module Synth {
|
||||
TLinearFunctionExpr or TLinearFunctionExtractOriginalExpr or
|
||||
TLinearToDifferentiableFunctionExpr or TLoadExpr or TMetatypeConversionExpr or
|
||||
TPointerToPointerExpr or TProtocolMetatypeToObjectExpr or TStringToPointerExpr or
|
||||
TUnderlyingToOpaqueExpr or TUnevaluatedInstanceExpr or TUnresolvedTypeConversionExpr;
|
||||
TUnderlyingToOpaqueExpr or TUnevaluatedInstanceExpr or TUnreachableExpr or
|
||||
TUnresolvedTypeConversionExpr;
|
||||
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
@@ -2494,6 +2499,12 @@ module Synth {
|
||||
result = TUnevaluatedInstanceExpr(e)
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
* Converts a raw element to a synthesized `TUnreachableExpr`, if possible.
|
||||
*/
|
||||
TUnreachableExpr convertUnreachableExprFromRaw(Raw::Element e) { result = TUnreachableExpr(e) }
|
||||
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
* Converts a raw element to a synthesized `TUnresolvedDeclRefExpr`, if possible.
|
||||
@@ -3751,6 +3762,8 @@ module Synth {
|
||||
or
|
||||
result = convertUnevaluatedInstanceExprFromRaw(e)
|
||||
or
|
||||
result = convertUnreachableExprFromRaw(e)
|
||||
or
|
||||
result = convertUnresolvedTypeConversionExprFromRaw(e)
|
||||
}
|
||||
|
||||
@@ -5194,6 +5207,12 @@ module Synth {
|
||||
e = TUnevaluatedInstanceExpr(result)
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
* Converts a synthesized `TUnreachableExpr` to a raw DB element, if possible.
|
||||
*/
|
||||
Raw::Element convertUnreachableExprToRaw(TUnreachableExpr e) { e = TUnreachableExpr(result) }
|
||||
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
* Converts a synthesized `TUnresolvedDeclRefExpr` to a raw DB element, if possible.
|
||||
@@ -6451,6 +6470,8 @@ module Synth {
|
||||
or
|
||||
result = convertUnevaluatedInstanceExprToRaw(e)
|
||||
or
|
||||
result = convertUnreachableExprToRaw(e)
|
||||
or
|
||||
result = convertUnresolvedTypeConversionExprToRaw(e)
|
||||
}
|
||||
|
||||
|
||||
@@ -154,6 +154,7 @@ import codeql.swift.elements.expr.internal.TupleExprConstructor
|
||||
import codeql.swift.elements.expr.internal.TypeExprConstructor
|
||||
import codeql.swift.elements.expr.internal.UnderlyingToOpaqueExprConstructor
|
||||
import codeql.swift.elements.expr.internal.UnevaluatedInstanceExprConstructor
|
||||
import codeql.swift.elements.expr.internal.UnreachableExprConstructor
|
||||
import codeql.swift.elements.expr.internal.UnresolvedDeclRefExprConstructor
|
||||
import codeql.swift.elements.expr.internal.UnresolvedDotExprConstructor
|
||||
import codeql.swift.elements.expr.internal.UnresolvedMemberChainResultExprConstructor
|
||||
|
||||
26
swift/ql/lib/codeql/swift/generated/expr/UnreachableExpr.qll
generated
Normal file
26
swift/ql/lib/codeql/swift/generated/expr/UnreachableExpr.qll
generated
Normal file
@@ -0,0 +1,26 @@
|
||||
// generated by codegen/codegen.py, do not edit
|
||||
/**
|
||||
* This module provides the generated definition of `UnreachableExpr`.
|
||||
* INTERNAL: Do not import directly.
|
||||
*/
|
||||
|
||||
private import codeql.swift.generated.Synth
|
||||
private import codeql.swift.generated.Raw
|
||||
import codeql.swift.elements.expr.internal.ImplicitConversionExprImpl::Impl as ImplicitConversionExprImpl
|
||||
|
||||
/**
|
||||
* INTERNAL: This module contains the fully generated definition of `UnreachableExpr` and should not
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Generated {
|
||||
/**
|
||||
* A conversion from the uninhabited type to any other type. It's never evaluated.
|
||||
* INTERNAL: Do not reference the `Generated::UnreachableExpr` class directly.
|
||||
* Use the subclass `UnreachableExpr`, where the following predicates are available.
|
||||
*/
|
||||
class UnreachableExpr extends Synth::TUnreachableExpr,
|
||||
ImplicitConversionExprImpl::ImplicitConversionExpr
|
||||
{
|
||||
override string getAPrimaryQlClass() { result = "UnreachableExpr" }
|
||||
}
|
||||
}
|
||||
5
swift/ql/lib/swift.dbscheme
generated
5
swift/ql/lib/swift.dbscheme
generated
@@ -1065,6 +1065,7 @@ if_exprs( //dir=expr
|
||||
| @string_to_pointer_expr
|
||||
| @underlying_to_opaque_expr
|
||||
| @unevaluated_instance_expr
|
||||
| @unreachable_expr
|
||||
| @unresolved_type_conversion_expr
|
||||
;
|
||||
|
||||
@@ -1643,6 +1644,10 @@ unevaluated_instance_exprs( //dir=expr
|
||||
unique int id: @unevaluated_instance_expr
|
||||
);
|
||||
|
||||
unreachable_exprs( //dir=expr
|
||||
unique int id: @unreachable_expr
|
||||
);
|
||||
|
||||
unresolved_member_chain_result_exprs( //dir=expr
|
||||
unique int id: @unresolved_member_chain_result_expr
|
||||
);
|
||||
|
||||
@@ -1457,3 +1457,9 @@ class ActorIsolationErasureExpr(ImplicitConversionExpr):
|
||||
A conversion that erases the actor isolation of an expression with `@isolated(any)` function
|
||||
type.
|
||||
"""
|
||||
|
||||
|
||||
class UnreachableExpr(ImplicitConversionExpr):
|
||||
"""
|
||||
A conversion from the uninhabited type to any other type. It's never evaluated.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user