mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Swift: Make Callable a sub type of AstNode
This commit is contained in:
8
swift/ql/.generated.list
generated
8
swift/ql/.generated.list
generated
@@ -394,7 +394,7 @@ lib/codeql/swift/elements.qll bb863ff140bfaa0bf887708f421a16c85816886f4d061bbc5a
|
|||||||
lib/codeql/swift/generated/AstNode.qll 68877daa9e14b462247ac6b7b724f5e683288e39953a8ebb02a362b7d1df8e4c 54d3512744738e1ee15645f3af116437053cb5209687f4106361a1943b38b666
|
lib/codeql/swift/generated/AstNode.qll 68877daa9e14b462247ac6b7b724f5e683288e39953a8ebb02a362b7d1df8e4c 54d3512744738e1ee15645f3af116437053cb5209687f4106361a1943b38b666
|
||||||
lib/codeql/swift/generated/AvailabilityInfo.qll e74e218a1ab00416cb8823610ff93642101aa784aa61cbc2b4deef61471a5bac e2c6c19860dc3e6e211041c95d8e6d52c3505ccff7018b80a849735cc98141af
|
lib/codeql/swift/generated/AvailabilityInfo.qll e74e218a1ab00416cb8823610ff93642101aa784aa61cbc2b4deef61471a5bac e2c6c19860dc3e6e211041c95d8e6d52c3505ccff7018b80a849735cc98141af
|
||||||
lib/codeql/swift/generated/AvailabilitySpec.qll a8afc5071887a67b4e0dec27356ab8cbf3e176b5358cb34c785e3015b2cad5a2 c7f88b0d701612c821359c983b3102f31b23edc211c3dcfe97de5adec61af386
|
lib/codeql/swift/generated/AvailabilitySpec.qll a8afc5071887a67b4e0dec27356ab8cbf3e176b5358cb34c785e3015b2cad5a2 c7f88b0d701612c821359c983b3102f31b23edc211c3dcfe97de5adec61af386
|
||||||
lib/codeql/swift/generated/Callable.qll 967fcb4f24a31754ef3bfdd1ea1e585ee8dc7fca02c8f6a2db451df22b156e38 d2e2824119e1b01964851a58099e19f787d12402de8ebce278731433325a76e9
|
lib/codeql/swift/generated/Callable.qll d1a674575ec2edfeada622a5b34133101927b40714bdd6106f5f8b0708119c16 177e44bab51c105bc34925b06b18564b71a2c112e6fb700e47f1cc62fa03b483
|
||||||
lib/codeql/swift/generated/Comment.qll fea1b1eb97adcb9a1e5eee0a516240de7b0f0ffef55068c91dc13d29acd3a9a1 f2c8cf8ab5cd5daa67aae51bad4cd34a80a81c00220950476b2e91fd0808628d
|
lib/codeql/swift/generated/Comment.qll fea1b1eb97adcb9a1e5eee0a516240de7b0f0ffef55068c91dc13d29acd3a9a1 f2c8cf8ab5cd5daa67aae51bad4cd34a80a81c00220950476b2e91fd0808628d
|
||||||
lib/codeql/swift/generated/DbFile.qll fc2f1cd370a6e67d0e0aeeb9ccd585ce6875064101a1385c2e456021728cfd53 fc2f1cd370a6e67d0e0aeeb9ccd585ce6875064101a1385c2e456021728cfd53
|
lib/codeql/swift/generated/DbFile.qll fc2f1cd370a6e67d0e0aeeb9ccd585ce6875064101a1385c2e456021728cfd53 fc2f1cd370a6e67d0e0aeeb9ccd585ce6875064101a1385c2e456021728cfd53
|
||||||
lib/codeql/swift/generated/DbLocation.qll 929f015202c9c5a8062c913c38ef069482e4f459606ce4e917d021c643cfc11d 929f015202c9c5a8062c913c38ef069482e4f459606ce4e917d021c643cfc11d
|
lib/codeql/swift/generated/DbLocation.qll 929f015202c9c5a8062c913c38ef069482e4f459606ce4e917d021c643cfc11d 929f015202c9c5a8062c913c38ef069482e4f459606ce4e917d021c643cfc11d
|
||||||
@@ -407,11 +407,11 @@ lib/codeql/swift/generated/Locatable.qll 6cb437dd7ff7331429ec6586b0af50b1af15e4f
|
|||||||
lib/codeql/swift/generated/Location.qll 3f3bad413be87d05a596fe7b8004f415c2caa98cb759021a6aad20b589b7d700 ed30ed646962b3ffb6b47c97c6434fe47a6b1ea8e3f2e0589577bea5cf96c88e
|
lib/codeql/swift/generated/Location.qll 3f3bad413be87d05a596fe7b8004f415c2caa98cb759021a6aad20b589b7d700 ed30ed646962b3ffb6b47c97c6434fe47a6b1ea8e3f2e0589577bea5cf96c88e
|
||||||
lib/codeql/swift/generated/MacroRole.qll aaf5631c49de81e046854955341202d6d3516713cd09bc2e7b870e40c261cc9f 6cd17d40cbf1d8fa4ef01dfb8b3462b7cee902e6058fb76417c2035be12481d1
|
lib/codeql/swift/generated/MacroRole.qll aaf5631c49de81e046854955341202d6d3516713cd09bc2e7b870e40c261cc9f 6cd17d40cbf1d8fa4ef01dfb8b3462b7cee902e6058fb76417c2035be12481d1
|
||||||
lib/codeql/swift/generated/OtherAvailabilitySpec.qll 06393a08e8da36106c5ec6efb9f1bd56a5c7b3d3f3d0bcefc6fa07fa96860c31 06393a08e8da36106c5ec6efb9f1bd56a5c7b3d3f3d0bcefc6fa07fa96860c31
|
lib/codeql/swift/generated/OtherAvailabilitySpec.qll 06393a08e8da36106c5ec6efb9f1bd56a5c7b3d3f3d0bcefc6fa07fa96860c31 06393a08e8da36106c5ec6efb9f1bd56a5c7b3d3f3d0bcefc6fa07fa96860c31
|
||||||
lib/codeql/swift/generated/ParentChild.qll eae164aa8a78e883e707fba6c671ff2cd0ddab1084b0871fc5ae27c44cded4c5 3af88b63e21d58090f9702e6e4716a5b8a5a65897b8c92362b6e3c0fba60ddc2
|
lib/codeql/swift/generated/ParentChild.qll 9c93c47197f4d510dc0e6a619e15938dc9b31907a300fde2fc27906448422e08 b153266ec86d64414c0c5c6a8f051209937594d40964715e2145982173ef6854
|
||||||
lib/codeql/swift/generated/PlatformVersionAvailabilitySpec.qll 5355be9da8b778d1d8ae60d25d9c3394477da24f94e8a6ab4484c6a16d07cd7c 075438c1762ec0a7775004b39032dcf85aada038a4269e6f428c34b8282786e9
|
lib/codeql/swift/generated/PlatformVersionAvailabilitySpec.qll 5355be9da8b778d1d8ae60d25d9c3394477da24f94e8a6ab4484c6a16d07cd7c 075438c1762ec0a7775004b39032dcf85aada038a4269e6f428c34b8282786e9
|
||||||
lib/codeql/swift/generated/PureSynthConstructors.qll 40f5c0c573ce12f16322d9efb12306750f672254cbc36a200c298cb08e504229 40f5c0c573ce12f16322d9efb12306750f672254cbc36a200c298cb08e504229
|
lib/codeql/swift/generated/PureSynthConstructors.qll 40f5c0c573ce12f16322d9efb12306750f672254cbc36a200c298cb08e504229 40f5c0c573ce12f16322d9efb12306750f672254cbc36a200c298cb08e504229
|
||||||
lib/codeql/swift/generated/Raw.qll 10633b948918d315b98b6ff6733d4c368e082c5afd78334c0862291f9d883216 66abde4c9a2283773033d90a4633c1203d6563fc238ddbd48fdf1b910f90021a
|
lib/codeql/swift/generated/Raw.qll 118b43fedd4265b5aa15c33ef01a2f5a5db6e5597f95bef1078a01c3ff8da983 075aec2c8b232f0361ebf63f07ae9b66163f3975e6023583fb0fa2e40b979a33
|
||||||
lib/codeql/swift/generated/Synth.qll 848284b2ae9854c5be74e5ef50a51090e248e5c9c02289a6bc63455e440122da e2607f46a4830e81718ca1636fa65bc29420a18539443d109fafd7f1af1591ce
|
lib/codeql/swift/generated/Synth.qll 221f40afbc2bed0f5de1961877fd39dd025574bc72622af0e9f47f278a8324b7 05b8aaa9ac6236b0c08d6afc7a13e58361b90524cff6520a1ac6d422eea4fe40
|
||||||
lib/codeql/swift/generated/SynthConstructors.qll 7edffc30d3dddc4d73241f4e0d3df4501a99eb38d056f82043ed69e481404342 7edffc30d3dddc4d73241f4e0d3df4501a99eb38d056f82043ed69e481404342
|
lib/codeql/swift/generated/SynthConstructors.qll 7edffc30d3dddc4d73241f4e0d3df4501a99eb38d056f82043ed69e481404342 7edffc30d3dddc4d73241f4e0d3df4501a99eb38d056f82043ed69e481404342
|
||||||
lib/codeql/swift/generated/UnknownFile.qll 5325944cf96a72d5d224597745e15960fb6a9448b96b6644ececd6344dfd9d74 5325944cf96a72d5d224597745e15960fb6a9448b96b6644ececd6344dfd9d74
|
lib/codeql/swift/generated/UnknownFile.qll 5325944cf96a72d5d224597745e15960fb6a9448b96b6644ececd6344dfd9d74 5325944cf96a72d5d224597745e15960fb6a9448b96b6644ececd6344dfd9d74
|
||||||
lib/codeql/swift/generated/UnknownLocation.qll dfdeb8eedb2564eccaac416695784ea04fe9754a3e109e8484c695021af4e554 dfdeb8eedb2564eccaac416695784ea04fe9754a3e109e8484c695021af4e554
|
lib/codeql/swift/generated/UnknownLocation.qll dfdeb8eedb2564eccaac416695784ea04fe9754a3e109e8484c695021af4e554 dfdeb8eedb2564eccaac416695784ea04fe9754a3e109e8484c695021af4e554
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ private import codeql.swift.generated.Callable
|
|||||||
private import codeql.swift.elements.AstNode
|
private import codeql.swift.elements.AstNode
|
||||||
private import codeql.swift.elements.decl.Decl
|
private import codeql.swift.elements.decl.Decl
|
||||||
|
|
||||||
class Callable extends Generated::Callable, AstNode {
|
class Callable extends Generated::Callable {
|
||||||
/**
|
/**
|
||||||
* Holds if this Callable is a function named `funcName`.
|
* Holds if this Callable is a function named `funcName`.
|
||||||
*/
|
*/
|
||||||
|
|||||||
4
swift/ql/lib/codeql/swift/generated/Callable.qll
generated
4
swift/ql/lib/codeql/swift/generated/Callable.qll
generated
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
private import codeql.swift.generated.Synth
|
private import codeql.swift.generated.Synth
|
||||||
private import codeql.swift.generated.Raw
|
private import codeql.swift.generated.Raw
|
||||||
|
import codeql.swift.elements.AstNode
|
||||||
import codeql.swift.elements.stmt.BraceStmt
|
import codeql.swift.elements.stmt.BraceStmt
|
||||||
import codeql.swift.elements.decl.CapturedDecl
|
import codeql.swift.elements.decl.CapturedDecl
|
||||||
import codeql.swift.elements.Element
|
|
||||||
import codeql.swift.elements.decl.ParamDecl
|
import codeql.swift.elements.decl.ParamDecl
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -20,7 +20,7 @@ module Generated {
|
|||||||
* INTERNAL: Do not reference the `Generated::Callable` class directly.
|
* INTERNAL: Do not reference the `Generated::Callable` class directly.
|
||||||
* Use the subclass `Callable`, where the following predicates are available.
|
* Use the subclass `Callable`, where the following predicates are available.
|
||||||
*/
|
*/
|
||||||
class Callable extends Synth::TCallable, Element {
|
class Callable extends Synth::TCallable, AstNode {
|
||||||
/**
|
/**
|
||||||
* Gets the name of this callable, if it exists.
|
* Gets the name of this callable, if it exists.
|
||||||
*
|
*
|
||||||
|
|||||||
54
swift/ql/lib/codeql/swift/generated/ParentChild.qll
generated
54
swift/ql/lib/codeql/swift/generated/ParentChild.qll
generated
@@ -14,33 +14,6 @@ private module Impl {
|
|||||||
none()
|
none()
|
||||||
}
|
}
|
||||||
|
|
||||||
private Element getImmediateChildOfCallable(Callable e, int index, string partialPredicateCall) {
|
|
||||||
exists(int b, int bElement, int n, int nSelfParam, int nParam, int nBody, int nCapture |
|
|
||||||
b = 0 and
|
|
||||||
bElement = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfElement(e, i, _)) | i) and
|
|
||||||
n = bElement and
|
|
||||||
nSelfParam = n + 1 and
|
|
||||||
nParam = nSelfParam + 1 + max(int i | i = -1 or exists(e.getParam(i)) | i) and
|
|
||||||
nBody = nParam + 1 and
|
|
||||||
nCapture = nBody + 1 + max(int i | i = -1 or exists(e.getCapture(i)) | i) and
|
|
||||||
(
|
|
||||||
none()
|
|
||||||
or
|
|
||||||
result = getImmediateChildOfElement(e, index - b, partialPredicateCall)
|
|
||||||
or
|
|
||||||
index = n and result = e.getSelfParam() and partialPredicateCall = "SelfParam()"
|
|
||||||
or
|
|
||||||
result = e.getParam(index - nSelfParam) and
|
|
||||||
partialPredicateCall = "Param(" + (index - nSelfParam).toString() + ")"
|
|
||||||
or
|
|
||||||
index = nParam and result = e.getBody() and partialPredicateCall = "Body()"
|
|
||||||
or
|
|
||||||
result = e.getCapture(index - nBody) and
|
|
||||||
partialPredicateCall = "Capture(" + (index - nBody).toString() + ")"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
private Element getImmediateChildOfFile(File e, int index, string partialPredicateCall) {
|
private Element getImmediateChildOfFile(File e, int index, string partialPredicateCall) {
|
||||||
exists(int b, int bElement, int n |
|
exists(int b, int bElement, int n |
|
||||||
b = 0 and
|
b = 0 and
|
||||||
@@ -226,6 +199,33 @@ private module Impl {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Element getImmediateChildOfCallable(Callable e, int index, string partialPredicateCall) {
|
||||||
|
exists(int b, int bAstNode, int n, int nSelfParam, int nParam, int nBody, int nCapture |
|
||||||
|
b = 0 and
|
||||||
|
bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and
|
||||||
|
n = bAstNode and
|
||||||
|
nSelfParam = n + 1 and
|
||||||
|
nParam = nSelfParam + 1 + max(int i | i = -1 or exists(e.getParam(i)) | i) and
|
||||||
|
nBody = nParam + 1 and
|
||||||
|
nCapture = nBody + 1 + max(int i | i = -1 or exists(e.getCapture(i)) | i) and
|
||||||
|
(
|
||||||
|
none()
|
||||||
|
or
|
||||||
|
result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall)
|
||||||
|
or
|
||||||
|
index = n and result = e.getSelfParam() and partialPredicateCall = "SelfParam()"
|
||||||
|
or
|
||||||
|
result = e.getParam(index - nSelfParam) and
|
||||||
|
partialPredicateCall = "Param(" + (index - nSelfParam).toString() + ")"
|
||||||
|
or
|
||||||
|
index = nParam and result = e.getBody() and partialPredicateCall = "Body()"
|
||||||
|
or
|
||||||
|
result = e.getCapture(index - nBody) and
|
||||||
|
partialPredicateCall = "Capture(" + (index - nBody).toString() + ")"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
private Element getImmediateChildOfKeyPathComponent(
|
private Element getImmediateChildOfKeyPathComponent(
|
||||||
KeyPathComponent e, int index, string partialPredicateCall
|
KeyPathComponent e, int index, string partialPredicateCall
|
||||||
) {
|
) {
|
||||||
|
|||||||
68
swift/ql/lib/codeql/swift/generated/Raw.qll
generated
68
swift/ql/lib/codeql/swift/generated/Raw.qll
generated
@@ -15,40 +15,6 @@ module Raw {
|
|||||||
predicate isUnknown() { element_is_unknown(this) }
|
predicate isUnknown() { element_is_unknown(this) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* INTERNAL: Do not use.
|
|
||||||
*/
|
|
||||||
class Callable extends @callable, Element {
|
|
||||||
/**
|
|
||||||
* Gets the name of this callable, if it exists.
|
|
||||||
*
|
|
||||||
* The name includes argument labels of the callable, for example `myFunction(arg:)`.
|
|
||||||
*/
|
|
||||||
string getName() { callable_names(this, result) }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the self parameter of this callable, if it exists.
|
|
||||||
*/
|
|
||||||
ParamDecl getSelfParam() { callable_self_params(this, result) }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the `index`th parameter of this callable (0-based).
|
|
||||||
*/
|
|
||||||
ParamDecl getParam(int index) { callable_params(this, index, result) }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the body of this callable, if it exists.
|
|
||||||
*
|
|
||||||
* The body is absent within protocol declarations.
|
|
||||||
*/
|
|
||||||
BraceStmt getBody() { callable_bodies(this, result) }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the `index`th capture of this callable (0-based).
|
|
||||||
*/
|
|
||||||
CapturedDecl getCapture(int index) { callable_captures(this, index, result) }
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* INTERNAL: Do not use.
|
* INTERNAL: Do not use.
|
||||||
*/
|
*/
|
||||||
@@ -197,6 +163,40 @@ module Raw {
|
|||||||
*/
|
*/
|
||||||
class AvailabilitySpec extends @availability_spec, AstNode { }
|
class AvailabilitySpec extends @availability_spec, AstNode { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* INTERNAL: Do not use.
|
||||||
|
*/
|
||||||
|
class Callable extends @callable, AstNode {
|
||||||
|
/**
|
||||||
|
* Gets the name of this callable, if it exists.
|
||||||
|
*
|
||||||
|
* The name includes argument labels of the callable, for example `myFunction(arg:)`.
|
||||||
|
*/
|
||||||
|
string getName() { callable_names(this, result) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the self parameter of this callable, if it exists.
|
||||||
|
*/
|
||||||
|
ParamDecl getSelfParam() { callable_self_params(this, result) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the `index`th parameter of this callable (0-based).
|
||||||
|
*/
|
||||||
|
ParamDecl getParam(int index) { callable_params(this, index, result) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the body of this callable, if it exists.
|
||||||
|
*
|
||||||
|
* The body is absent within protocol declarations.
|
||||||
|
*/
|
||||||
|
BraceStmt getBody() { callable_bodies(this, result) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the `index`th capture of this callable (0-based).
|
||||||
|
*/
|
||||||
|
CapturedDecl getCapture(int index) { callable_captures(this, index, result) }
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* INTERNAL: Do not use.
|
* INTERNAL: Do not use.
|
||||||
* A component of a `KeyPathExpr`.
|
* A component of a `KeyPathExpr`.
|
||||||
|
|||||||
13
swift/ql/lib/codeql/swift/generated/Synth.qll
generated
13
swift/ql/lib/codeql/swift/generated/Synth.qll
generated
@@ -1080,8 +1080,9 @@ module Synth {
|
|||||||
* INTERNAL: Do not use.
|
* INTERNAL: Do not use.
|
||||||
*/
|
*/
|
||||||
class TAstNode =
|
class TAstNode =
|
||||||
TAvailabilityInfo or TAvailabilitySpec or TCaseLabelItem or TConditionElement or TDecl or
|
TAvailabilityInfo or TAvailabilitySpec or TCallable or TCaseLabelItem or TConditionElement or
|
||||||
TExpr or TKeyPathComponent or TMacroRole or TPattern or TStmt or TStmtCondition or TTypeRepr;
|
TDecl or TExpr or TKeyPathComponent or TMacroRole or TPattern or TStmt or TStmtCondition or
|
||||||
|
TTypeRepr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* INTERNAL: Do not use.
|
* INTERNAL: Do not use.
|
||||||
@@ -3369,6 +3370,8 @@ module Synth {
|
|||||||
or
|
or
|
||||||
result = convertAvailabilitySpecFromRaw(e)
|
result = convertAvailabilitySpecFromRaw(e)
|
||||||
or
|
or
|
||||||
|
result = convertCallableFromRaw(e)
|
||||||
|
or
|
||||||
result = convertCaseLabelItemFromRaw(e)
|
result = convertCaseLabelItemFromRaw(e)
|
||||||
or
|
or
|
||||||
result = convertConditionElementFromRaw(e)
|
result = convertConditionElementFromRaw(e)
|
||||||
@@ -3418,8 +3421,6 @@ module Synth {
|
|||||||
*/
|
*/
|
||||||
cached
|
cached
|
||||||
TElement convertElementFromRaw(Raw::Element e) {
|
TElement convertElementFromRaw(Raw::Element e) {
|
||||||
result = convertCallableFromRaw(e)
|
|
||||||
or
|
|
||||||
result = convertFileFromRaw(e)
|
result = convertFileFromRaw(e)
|
||||||
or
|
or
|
||||||
result = convertGenericContextFromRaw(e)
|
result = convertGenericContextFromRaw(e)
|
||||||
@@ -6341,6 +6342,8 @@ module Synth {
|
|||||||
or
|
or
|
||||||
result = convertAvailabilitySpecToRaw(e)
|
result = convertAvailabilitySpecToRaw(e)
|
||||||
or
|
or
|
||||||
|
result = convertCallableToRaw(e)
|
||||||
|
or
|
||||||
result = convertCaseLabelItemToRaw(e)
|
result = convertCaseLabelItemToRaw(e)
|
||||||
or
|
or
|
||||||
result = convertConditionElementToRaw(e)
|
result = convertConditionElementToRaw(e)
|
||||||
@@ -6390,8 +6393,6 @@ module Synth {
|
|||||||
*/
|
*/
|
||||||
cached
|
cached
|
||||||
Raw::Element convertElementToRaw(TElement e) {
|
Raw::Element convertElementToRaw(TElement e) {
|
||||||
result = convertCallableToRaw(e)
|
|
||||||
or
|
|
||||||
result = convertFileToRaw(e)
|
result = convertFileToRaw(e)
|
||||||
or
|
or
|
||||||
result = convertGenericContextToRaw(e)
|
result = convertGenericContextToRaw(e)
|
||||||
|
|||||||
78
swift/ql/lib/swift.dbscheme
generated
78
swift/ql/lib/swift.dbscheme
generated
@@ -12,8 +12,7 @@ sourceLocationPrefix(
|
|||||||
// from schema.py
|
// from schema.py
|
||||||
|
|
||||||
@element =
|
@element =
|
||||||
@callable
|
@file
|
||||||
| @file
|
|
||||||
| @generic_context
|
| @generic_context
|
||||||
| @locatable
|
| @locatable
|
||||||
| @location
|
| @location
|
||||||
@@ -25,43 +24,6 @@ element_is_unknown(
|
|||||||
int id: @element ref
|
int id: @element ref
|
||||||
);
|
);
|
||||||
|
|
||||||
@callable =
|
|
||||||
@closure_expr
|
|
||||||
| @function
|
|
||||||
;
|
|
||||||
|
|
||||||
#keyset[id]
|
|
||||||
callable_names(
|
|
||||||
int id: @callable ref,
|
|
||||||
string name: string ref
|
|
||||||
);
|
|
||||||
|
|
||||||
#keyset[id]
|
|
||||||
callable_self_params(
|
|
||||||
int id: @callable ref,
|
|
||||||
int self_param: @param_decl_or_none ref
|
|
||||||
);
|
|
||||||
|
|
||||||
#keyset[id, index]
|
|
||||||
callable_params(
|
|
||||||
int id: @callable ref,
|
|
||||||
int index: int ref,
|
|
||||||
int param: @param_decl_or_none ref
|
|
||||||
);
|
|
||||||
|
|
||||||
#keyset[id]
|
|
||||||
callable_bodies(
|
|
||||||
int id: @callable ref,
|
|
||||||
int body: @brace_stmt_or_none ref
|
|
||||||
);
|
|
||||||
|
|
||||||
#keyset[id, index]
|
|
||||||
callable_captures(
|
|
||||||
int id: @callable ref,
|
|
||||||
int index: int ref,
|
|
||||||
int capture: @captured_decl_or_none ref
|
|
||||||
);
|
|
||||||
|
|
||||||
@file =
|
@file =
|
||||||
@db_file
|
@db_file
|
||||||
;
|
;
|
||||||
@@ -108,6 +70,7 @@ locations(
|
|||||||
@ast_node =
|
@ast_node =
|
||||||
@availability_info
|
@availability_info
|
||||||
| @availability_spec
|
| @availability_spec
|
||||||
|
| @callable
|
||||||
| @case_label_item
|
| @case_label_item
|
||||||
| @condition_element
|
| @condition_element
|
||||||
| @decl
|
| @decl
|
||||||
@@ -175,6 +138,43 @@ availability_info_specs(
|
|||||||
| @platform_version_availability_spec
|
| @platform_version_availability_spec
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@callable =
|
||||||
|
@closure_expr
|
||||||
|
| @function
|
||||||
|
;
|
||||||
|
|
||||||
|
#keyset[id]
|
||||||
|
callable_names(
|
||||||
|
int id: @callable ref,
|
||||||
|
string name: string ref
|
||||||
|
);
|
||||||
|
|
||||||
|
#keyset[id]
|
||||||
|
callable_self_params(
|
||||||
|
int id: @callable ref,
|
||||||
|
int self_param: @param_decl_or_none ref
|
||||||
|
);
|
||||||
|
|
||||||
|
#keyset[id, index]
|
||||||
|
callable_params(
|
||||||
|
int id: @callable ref,
|
||||||
|
int index: int ref,
|
||||||
|
int param: @param_decl_or_none ref
|
||||||
|
);
|
||||||
|
|
||||||
|
#keyset[id]
|
||||||
|
callable_bodies(
|
||||||
|
int id: @callable ref,
|
||||||
|
int body: @brace_stmt_or_none ref
|
||||||
|
);
|
||||||
|
|
||||||
|
#keyset[id, index]
|
||||||
|
callable_captures(
|
||||||
|
int id: @callable ref,
|
||||||
|
int index: int ref,
|
||||||
|
int capture: @captured_decl_or_none ref
|
||||||
|
);
|
||||||
|
|
||||||
key_path_components(
|
key_path_components(
|
||||||
unique int id: @key_path_component,
|
unique int id: @key_path_component,
|
||||||
int kind: int ref,
|
int kind: int ref,
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ class ParamDecl(VarDecl):
|
|||||||
has a property wrapper.
|
has a property wrapper.
|
||||||
""")
|
""")
|
||||||
|
|
||||||
class Callable(Element):
|
class Callable(AstNode):
|
||||||
name: optional[string] | doc("name of this callable") | desc("The name includes argument "
|
name: optional[string] | doc("name of this callable") | desc("The name includes argument "
|
||||||
"labels of the callable, for example `myFunction(arg:)`.")
|
"labels of the callable, for example `myFunction(arg:)`.")
|
||||||
self_param: optional[ParamDecl] | child
|
self_param: optional[ParamDecl] | child
|
||||||
|
|||||||
Reference in New Issue
Block a user