mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Rust: undo rename of Path::segment to Path::part
This commit is contained in:
@@ -36,7 +36,6 @@ fn property_name(type_name: &str, field_name: &str) -> String {
|
||||
("CallExpr", "expr") => "function",
|
||||
("LetExpr", "expr") => "scrutinee",
|
||||
("MatchExpr", "expr") => "scrutinee",
|
||||
("Path", "segment") => "part",
|
||||
(_, "then_branch") => "then",
|
||||
(_, "else_branch") => "else_",
|
||||
("ArrayType", "ty") => "element_type_repr",
|
||||
|
||||
@@ -953,7 +953,7 @@ fn make_qualified_path(
|
||||
id: trap::TrapId::Star,
|
||||
text: Some(name),
|
||||
}));
|
||||
let part = Some(trap.emit(generated::PathSegment {
|
||||
let segment = Some(trap.emit(generated::PathSegment {
|
||||
id: trap::TrapId::Star,
|
||||
generic_arg_list: None,
|
||||
name_ref,
|
||||
@@ -964,7 +964,7 @@ fn make_qualified_path(
|
||||
trap.emit(generated::Path {
|
||||
id: trap::TrapId::Star,
|
||||
qualifier,
|
||||
part,
|
||||
segment,
|
||||
})
|
||||
}
|
||||
path.into_iter()
|
||||
|
||||
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 22ca74a6a44e2984afdaffbc536d847296a79312d201b81948a32fe56064c8bf 22ca74a6a44e2984afdaffbc536d847296a79312d201b81948a32fe56064c8bf
|
||||
top.rs 4e8e5b1e16bb2f4b157b987c86c7b5cdb1d48a4586eafd08a92dcb989c94820e 4e8e5b1e16bb2f4b157b987c86c7b5cdb1d48a4586eafd08a92dcb989c94820e
|
||||
|
||||
6
rust/extractor/src/generated/top.rs
generated
6
rust/extractor/src/generated/top.rs
generated
@@ -2027,7 +2027,7 @@ impl From<trap::Label<Pat>> for trap::Label<Element> {
|
||||
pub struct Path {
|
||||
pub id: trap::TrapId<Path>,
|
||||
pub qualifier: Option<trap::Label<Path>>,
|
||||
pub part: Option<trap::Label<PathSegment>>,
|
||||
pub segment: Option<trap::Label<PathSegment>>,
|
||||
}
|
||||
|
||||
impl trap::TrapEntry for Path {
|
||||
@@ -2040,8 +2040,8 @@ impl trap::TrapEntry for Path {
|
||||
if let Some(v) = self.qualifier {
|
||||
out.add_tuple("path_qualifiers", vec![id.into(), v.into()]);
|
||||
}
|
||||
if let Some(v) = self.part {
|
||||
out.add_tuple("path_parts", vec![id.into(), v.into()]);
|
||||
if let Some(v) = self.segment {
|
||||
out.add_tuple("path_segments_", vec![id.into(), v.into()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
4
rust/extractor/src/translate/generated.rs
generated
4
rust/extractor/src/translate/generated.rs
generated
@@ -1659,11 +1659,11 @@ impl Translator<'_> {
|
||||
|
||||
pub(crate) fn emit_path(&mut self, node: ast::Path) -> Option<Label<generated::Path>> {
|
||||
let qualifier = node.qualifier().and_then(|x| self.emit_path(x));
|
||||
let part = node.segment().and_then(|x| self.emit_path_segment(x));
|
||||
let segment = node.segment().and_then(|x| self.emit_path_segment(x));
|
||||
let label = self.trap.emit(generated::Path {
|
||||
id: TrapId::Star,
|
||||
qualifier,
|
||||
part,
|
||||
segment,
|
||||
});
|
||||
self.emit_location(label, &node);
|
||||
emit_detached!(Path, self, node, label);
|
||||
|
||||
10
rust/ql/.generated.list
generated
10
rust/ql/.generated.list
generated
@@ -580,10 +580,10 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll c808c9d84dd7800573832b
|
||||
lib/codeql/rust/elements/internal/generated/ParenExpr.qll bc0731505bfe88516205ec360582a4222d2681d11342c93e15258590ddee82f2 d4bd6e0c80cf1d63746c88d4bcb3a01d4c75732e5da09e3ebd9437ced227fb60
|
||||
lib/codeql/rust/elements/internal/generated/ParenPat.qll 4f168ef5d5bb87a903251cc31b2e44a759b099ec69c90af31783fbb15778c940 0e34f94a45a13396fd57d94c245dc64d1adde2ab0e22b56946f7e94c04e297fc
|
||||
lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 40ab5c592e7699c621787793743e33988de71ff42ca27599f5ab3ddb70e3f7d8 12c0a6eed2202ee3e892f61da3b3ce77ac3190854cdf3097e8d2be98aa3cb91d
|
||||
lib/codeql/rust/elements/internal/generated/ParentChild.qll 0e80d85aa8ddb203edca90c9b68f88340231ab5415933f622bad18f639ff6190 9ebbfdf48f0a3c06658b53a9fd987530b34c9c40ae2c3d6ef6ebdf2721fdbf83
|
||||
lib/codeql/rust/elements/internal/generated/ParentChild.qll 7ccb90039b06af54b13cbe4f7294c0201fbee4fd4b173396a5cad43f40f0e706 0d45f0be4cbcb54774281e163efc09b28d3135086dc01197d49eb7e314217eea
|
||||
lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll c5fa328ea60d3a3333d7c7bb3480969c1873166c7ac8ebb9d0afad7a8099d1a8 2dbbb6200d96f7db7dea4a55bdeab8d67b14d39a43e0bd54ada019f7e466f163
|
||||
lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4
|
||||
lib/codeql/rust/elements/internal/generated/Path.qll 8e47e91aff3f8c60f1ee8cb3887b8e4936c38e4665d052f2c92a939a969aac29 2c28beb89cabd7c7c91a5bc65c874f414cb96bbefde37b25811b61089a8a0053
|
||||
lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd
|
||||
lib/codeql/rust/elements/internal/generated/PathAstNode.qll e6d4d5bffd3c623baaaee46bc183eb31ce88795535f164f6a9b9b4d98bbd6101 168db515404933479ba6b150c72e012d28592cbc32366aefcb1bf9599dbcd183
|
||||
lib/codeql/rust/elements/internal/generated/PathExpr.qll 34ebad4d062ce8b7e517f2ab09d52745fb8455203f4a936df7284ad296638387 ba66781cdbdeb89c27a4bfb2be0f27f85fb34978d699b4e343446fb0d7ad2aa6
|
||||
lib/codeql/rust/elements/internal/generated/PathExprBase.qll d8218e201b8557fa6d9ca2c30b764e5ad9a04a2e4fb695cc7219bbd7636a6ac2 4ef178426d7095a156f4f8c459b4d16f63abc64336cb50a6cf883a5f7ee09113
|
||||
@@ -595,7 +595,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 51d1e9e683fc79dddbff
|
||||
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 2e299cb4fc9e506d910827e3a3ab743570a02d963c9001b33c6c06f9aa92200d a19748787c02a18abffaaa4c7b9c23a9bbc56020fb36698bf82da72c09fa57db
|
||||
lib/codeql/rust/elements/internal/generated/Raw.qll c806d86ab8d8a56ea6ff1b7f9e4838ce424d19b9b7c23dc7f50312a8caad74d3 f2c141c0ff44d6de84a59448ebc30524a694e054a93afaf9d32179b8404026fd
|
||||
lib/codeql/rust/elements/internal/generated/RecordFieldList.qll 4a23b0d75a90671197246dbbb4e62706c180074abb8ebe60a96df11c47a917a2 09be127977651a24010b090d9681714d83ebd461098f9cf0e0d1973cafb1c782
|
||||
lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66
|
||||
lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05
|
||||
@@ -986,7 +986,7 @@ test/extractor-tests/generated/ParenPat/ParenPat_getPat.ql 96f3db0ec4e71fd870619
|
||||
test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql a96bb8b51d8c0c466afc1c076834fa16edf7e67fffe2f641799850dee43099a2 0e6c375e621b7a7756d39e8edd78b671e53d1aac757ac54a26747fe5259c5394
|
||||
test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.ql 64fe4ea708bc489ba64ed845f63cfbcd57c1179c57d95be309db37eac2f5eb71 0f4cbbfdf39d89830b5249cabf26d834fc2310b8a9579c19383c90cb4333afb7
|
||||
test/extractor-tests/generated/ParenthesizedArgList/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1
|
||||
test/extractor-tests/generated/Path/Path.ql 2bdcd99b3b5ffc83ac47d8cc27a4561d616bcf06844f0c452c699cd10ee640ca 5a7d7ffb8b0c04d6a8cbb2a953761df8561b796c4372bef1bd55c359b2f19911
|
||||
test/extractor-tests/generated/Path/Path.ql 2b02325ab1739bf41bc5f50d56b1e9cc72fca4093b03f2bda193699121e64448 c4d44402696ce10175ad8286dbd78277fbb81e7e1b886c0c27d5b88a7509052e
|
||||
test/extractor-tests/generated/Path/PathExpr.ql 5039fe730998a561f51813a0716e18c7c1d36b6da89936e4cfbdb4ef0e895560 cd3ddf8ab93cd573381807f59cded7fb3206f1dbdff582490be6f23bed2d6f29
|
||||
test/extractor-tests/generated/Path/PathExpr_getAttr.ql 2ccac48cd91d86670c1d2742de20344135d424e6f0e3dafcc059555046f92d92 9b7b5f5f9e3674fad9b3a5bcd3cabc0dff32a95640da0fce6f4d0eb931f1757d
|
||||
test/extractor-tests/generated/Path/PathExpr_getPath.ql e7894071313a74166bdd31d7cd974037fcd5a7f0e92d5eec42833266196eb858 46a06e8a1207e7a0fa175cd4b61068e5fd6c43b5575b88986409f0ac2be64c51
|
||||
@@ -1006,8 +1006,8 @@ test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.ql d7ea6ee3f6b7
|
||||
test/extractor-tests/generated/Path/PathSegment_getTypeRepr.ql d9d8ff43a55671616bd5b98ff2c03690ec2661817d19a61edcc4b37d23e312d0 b4dc0ae4d7f03c98c23312b358d214565b34c7a028ba8983826c6bf5c1177eeb
|
||||
test/extractor-tests/generated/Path/PathTypeRepr.ql c2e069acc5111088a7287d98b4bd4bf44bd79c5a786b275f7448ebafc3613500 6e016750e5fef92a98bc5cc60bfd40d85fbb5eb2d251b4d69ffe600813f81df0
|
||||
test/extractor-tests/generated/Path/PathTypeRepr_getPath.ql 49e96ea2aa482e3b80cb0e2d944055f8298f7fc55b36cea7468586c94bacf686 29b3c2140ac1bc6e0e6160140e292e2b84e13145c1553480e2a582cd7f7bd3fd
|
||||
test/extractor-tests/generated/Path/Path_getPart.ql 8aa45a0b58203ef1177166efbe1c2851faf4b4c9a453c83137f0c9298badcdbf b82d490d9b3a8237487cd5da8b3b6fc4aa477977b332a5c6539b3cd4e6d5b45b
|
||||
test/extractor-tests/generated/Path/Path_getQualifier.ql 9af95e22cdf3a65da6a41d93136aef4523db5ce81d38f6ed4bc613f1c68784d0 3102d9241a417a92c97a53ac56a7a8683463f1adc7a593cda1382c0d25b3f261
|
||||
test/extractor-tests/generated/Path/Path_getSegment.ql 475f344ee24a14468745d50922fdfd63f5d817f14cc041a184c2f8ec144a01dd 4f663c5c2b1e0cb8b9a8a0b2d8b5d81f12a3bf333c71ecbb43d9258f7dfe4ec7
|
||||
test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql 44fb7174365c6deecdc22c720d84617c6e060c05d49c41c90433451588f8aa6f 871fab471c82fede3c36edc003f9decee5bb7844c016951d28be78d0c91487e5
|
||||
test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.ql fdad6ad5199435ded1e4a9ea6b246e76b904cd73a36aaa4780e84eef91741c5b 75d63940046e62c1efa1151b0cac45b5ec0bab5e39aec2e11d43f6c385e37984
|
||||
test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.ql 2d1d97f6277794871fbb032ea87ac30b1aa902a74cd874720156162057ea202e b1b9880fce07d66df7ec87f12189c37adf9f233a1d0b38a1b09808d052a95642
|
||||
|
||||
2
rust/ql/.gitattributes
generated
vendored
2
rust/ql/.gitattributes
generated
vendored
@@ -1008,8 +1008,8 @@
|
||||
/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.ql linguist-generated
|
||||
/test/extractor-tests/generated/Path/PathTypeRepr.ql linguist-generated
|
||||
/test/extractor-tests/generated/Path/PathTypeRepr_getPath.ql linguist-generated
|
||||
/test/extractor-tests/generated/Path/Path_getPart.ql linguist-generated
|
||||
/test/extractor-tests/generated/Path/Path_getQualifier.ql linguist-generated
|
||||
/test/extractor-tests/generated/Path/Path_getSegment.ql linguist-generated
|
||||
/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql linguist-generated
|
||||
/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.ql linguist-generated
|
||||
/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.ql linguist-generated
|
||||
|
||||
@@ -32,14 +32,14 @@ module Impl {
|
||||
result = "...::"
|
||||
or
|
||||
index = 1 and
|
||||
result = this.getPart().toAbbreviatedString()
|
||||
result = this.getSegment().toAbbreviatedString()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the text of this path, if it exists.
|
||||
*/
|
||||
pragma[nomagic]
|
||||
string getText() { result = this.getPart().getNameRef().getText() }
|
||||
string getText() { result = this.getSegment().getNameRef().getText() }
|
||||
}
|
||||
|
||||
/** A simple identifier path. */
|
||||
@@ -49,7 +49,7 @@ module Impl {
|
||||
IdentPath() {
|
||||
not this.hasQualifier() and
|
||||
exists(PathSegment ps |
|
||||
ps = this.getPart() and
|
||||
ps = this.getSegment() and
|
||||
not ps.hasGenericArgList() and
|
||||
not ps.hasParenthesizedArgList() and
|
||||
not ps.hasTypeRepr() and
|
||||
|
||||
@@ -809,12 +809,12 @@ private module Impl {
|
||||
}
|
||||
|
||||
private Element getImmediateChildOfPath(Path e, int index, string partialPredicateCall) {
|
||||
exists(int b, int bAstNode, int n, int nQualifier, int nPart |
|
||||
exists(int b, int bAstNode, int n, int nQualifier, int nSegment |
|
||||
b = 0 and
|
||||
bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and
|
||||
n = bAstNode and
|
||||
nQualifier = n + 1 and
|
||||
nPart = nQualifier + 1 and
|
||||
nSegment = nQualifier + 1 and
|
||||
(
|
||||
none()
|
||||
or
|
||||
@@ -822,7 +822,7 @@ private module Impl {
|
||||
or
|
||||
index = n and result = e.getQualifier() and partialPredicateCall = "Qualifier()"
|
||||
or
|
||||
index = nQualifier and result = e.getPart() and partialPredicateCall = "Part()"
|
||||
index = nQualifier and result = e.getSegment() and partialPredicateCall = "Segment()"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -42,15 +42,16 @@ module Generated {
|
||||
final predicate hasQualifier() { exists(this.getQualifier()) }
|
||||
|
||||
/**
|
||||
* Gets the part of this path, if it exists.
|
||||
* Gets the last segment of this path, if it exists.
|
||||
*/
|
||||
PathSegment getPart() {
|
||||
result = Synth::convertPathSegmentFromRaw(Synth::convertPathToRaw(this).(Raw::Path).getPart())
|
||||
PathSegment getSegment() {
|
||||
result =
|
||||
Synth::convertPathSegmentFromRaw(Synth::convertPathToRaw(this).(Raw::Path).getSegment())
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `getPart()` exists.
|
||||
* Holds if `getSegment()` exists.
|
||||
*/
|
||||
final predicate hasPart() { exists(this.getPart()) }
|
||||
final predicate hasSegment() { exists(this.getSegment()) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -718,9 +718,9 @@ module Raw {
|
||||
Path getQualifier() { path_qualifiers(this, result) }
|
||||
|
||||
/**
|
||||
* Gets the part of this path, if it exists.
|
||||
* Gets the last segment of this path, if it exists.
|
||||
*/
|
||||
PathSegment getPart() { path_parts(this, result) }
|
||||
PathSegment getSegment() { path_segments_(this, result) }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,14 +31,14 @@ class StreamCipherInit extends Cryptography::CryptographicOperation::Range {
|
||||
rawAlgorithmName =
|
||||
p.getPath()
|
||||
.getQualifier()
|
||||
.getPart()
|
||||
.getSegment()
|
||||
.getGenericArgList()
|
||||
.getGenericArg(0)
|
||||
.(TypeArg)
|
||||
.getTypeRepr()
|
||||
.(PathTypeRepr)
|
||||
.getPath()
|
||||
.getPart()
|
||||
.getSegment()
|
||||
.getNameRef()
|
||||
.getText()
|
||||
) and
|
||||
|
||||
@@ -312,7 +312,7 @@ class ImplItemNode extends ImplOrTraitItemNode instanceof Impl {
|
||||
pragma[nomagic]
|
||||
private TypeRepr getASelfTyArg() {
|
||||
result =
|
||||
this.getSelfPath().getPart().getGenericArgList().getAGenericArg().(TypeArg).getTypeRepr()
|
||||
this.getSelfPath().getSegment().getGenericArgList().getAGenericArg().(TypeArg).getTypeRepr()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -240,7 +240,7 @@ private Type inferImplicitSelfType(SelfParam self, TypePath path) {
|
||||
*/
|
||||
private TypeMention getExplicitTypeArgMention(Path path, TypeParam tp) {
|
||||
exists(int i |
|
||||
result = path.getPart().getGenericArgList().getTypeArg(pragma[only_bind_into](i)) and
|
||||
result = path.getSegment().getGenericArgList().getTypeArg(pragma[only_bind_into](i)) and
|
||||
tp = resolvePath(path).getTypeParam(pragma[only_bind_into](i))
|
||||
)
|
||||
or
|
||||
|
||||
@@ -78,7 +78,7 @@ class TypeReprMention extends TypeMention, TypeRepr {
|
||||
|
||||
class PathMention extends TypeMention, Path {
|
||||
override TypeMention getTypeArgument(int i) {
|
||||
result = this.getPart().getGenericArgList().getTypeArg(i)
|
||||
result = this.getSegment().getGenericArgList().getTypeArg(i)
|
||||
or
|
||||
// `Self` paths inside traits and `impl` blocks have implicit type arguments
|
||||
// that are the type parameters of the trait or impl. For example, in
|
||||
@@ -93,7 +93,7 @@ class PathMention extends TypeMention, Path {
|
||||
//
|
||||
// the `Self` return type is shorthand for `Foo<T>`.
|
||||
exists(ImplOrTraitItemNode node | this = node.getASelfPath() |
|
||||
result = node.(ImplItemNode).getSelfPath().getPart().getGenericArgList().getTypeArg(i)
|
||||
result = node.(ImplItemNode).getSelfPath().getSegment().getGenericArgList().getTypeArg(i)
|
||||
or
|
||||
result = node.(Trait).getGenericParamList().getTypeParam(i)
|
||||
)
|
||||
@@ -140,7 +140,7 @@ private predicate isImplSelfTypeParam(
|
||||
) {
|
||||
exists(PathMention path |
|
||||
selfPath = impl.getSelfPath() and
|
||||
path = selfPath.getPart().getGenericArgList().getTypeArg(i).(PathTypeRepr).getPath() and
|
||||
path = selfPath.getSegment().getGenericArgList().getTypeArg(i).(PathTypeRepr).getPath() and
|
||||
tp = path.resolveType()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ private class RegexInjectionDefaultBarrier extends RegexInjectionBarrier {
|
||||
.getFunction()
|
||||
.(PathExpr)
|
||||
.getPath()
|
||||
.getPart()
|
||||
.getSegment()
|
||||
.getNameRef()
|
||||
.getText() = "escape"
|
||||
}
|
||||
|
||||
@@ -771,9 +771,9 @@ path_qualifiers(
|
||||
);
|
||||
|
||||
#keyset[id]
|
||||
path_parts(
|
||||
path_segments_(
|
||||
int id: @path ref,
|
||||
int part: @path_segment ref
|
||||
int segment: @path_segment ref
|
||||
);
|
||||
|
||||
path_segments(
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
| gen_path.rs:5:9:5:18 | some_crate | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path.rs:5:9:5:31 | ...::some_module | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path.rs:5:9:5:42 | ...::some_item | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path.rs:6:5:6:7 | foo | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path.rs:6:5:6:12 | ...::bar | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path_expr.rs:5:13:5:20 | variable | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_expr.rs:6:13:6:15 | foo | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_expr.rs:6:13:6:20 | ...::bar | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path_expr.rs:7:13:7:15 | <...> | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_expr.rs:7:13:7:20 | ...::foo | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path_expr.rs:7:14:7:14 | T | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_expr.rs:8:13:8:31 | <...> | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_expr.rs:8:13:8:36 | ...::foo | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path_expr.rs:8:14:8:21 | TypeRepr | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_expr.rs:8:26:8:30 | Trait | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_pat.rs:5:11:5:11 | x | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_pat.rs:6:9:6:11 | Foo | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_pat.rs:6:9:6:16 | ...::Bar | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path_type_repr.rs:5:14:5:16 | std | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_type_repr.rs:5:14:5:29 | ...::collections | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path_type_repr.rs:5:40:5:42 | i32 | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_type_repr.rs:5:45:5:47 | i32 | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_type_repr.rs:6:14:6:14 | X | hasQualifier: | no | hasPart: | yes |
|
||||
| gen_path_type_repr.rs:6:14:6:20 | ...::Item | hasQualifier: | yes | hasPart: | yes |
|
||||
| gen_path.rs:5:9:5:18 | some_crate | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path.rs:5:9:5:31 | ...::some_module | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path.rs:5:9:5:42 | ...::some_item | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path.rs:6:5:6:7 | foo | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path.rs:6:5:6:12 | ...::bar | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path_expr.rs:5:13:5:20 | variable | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_expr.rs:6:13:6:15 | foo | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_expr.rs:6:13:6:20 | ...::bar | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path_expr.rs:7:13:7:15 | <...> | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_expr.rs:7:13:7:20 | ...::foo | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path_expr.rs:7:14:7:14 | T | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_expr.rs:8:13:8:31 | <...> | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_expr.rs:8:13:8:36 | ...::foo | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path_expr.rs:8:14:8:21 | TypeRepr | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_expr.rs:8:26:8:30 | Trait | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_pat.rs:5:11:5:11 | x | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_pat.rs:6:9:6:11 | Foo | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_pat.rs:6:9:6:16 | ...::Bar | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path_type_repr.rs:5:14:5:16 | std | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_type_repr.rs:5:14:5:29 | ...::collections | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | hasQualifier: | yes | hasSegment: | yes |
|
||||
| gen_path_type_repr.rs:5:40:5:42 | i32 | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_type_repr.rs:5:45:5:47 | i32 | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_type_repr.rs:6:14:6:14 | X | hasQualifier: | no | hasSegment: | yes |
|
||||
| gen_path_type_repr.rs:6:14:6:20 | ...::Item | hasQualifier: | yes | hasSegment: | yes |
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
import codeql.rust.elements
|
||||
import TestUtils
|
||||
|
||||
from Path x, string hasQualifier, string hasPart
|
||||
from Path x, string hasQualifier, string hasSegment
|
||||
where
|
||||
toBeTested(x) and
|
||||
not x.isUnknown() and
|
||||
(if x.hasQualifier() then hasQualifier = "yes" else hasQualifier = "no") and
|
||||
if x.hasPart() then hasPart = "yes" else hasPart = "no"
|
||||
select x, "hasQualifier:", hasQualifier, "hasPart:", hasPart
|
||||
if x.hasSegment() then hasSegment = "yes" else hasSegment = "no"
|
||||
select x, "hasQualifier:", hasQualifier, "hasSegment:", hasSegment
|
||||
|
||||
@@ -4,4 +4,4 @@ import TestUtils
|
||||
|
||||
from Path x
|
||||
where toBeTested(x) and not x.isUnknown()
|
||||
select x, x.getPart()
|
||||
select x, x.getSegment()
|
||||
@@ -87,6 +87,7 @@ class _:
|
||||
foo::bar;
|
||||
```
|
||||
"""
|
||||
segment: _ | ql.db_table_name("path_segments_") | doc("last segment of this path")
|
||||
|
||||
|
||||
@annotate(GenericArgList)
|
||||
|
||||
2
rust/schema/ast.py
generated
2
rust/schema/ast.py
generated
@@ -479,7 +479,7 @@ class ParenthesizedArgList(AstNode, ):
|
||||
|
||||
class Path(AstNode, ):
|
||||
qualifier: optional["Path"] | child
|
||||
part: optional["PathSegment"] | child
|
||||
segment: optional["PathSegment"] | child
|
||||
|
||||
class PathExpr(Expr, ):
|
||||
attrs: list["Attr"] | child
|
||||
|
||||
Reference in New Issue
Block a user