mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Rust: rerun codegen
This commit is contained in:
2
rust/extractor/src/generated/.generated.list
generated
2
rust/extractor/src/generated/.generated.list
generated
@@ -1,2 +1,2 @@
|
||||
mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7
|
||||
top.rs 69c1fcaf0efea87feb898f32fdb7bcb842a22119b69ecedd61c2d946eb7e67de 69c1fcaf0efea87feb898f32fdb7bcb842a22119b69ecedd61c2d946eb7e67de
|
||||
top.rs 5f63b6fe293fe0b939eed4c38daf938ac312632555acbe3591887140d94477e6 5f63b6fe293fe0b939eed4c38daf938ac312632555acbe3591887140d94477e6
|
||||
|
||||
8
rust/extractor/src/generated/top.rs
generated
8
rust/extractor/src/generated/top.rs
generated
@@ -9046,11 +9046,13 @@ pub struct Const {
|
||||
pub id: trap::TrapId<Const>,
|
||||
pub attrs: Vec<trap::Label<Attr>>,
|
||||
pub body: Option<trap::Label<Expr>>,
|
||||
pub generic_param_list: Option<trap::Label<GenericParamList>>,
|
||||
pub is_const: bool,
|
||||
pub is_default: bool,
|
||||
pub name: Option<trap::Label<Name>>,
|
||||
pub type_repr: Option<trap::Label<TypeRepr>>,
|
||||
pub visibility: Option<trap::Label<Visibility>>,
|
||||
pub where_clause: Option<trap::Label<WhereClause>>,
|
||||
}
|
||||
|
||||
impl trap::TrapEntry for Const {
|
||||
@@ -9066,6 +9068,9 @@ impl trap::TrapEntry for Const {
|
||||
if let Some(v) = self.body {
|
||||
out.add_tuple("const_bodies", vec![id.into(), v.into()]);
|
||||
}
|
||||
if let Some(v) = self.generic_param_list {
|
||||
out.add_tuple("const_generic_param_lists", vec![id.into(), v.into()]);
|
||||
}
|
||||
if self.is_const {
|
||||
out.add_tuple("const_is_const", vec![id.into()]);
|
||||
}
|
||||
@@ -9081,6 +9086,9 @@ impl trap::TrapEntry for Const {
|
||||
if let Some(v) = self.visibility {
|
||||
out.add_tuple("const_visibilities", vec![id.into(), v.into()]);
|
||||
}
|
||||
if let Some(v) = self.where_clause {
|
||||
out.add_tuple("const_where_clauses", vec![id.into(), v.into()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
6
rust/extractor/src/translate/generated.rs
generated
6
rust/extractor/src/translate/generated.rs
generated
@@ -828,20 +828,26 @@ impl Translator<'_> {
|
||||
} else {
|
||||
node.body().and_then(|x| self.emit_expr(&x))
|
||||
};
|
||||
let generic_param_list = node
|
||||
.generic_param_list()
|
||||
.and_then(|x| self.emit_generic_param_list(&x));
|
||||
let is_const = node.const_token().is_some();
|
||||
let is_default = node.default_token().is_some();
|
||||
let name = node.name().and_then(|x| self.emit_name(&x));
|
||||
let type_repr = node.ty().and_then(|x| self.emit_type(&x));
|
||||
let visibility = node.visibility().and_then(|x| self.emit_visibility(&x));
|
||||
let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x));
|
||||
let label = self.trap.emit(generated::Const {
|
||||
id: TrapId::Star,
|
||||
attrs,
|
||||
body,
|
||||
generic_param_list,
|
||||
is_const,
|
||||
is_default,
|
||||
name,
|
||||
type_repr,
|
||||
visibility,
|
||||
where_clause,
|
||||
});
|
||||
self.emit_location(label, node);
|
||||
post_emit!(Const, self, node, label);
|
||||
|
||||
12
rust/ql/.generated.list
generated
12
rust/ql/.generated.list
generated
@@ -38,7 +38,7 @@ lib/codeql/rust/elements/CastExpr.qll 2fe1f36ba31fa29de309baf0a665cfcae67b61c733
|
||||
lib/codeql/rust/elements/ClosureBinder.qll 02c8e83bf07deaf7bf0233b76623ec7f1837be8b77fe7e1c23544edc7d85e3c4 2b114d9a6dede694324aebe3dac80a802d139cfacd39beb0f12b5b0a46ee6390
|
||||
lib/codeql/rust/elements/ClosureExpr.qll 67e2a106e9154c90367b129987e574d2a9ecf5b297536627e43706675d35eaed d6a381132ddd589c5a7ce174f50f9620041ddf690e15a65ebfb05ff7e7c02de7
|
||||
lib/codeql/rust/elements/Comment.qll fedad50575125e9a64a8a8776a8c1dbf1e76df990f01849d9f0955f9d74cb2a6 8eb1afad1e1007a4f0090fdac65d81726b23eda6517d067fd0185f70f17635ab
|
||||
lib/codeql/rust/elements/Const.qll 8b9c66b59d9469a78b2c696b6e37d915a25f9dd215c0b79b113dc7d34adca9e3 7b8213bf21403a1f8b78ea6a20b716f312b26fee5526111602482a2e985e8ac5
|
||||
lib/codeql/rust/elements/Const.qll fd2959d036f47fabcbde9a21c3e173b105168f4944c3cea7c3e8ba4c1f5d6052 c3bde2a8ce4425bd2e20a8a9f96ecf049747935b99a10d35b29ba942e8e44e63
|
||||
lib/codeql/rust/elements/ConstArg.qll 01865b3be4790c627a062c59ea608462931abcb2f94a132cf265318664fd1251 a2c6bbf63dbfa999e511b6941143a51c9392477d8ccd25e081f85475936ff558
|
||||
lib/codeql/rust/elements/ConstBlockPat.qll a25f42b84dbeb33e10955735ef53b8bb7e3258522d6d1a9068f19adaf1af89d9 eeb816d2b54db77a1e7bb70e90b68d040a0cd44e9d44455a223311c3615c5e6e
|
||||
lib/codeql/rust/elements/ConstParam.qll 87776586f7ff562ff3c71373f45cf70486f9a832613a0aaac943311c451cc057 67a31616688106d5130951f2162e5229bff0fde08ff647943663cac427d7048b
|
||||
@@ -497,7 +497,7 @@ lib/codeql/rust/elements/internal/generated/CastExpr.qll ddc20054b0b339ad4d40298
|
||||
lib/codeql/rust/elements/internal/generated/ClosureBinder.qll ab199df96f525a083a0762fd654cd098802033c79700a593bb204a9a0c69ec01 86b33543e0886715830cfcdaca43b555a242a4f12a4caa18b88732d5afb584bd
|
||||
lib/codeql/rust/elements/internal/generated/ClosureExpr.qll 34149bf82f107591e65738221e1407ec1dc9cc0dfb10ae7f761116fda45162de fd2fbc9a87fc0773c940db64013cf784d5e4137515cc1020e2076da329f5a952
|
||||
lib/codeql/rust/elements/internal/generated/Comment.qll cd1ef861e3803618f9f78a4ac00516d50ecfecdca1c1d14304dc5327cbe07a3b 8b67345aeb15beb5895212228761ea3496297846c93fd2127b417406ae87c201
|
||||
lib/codeql/rust/elements/internal/generated/Const.qll 6300d7150d03f6bc2f0b29bb7d4a7bc1381c377644b0c61860733be685bac646 f5299a799a33fa28ca5b6d198f43a80696556144236df39124784211a1ad8285
|
||||
lib/codeql/rust/elements/internal/generated/Const.qll e923b540d1dc26cc59766ecd938b8e18f3c73097a73eeaeed3513c8fca7ac3a8 2261a0c46f4252124c40600e7fb2e5743f0e66d58cedc5768fe57393191a9504
|
||||
lib/codeql/rust/elements/internal/generated/ConstArg.qll c52bf746f2dc89b8d71b8419736707bfcbb09cca424c3ba76e888e2add415bf6 89309a9df4fde23cfd3d8492908ccec4d90cc8457d35c507ef81371a369941b4
|
||||
lib/codeql/rust/elements/internal/generated/ConstBlockPat.qll 7526d83ee9565d74776f42db58b1a2efff6fb324cfc7137f51f2206fee815d79 0ab3c22908ff790e7092e576a5df3837db33c32a7922a513a0f5e495729c1ac5
|
||||
lib/codeql/rust/elements/internal/generated/ConstParam.qll 2e24198f636e4932c79f28c324f395ae5f61f713795ed4543e920913898e2815 5abe6d3df395c679c28a7720479bad455c53bc5ade9133f1ff113ea54dc66c11
|
||||
@@ -577,7 +577,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll eaa0cd4402d3665013d47e
|
||||
lib/codeql/rust/elements/internal/generated/ParenExpr.qll 812d2ff65079277f39f15c084657a955a960a7c1c0e96dd60472a58d56b945eb eb8c607f43e1fcbb41f37a10de203a1db806690e10ff4f04d48ed874189cb0eb
|
||||
lib/codeql/rust/elements/internal/generated/ParenPat.qll 24f9dc7fce75827d6fddb856cd48f80168143151b27295c0bab6db5a06567a09 ebadbc6f5498e9ed754b39893ce0763840409a0721036a25b56e1ead7dcc09aa
|
||||
lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 03f5c5b96a37adeb845352d7fcea3e098da9050e534972d14ac0f70d60a2d776 ed3d6e5d02086523087adebce4e89e35461eb95f2a66d1d4100fe23fc691b126
|
||||
lib/codeql/rust/elements/internal/generated/ParentChild.qll 5278b74de04d54708f078fd813d83ae5f934fa12d420b188c1334e3a7c3b8324 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20
|
||||
lib/codeql/rust/elements/internal/generated/ParentChild.qll 5ebb01358afcbee39cfed2a01a31b1f6d427f70e59e296a458dbe57460bf40b7 fa9ed16272ace82d08ddb8aac7ea3305a868b0f63cf60df6f2125a7dc9f4f870
|
||||
lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll d901fdc8142a5b8847cc98fc2afcfd16428b8ace4fbffb457e761b5fd3901a77 5dbb0aea5a13f937da666ccb042494af8f11e776ade1459d16b70a4dd193f9fb
|
||||
lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4
|
||||
lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd
|
||||
@@ -592,7 +592,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 8d0ea4f6c7f8203340bf
|
||||
lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f
|
||||
lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9
|
||||
lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9
|
||||
lib/codeql/rust/elements/internal/generated/Raw.qll b6e439cc24f8c02fe73301cd2bc16d59dfd28e2a8a201388d8318c43937309e2 62139c3df2f6c4dca1c897b1384233ff0151b7e5fb1c41a178c5e8e41b5e7f05
|
||||
lib/codeql/rust/elements/internal/generated/Raw.qll 92c1f49f719ebee9fddb5cd5dded28f768127ffc1e8bb487ece8887bc6608ae6 4c1ad14de73a9998416f121304ef5b58c8e917a980b3f2d795e1d6475f470b0c
|
||||
lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66
|
||||
lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05
|
||||
lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b
|
||||
@@ -748,15 +748,17 @@ test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql c87b61e80dd62
|
||||
test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql 68ce501516094512dd5bfed42a785474583a91312f704087cba801b02ba7b834 eacbf89d63159e7decfd84c2a1dc5c067dfce56a8157fbb52bc133e9702d266d
|
||||
test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql c95bc7306b2d77aa05a6501b6321e6f1e7a48b7ad422ba082635ab20014288ae fe72d44c9819b42fff49b9092a9fb2bfafde6d3b9e4967547fb5298822f30bc3
|
||||
test/extractor-tests/generated/Comment/Comment.ql 5428b8417a737f88f0d55d87de45c4693d81f03686f03da11dc5369e163d977b 8948c1860cde198d49cff7c74741f554a9e89f8af97bb94de80f3c62e1e29244
|
||||
test/extractor-tests/generated/Const/Const.ql 7f9c9ce5b04391ff8f0d419a62972292b1d9811a978cceb129ef5a0f68a02fab c6c1dfa688248310cadd2d6d71d1a70a2b48f5b29ea2078f4dd51db59a0021c0
|
||||
test/extractor-tests/generated/Const/Const.ql 8cae77fe63a0a64b2ff2f5e642711aa79ad29fb8705d877e195852ed148af67d 6178c888516d9d24aca14a8fdf1e94043e2a7f85332700c13f368b1e22f2bccb
|
||||
test/extractor-tests/generated/Const/Const_getAttr.ql bd6296dab00065db39663db8d09fe62146838875206ff9d8595d06d6439f5043 34cb55ca6d1f44e27d82a8b624f16f9408bae2485c85da94cc76327eed168577
|
||||
test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql 82e86399d5cd72621dc8d9cd9f310d3dc7f2ecf208149dab0d202047ccbbd2f8 33df8c5b5044f49ec244e183c61c3b81fabd987f590ba6da4e18e08231343dc8
|
||||
test/extractor-tests/generated/Const/Const_getBody.ql f50f79b7f42bb1043b79ec96f999fa4740c8014e6969a25812d5d023d7a5a5d8 90e5060ba9757f1021429ed4ec4913bc78747f3fc415456ef7e7fc284b8a0026
|
||||
test/extractor-tests/generated/Const/Const_getCrateOrigin.ql f042bf15f9bde6c62d129601806c79951a2a131b6388e8df24b1dc5d17fe89f7 7c6decb624f087fda178f87f6609510907d2ed3877b0f36e605e2422b4b13f57
|
||||
test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql 3300b902e1d1f9928cfe918203b87043e13460cfa5348a8c93712d2e26d61ced 71e7b80d3290f17b1c235adaca2c48ae90eb8b2cb24d4c9e6dc66559daf3824c
|
||||
test/extractor-tests/generated/Const/Const_getGenericParamList.ql 8bef3c83401a0a203d1e19a4dc652d2285870760cc2032a1b5745fae9fc3f29b 95b2f730daf19eb87b17a3f602ea3a71a1056c8f2a2328d7b46189cc82b29e4c
|
||||
test/extractor-tests/generated/Const/Const_getName.ql b876a1964bbb857fbe8852fb05f589fba947a494f343e8c96a1171e791aa2b5e 83655b1fbc67a4a1704439726c1138bb6784553e35b6ac16250b807e6cd0f40c
|
||||
test/extractor-tests/generated/Const/Const_getTypeRepr.ql 87c5deaa31014c40a035deaf149d76b3aca15c4560c93dd6f4b1ee5f76714baa f3e6b31e4877849792778d4535bd0389f3afd482a6a02f9ceb7e792e46fca83e
|
||||
test/extractor-tests/generated/Const/Const_getVisibility.ql de6b2e9d887316e279b45fab7887980ca7d93fd32c2259f3a06de2b6e2957c12 2f135cdbbb84b43d282131edb7eb4df6caba61bf7421881a49d4679f0f44f661
|
||||
test/extractor-tests/generated/Const/Const_getWhereClause.ql 9458b25fd2567c92d1230afb844d81f1f9a9a7b4d164cbdf8b86455ef0d02251 8792f1a5cccaf77f6b1673dd5acd067acfb79f9a8a34a0769e0eb69ab89c9f16
|
||||
test/extractor-tests/generated/ConstArg/ConstArg.ql f1422b216eb45819ff41f0c19e0f88aa184ddd3fa2984ba22ec46df398147fc3 d2e4f367848c2bc4f6aef51c1dd8180035c39919430082c83f18a3f324228df3
|
||||
test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql 317fd83ad51acc3ff3dfab71ebb1385b67d49404c1d7b3804a8ca3c099b84e99 91ecf5ebbfc1aab286dce708680f0be97417f9755676db7479fa6836e50be845
|
||||
test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql ee17b4deba9c503130e3ce565102bc8e181770efcb1309be9c822f0a7ba6fc17 638ed17b5c009e71b31f580c4060ba763bd4208c3984b6c032183ab46a4dd43d
|
||||
|
||||
2
rust/ql/.gitattributes
generated
vendored
2
rust/ql/.gitattributes
generated
vendored
@@ -756,9 +756,11 @@
|
||||
/test/extractor-tests/generated/Const/Const_getBody.ql linguist-generated
|
||||
/test/extractor-tests/generated/Const/Const_getCrateOrigin.ql linguist-generated
|
||||
/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql linguist-generated
|
||||
/test/extractor-tests/generated/Const/Const_getGenericParamList.ql linguist-generated
|
||||
/test/extractor-tests/generated/Const/Const_getName.ql linguist-generated
|
||||
/test/extractor-tests/generated/Const/Const_getTypeRepr.ql linguist-generated
|
||||
/test/extractor-tests/generated/Const/Const_getVisibility.ql linguist-generated
|
||||
/test/extractor-tests/generated/Const/Const_getWhereClause.ql linguist-generated
|
||||
/test/extractor-tests/generated/ConstArg/ConstArg.ql linguist-generated
|
||||
/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql linguist-generated
|
||||
|
||||
2
rust/ql/lib/codeql/rust/elements/Const.qll
generated
2
rust/ql/lib/codeql/rust/elements/Const.qll
generated
@@ -7,10 +7,12 @@ private import internal.ConstImpl
|
||||
import codeql.rust.elements.AssocItem
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.GenericParamList
|
||||
import codeql.rust.elements.Item
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.TypeRepr
|
||||
import codeql.rust.elements.Visibility
|
||||
import codeql.rust.elements.WhereClause
|
||||
|
||||
/**
|
||||
* A constant item declaration.
|
||||
|
||||
@@ -9,10 +9,12 @@ private import codeql.rust.elements.internal.generated.Raw
|
||||
import codeql.rust.elements.internal.AssocItemImpl::Impl as AssocItemImpl
|
||||
import codeql.rust.elements.Attr
|
||||
import codeql.rust.elements.Expr
|
||||
import codeql.rust.elements.GenericParamList
|
||||
import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl
|
||||
import codeql.rust.elements.Name
|
||||
import codeql.rust.elements.TypeRepr
|
||||
import codeql.rust.elements.Visibility
|
||||
import codeql.rust.elements.WhereClause
|
||||
|
||||
/**
|
||||
* INTERNAL: This module contains the fully generated definition of `Const` and should not
|
||||
@@ -61,6 +63,21 @@ module Generated {
|
||||
*/
|
||||
final predicate hasBody() { exists(this.getBody()) }
|
||||
|
||||
/**
|
||||
* Gets the generic parameter list of this const, if it exists.
|
||||
*/
|
||||
GenericParamList getGenericParamList() {
|
||||
result =
|
||||
Synth::convertGenericParamListFromRaw(Synth::convertConstToRaw(this)
|
||||
.(Raw::Const)
|
||||
.getGenericParamList())
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `getGenericParamList()` exists.
|
||||
*/
|
||||
final predicate hasGenericParamList() { exists(this.getGenericParamList()) }
|
||||
|
||||
/**
|
||||
* Holds if this const is const.
|
||||
*/
|
||||
@@ -109,6 +126,21 @@ module Generated {
|
||||
*/
|
||||
final predicate hasVisibility() { exists(this.getVisibility()) }
|
||||
|
||||
/**
|
||||
* Gets the where clause of this const, if it exists.
|
||||
*/
|
||||
WhereClause getWhereClause() {
|
||||
result =
|
||||
Synth::convertWhereClauseFromRaw(Synth::convertConstToRaw(this)
|
||||
.(Raw::Const)
|
||||
.getWhereClause())
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `getWhereClause()` exists.
|
||||
*/
|
||||
final predicate hasWhereClause() { exists(this.getWhereClause()) }
|
||||
|
||||
/**
|
||||
* Holds if this constant has an implementation.
|
||||
*
|
||||
|
||||
@@ -3242,8 +3242,8 @@ private module Impl {
|
||||
|
||||
private Element getImmediateChildOfConst(Const e, int index, string partialPredicateCall) {
|
||||
exists(
|
||||
int b, int bAssocItem, int bItem, int n, int nAttr, int nBody, int nName, int nTypeRepr,
|
||||
int nVisibility
|
||||
int b, int bAssocItem, int bItem, int n, int nAttr, int nBody, int nGenericParamList,
|
||||
int nName, int nTypeRepr, int nVisibility, int nWhereClause
|
||||
|
|
||||
b = 0 and
|
||||
bAssocItem = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAssocItem(e, i, _)) | i) and
|
||||
@@ -3251,9 +3251,11 @@ private module Impl {
|
||||
n = bItem and
|
||||
nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and
|
||||
nBody = nAttr + 1 and
|
||||
nName = nBody + 1 and
|
||||
nGenericParamList = nBody + 1 and
|
||||
nName = nGenericParamList + 1 and
|
||||
nTypeRepr = nName + 1 and
|
||||
nVisibility = nTypeRepr + 1 and
|
||||
nWhereClause = nVisibility + 1 and
|
||||
(
|
||||
none()
|
||||
or
|
||||
@@ -3266,11 +3268,19 @@ private module Impl {
|
||||
or
|
||||
index = nAttr and result = e.getBody() and partialPredicateCall = "Body()"
|
||||
or
|
||||
index = nBody and result = e.getName() and partialPredicateCall = "Name()"
|
||||
index = nBody and
|
||||
result = e.getGenericParamList() and
|
||||
partialPredicateCall = "GenericParamList()"
|
||||
or
|
||||
index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()"
|
||||
or
|
||||
index = nName and result = e.getTypeRepr() and partialPredicateCall = "TypeRepr()"
|
||||
or
|
||||
index = nTypeRepr and result = e.getVisibility() and partialPredicateCall = "Visibility()"
|
||||
or
|
||||
index = nVisibility and
|
||||
result = e.getWhereClause() and
|
||||
partialPredicateCall = "WhereClause()"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -3710,6 +3710,11 @@ module Raw {
|
||||
*/
|
||||
Expr getBody() { const_bodies(this, result) }
|
||||
|
||||
/**
|
||||
* Gets the generic parameter list of this const, if it exists.
|
||||
*/
|
||||
GenericParamList getGenericParamList() { const_generic_param_lists(this, result) }
|
||||
|
||||
/**
|
||||
* Holds if this const is const.
|
||||
*/
|
||||
@@ -3735,6 +3740,11 @@ module Raw {
|
||||
*/
|
||||
Visibility getVisibility() { const_visibilities(this, result) }
|
||||
|
||||
/**
|
||||
* Gets the where clause of this const, if it exists.
|
||||
*/
|
||||
WhereClause getWhereClause() { const_where_clauses(this, result) }
|
||||
|
||||
/**
|
||||
* Holds if this constant has an implementation.
|
||||
*
|
||||
|
||||
@@ -2788,6 +2788,12 @@ const_bodies(
|
||||
int body: @expr ref
|
||||
);
|
||||
|
||||
#keyset[id]
|
||||
const_generic_param_lists(
|
||||
int id: @const ref,
|
||||
int generic_param_list: @generic_param_list ref
|
||||
);
|
||||
|
||||
#keyset[id]
|
||||
const_is_const(
|
||||
int id: @const ref
|
||||
@@ -2816,6 +2822,12 @@ const_visibilities(
|
||||
int visibility: @visibility ref
|
||||
);
|
||||
|
||||
#keyset[id]
|
||||
const_where_clauses(
|
||||
int id: @const ref,
|
||||
int where_clause: @where_clause ref
|
||||
);
|
||||
|
||||
#keyset[id]
|
||||
const_has_implementation(
|
||||
int id: @const ref
|
||||
|
||||
@@ -4,9 +4,9 @@ import TestUtils
|
||||
|
||||
from
|
||||
Const x, string hasExtendedCanonicalPath, string hasCrateOrigin,
|
||||
string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasBody, string isConst,
|
||||
string isDefault, string hasName, string hasTypeRepr, string hasVisibility,
|
||||
string hasImplementation
|
||||
string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasBody,
|
||||
string hasGenericParamList, string isConst, string isDefault, string hasName, string hasTypeRepr,
|
||||
string hasVisibility, string hasWhereClause, string hasImplementation
|
||||
where
|
||||
toBeTested(x) and
|
||||
not x.isUnknown() and
|
||||
@@ -23,14 +23,16 @@ where
|
||||
) and
|
||||
getNumberOfAttrs = x.getNumberOfAttrs() and
|
||||
(if x.hasBody() then hasBody = "yes" else hasBody = "no") and
|
||||
(if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and
|
||||
(if x.isConst() then isConst = "yes" else isConst = "no") and
|
||||
(if x.isDefault() then isDefault = "yes" else isDefault = "no") and
|
||||
(if x.hasName() then hasName = "yes" else hasName = "no") and
|
||||
(if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and
|
||||
(if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and
|
||||
(if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no") and
|
||||
if x.hasImplementation() then hasImplementation = "yes" else hasImplementation = "no"
|
||||
select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin,
|
||||
"hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs,
|
||||
"hasBody:", hasBody, "isConst:", isConst, "isDefault:", isDefault, "hasName:", hasName,
|
||||
"hasTypeRepr:", hasTypeRepr, "hasVisibility:", hasVisibility, "hasImplementation:",
|
||||
hasImplementation
|
||||
"hasBody:", hasBody, "hasGenericParamList:", hasGenericParamList, "isConst:", isConst,
|
||||
"isDefault:", isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, "hasVisibility:",
|
||||
hasVisibility, "hasWhereClause:", hasWhereClause, "hasImplementation:", hasImplementation
|
||||
|
||||
7
rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql
generated
Normal file
7
rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
// generated by codegen, do not edit
|
||||
import codeql.rust.elements
|
||||
import TestUtils
|
||||
|
||||
from Const x
|
||||
where toBeTested(x) and not x.isUnknown()
|
||||
select x, x.getGenericParamList()
|
||||
7
rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql
generated
Normal file
7
rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
// generated by codegen, do not edit
|
||||
import codeql.rust.elements
|
||||
import TestUtils
|
||||
|
||||
from Const x
|
||||
where toBeTested(x) and not x.isUnknown()
|
||||
select x, x.getWhereClause()
|
||||
2
rust/schema/ast.py
generated
2
rust/schema/ast.py
generated
@@ -180,11 +180,13 @@ class ClosureExpr(Expr, ):
|
||||
class Const(AssocItem, Item, ):
|
||||
attrs: list["Attr"] | child
|
||||
body: optional["Expr"] | child
|
||||
generic_param_list: optional["GenericParamList"] | child
|
||||
is_const: predicate
|
||||
is_default: predicate
|
||||
name: optional["Name"] | child
|
||||
type_repr: optional["TypeRepr"] | child
|
||||
visibility: optional["Visibility"] | child
|
||||
where_clause: optional["WhereClause"] | child
|
||||
|
||||
class ConstArg(GenericArg, ):
|
||||
expr: optional["Expr"] | child
|
||||
|
||||
Reference in New Issue
Block a user