Rust: tweak PathType string representations and add one for InferType

This commit is contained in:
Paolo Tranquilli
2024-11-21 15:27:34 +01:00
parent c2b426df76
commit 6776b31c0d
26 changed files with 96 additions and 69 deletions

View File

@@ -104,7 +104,7 @@ lib/codeql/rust/elements/PathExpr.qll 906df1d80c662b79f1b0b0428c39754b7f8dbcb223
lib/codeql/rust/elements/PathExprBase.qll bb41092ec690ae926e3233c215dcaf1fd8e161b8a6955151949f492e02dba13a b2257072f8062d31c29c63ee1311b07e0d2eb37075f582cfc76bb542ef773198
lib/codeql/rust/elements/PathPat.qll 6897e69bcb24b56d39ede796cf5767988dcd5741e02333fa8495dd7c814f771a 2a011fb92f17e4b4ff713e6d29f591054dfede22a9aaa006e67fca2c23ab76bf
lib/codeql/rust/elements/PathSegment.qll 9560551cf8b65e84705e7f302e12b48330e048613129e87c0f65a7eb297a6cc3 3aa75a5fd81f8ea32bd2b4bf0c51c386de57cbe9ab035fe3ec68ad7fcf51b375
lib/codeql/rust/elements/PathType.qll a7bd3b05dc2c0e96c91c5485db508a1f5bb8fe3a01486be6815ae9dabb163add b11e996b6c0cc21a3d8d1ddc23c37e4d54a78e84a9278b3ceca1e94cb7321532
lib/codeql/rust/elements/PathType.qll 257ede178bb74ebdb8e266ebaa95082e7fb7cc8d921ef476f4df268ee8a1366c c48f6e04a8945a11f965e71819f68c00abc53a055042882b61716feda3ca63ae
lib/codeql/rust/elements/PrefixExpr.qll 107e7bd111b637fd6d76026062d54c2780760b965f172ef119c50dd0714a377d 46954a9404e561c51682395729daac3bda5442113f29839d043e9605d63f7f6d
lib/codeql/rust/elements/PtrType.qll b137f47a53e41b3b30c7d80dbdd6724bf15f99530ca40cc264a04af5f07aa878 b2ffdf739bfb7564d942fe54409834a59511c0b305b6d5b2219a8ee0ef594332
lib/codeql/rust/elements/RangeExpr.qll 43785bea08a6a537010db1138e68ae92eed7e481744188dfb3bad119425ff740 5e81cfbdf4617372a73d662a248a0b380c1f40988a5daefb7f00057cae10d3d4
@@ -233,7 +233,6 @@ lib/codeql/rust/elements/internal/FormatArgsExprConstructor.qll ce29ff5a839b885b
lib/codeql/rust/elements/internal/FunctionConstructor.qll b50aea579938d03745dfbd8b5fa8498f7f83b967369f63d6875510e09ab7f5d2 19cca32aeaecaf9debc27329e8c39ecec69464bb1d89d7b09908a1d73a8d92a2
lib/codeql/rust/elements/internal/GenericArgImpl.qll 6b1b804c357425c223f926e560a688e81506f5a35b95485cecf704e88cc009ee cc1ccf6a23dadc397e82664f3911d4b385d4c8ca80b1ee16d5275d9c936148dd
lib/codeql/rust/elements/internal/GenericArgListConstructor.qll 46859bb3eb09d77987a18642d65ba2e13471a4dc9c0a83a192fddc82e37c335c 2c7d54c876269a88d3461b05745e73b06532b1616cae9b614ac94b28735d8fc4
lib/codeql/rust/elements/internal/GenericArgListImpl.qll 1a39ba7080147abccaaba451852c9c124fb6177f2ebd64e38ee74014444a34e1 80df3150c961936037ac02b46ef5f775c3f82e66490afbca00a016cb9eee798a
lib/codeql/rust/elements/internal/GenericParamImpl.qll f435f80d7f275803c1311d362467f4a367deb5a2c0245b17a9e12468a2c3ce2f 8e8fcc29f510efa03ce194ad3a1e2ae3fbd7f8e04ab5a4a2d1db03e95f388446
lib/codeql/rust/elements/internal/GenericParamListConstructor.qll 7221146d1724e0add3a8e70e0e46670142589eb7143425e1871ac4358a8c8bdb 2fbb7576444d6b2da6164245e2660d592d276ae2c1ca9f2bda5656b1c5c0a73a
lib/codeql/rust/elements/internal/GenericParamListImpl.qll 524aa0949df6d4d2cb9bee6226650f63a6f181d7644933fa265673b281074885 27b0210e5eaa2040bc8a093e35e1394befb6994b25369544738d0447ef269a9c
@@ -244,7 +243,6 @@ lib/codeql/rust/elements/internal/ImplTraitTypeConstructor.qll b47501280b026a4e9
lib/codeql/rust/elements/internal/ImplTraitTypeImpl.qll 9826a676525c98c30019f62f3c5943b4f62f278ed738dcc023d15f82f36a9d32 da369a61b95685c29fce3c07082d2a58ab633d526d094fa9eaefa82f564609f6
lib/codeql/rust/elements/internal/IndexExprConstructor.qll 99bdc3d793c4dbd993860da60abe2b7c604345d645e86916462bc55a6939a5d1 3fe9d7da725956903707806aadbecac8d5b3874e8bed63c9bab54fff630e75dd
lib/codeql/rust/elements/internal/InferTypeConstructor.qll fb8f2aec6cd1e681cd84a7bd574459e19b9b2a152009290e2eac550f012a06b7 e2b1694f00a4e6a82b13d08d7bb95c98a73792370c1155263d696e60d39b2c3b
lib/codeql/rust/elements/internal/InferTypeImpl.qll 9d0bf471a7e0c2671aae52cebadc763ed13e6a62451bf22da3061d7781d8f0bf 4e9e218862e48700523d882eb64d24135289216653cf92195f74eb8a35f50d7c
lib/codeql/rust/elements/internal/ItemImpl.qll 3eaa97dcbdb8870acaebc1e11a37a5cfdfa200751461e54d3a52ca48b90ba9bd 41fbd1110b0e24f4d5a3deee0a51c02d206178111a361a1e94501ca1ab70d7f7
lib/codeql/rust/elements/internal/ItemListConstructor.qll 08af3bd12536941c3dd4a43c81cc861be24325e242e2593c087a3ce632674291 2fa166159c409d2aaffa73a30babb40829a6de580bd40894d909ee6152801082
lib/codeql/rust/elements/internal/ItemListImpl.qll fb27417bb3ee17a739ae966dd7c6f382bc2a1de3e7efdfe1586d76a257c0b573 dee7ded650df8ef46b2ac9d472718536fd76dffee86bc208b5a6144060221886
@@ -518,13 +516,13 @@ lib/codeql/rust/elements/internal/generated/PathExpr.qll 2096e3c1db22ee488a76169
lib/codeql/rust/elements/internal/generated/PathExprBase.qll d8218e201b8557fa6d9ca2c30b764e5ad9a04a2e4fb695cc7219bbd7636a6ac2 4ef178426d7095a156f4f8c459b4d16f63abc64336cb50a6cf883a5f7ee09113
lib/codeql/rust/elements/internal/generated/PathPat.qll 98c9938d6a359fd717829b196eb09701d2c798e18c1f43fa7b2a9145afdf6c19 caba2e629cae08682baac90a76ae9a48cda2d7d6f9c23d506fa0ff3f292978a4
lib/codeql/rust/elements/internal/generated/PathSegment.qll 0fa07886deb0fc4d909d7edf691238a344f2739900aafb168cbac171eb1729a8 8f4bb418d8bea5e40128a87977c57d0a9183d06d111601ad93130c8615c11465
lib/codeql/rust/elements/internal/generated/PathType.qll 45de78e5374d6eb0446e2112ec72d3692c2811df9fa2ad03d0127e426940abe3 622cf70408413a565a0dac58f451035ac1339c8d0ee5b24f630680201cb0aa48
lib/codeql/rust/elements/internal/generated/PathType.qll df6fd322ba0d99d6cb315edce8dbf099b661b84fdfcc3ad629fdd1fd066c1986 e11c8615cd7b02034b47b58f30a7b6fcbc6d33ec53303288dfd34d9a25f5a186
lib/codeql/rust/elements/internal/generated/PrefixExpr.qll c9ede5f2deb7b41bc8240969e8554f645057018fe96e7e9ad9c2924c8b14722b 5ae2e3c3dc8fa73e7026ef6534185afa6b0b5051804435d8b741dd3640c864e1
lib/codeql/rust/elements/internal/generated/PtrType.qll 40099c5a4041314b66932dfd777c9e2bef90a0711fb8d7c2c2cec764c003ac4a cf8297d93557356a572223d3e8acca701837c4b1f54e8d4351ba195fb7ed27f8
lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll ea294a3ba33fd1bc632046c4fedbcb84dcb961a8e4599969d65893b19d90e590 ea294a3ba33fd1bc632046c4fedbcb84dcb961a8e4599969d65893b19d90e590
lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9
lib/codeql/rust/elements/internal/generated/RangePat.qll efd93730de217cf50dcba5875595263a5eadf9f7e4e1272401342a094d158614 229b251b3d118932e31e78ac4dfb75f48b766f240f20d436062785606d44467b
lib/codeql/rust/elements/internal/generated/Raw.qll fd2eeb93f84b668f5083ecad8ff5f5d4bbdfcf4c65f4a40907aca47e33b031d6 de433b9feec8276ed34d106b97c7b66d81206a21a2b5343253f4cf799f1bf567
lib/codeql/rust/elements/internal/generated/Raw.qll b534b0f2318a3a15d27cfa1d2d98ad4ef778b48edf2d36b49c56cf350a0f8328 baf18167656d407fc496ed222fcc9766030b018651f8bc4e2801a1ccbbfb29d6
lib/codeql/rust/elements/internal/generated/RecordExpr.qll eb6cb662e463f9260efae1a6ce874fa781172063b916ef1963f861e9942d308d 1a21cbccc8f3799ff13281e822818ebfb21d81591720a427cac3625512cb9d40
lib/codeql/rust/elements/internal/generated/RecordExprField.qll 7e9f8663d3b74ebbc9603b10c9912f082febba6bd73d344b100bbd3edf837802 fbe6b578e7fd5d5a6f21bbb8c388957ab7210a6a249ec71510a50fb35b319ea1
lib/codeql/rust/elements/internal/generated/RecordExprFieldList.qll 179a97211fe7aa6265085d4d54115cdbc0e1cd7c9b2135591e8f36d6432f13d3 dd44bbbc1e83a1ed3a587afb729d7debf7aeb7b63245de181726af13090e50c0

2
rust/ql/.gitattributes generated vendored
View File

@@ -235,7 +235,6 @@
/lib/codeql/rust/elements/internal/FunctionConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/GenericArgImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/GenericArgListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/GenericArgListImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/GenericParamImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/GenericParamListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/GenericParamListImpl.qll linguist-generated
@@ -246,7 +245,6 @@
/lib/codeql/rust/elements/internal/ImplTraitTypeImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/IndexExprConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/InferTypeConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/InferTypeImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/ItemImpl.qll linguist-generated
/lib/codeql/rust/elements/internal/ItemListConstructor.qll linguist-generated
/lib/codeql/rust/elements/internal/ItemListImpl.qll linguist-generated

View File

@@ -8,9 +8,10 @@ import codeql.rust.elements.Path
import codeql.rust.elements.TypeRef
/**
* A PathType. For example:
* A type referring to a path. For example:
* ```rust
* todo!()
* type X = std::collections::HashMap<i32, i32>;
* type Y = X::Item;
* ```
*/
final class PathType = Impl::PathType;

View File

@@ -1,4 +1,3 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `GenericArgList`.
*
@@ -12,11 +11,16 @@ private import codeql.rust.elements.internal.generated.GenericArgList
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* The base class for generic arguments.
* ```rust
* x.foo::<u32, u64>(42);
* ```
*/
class GenericArgList extends Generated::GenericArgList { }
class GenericArgList extends Generated::GenericArgList {
override string toString() { result = this.toAbbreviatedString() }
override string toAbbreviatedString() { result = "<...>" }
}
}

View File

@@ -1,4 +1,3 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `InferType`.
*
@@ -12,11 +11,16 @@ private import codeql.rust.elements.internal.generated.InferType
* be referenced directly.
*/
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A InferType. For example:
* ```rust
* todo!()
* ```
*/
class InferType extends Generated::InferType { }
class InferType extends Generated::InferType {
override string toString() { result = this.toAbbreviatedString() }
override string toAbbreviatedString() { result = "_" }
}
}

View File

@@ -19,17 +19,16 @@ module Impl {
override string toString() { result = this.toAbbreviatedString() }
override string toAbbreviatedString() {
result = this.getAbbreviatedPrefix() + this.getAbbreviatedGenericArgList()
result = strictconcat(int i | | this.toAbbreviatedStringPart(i), "::" order by i)
}
private string getAbbreviatedGenericArgList() {
if this.hasGenericArgList() then result = "::<...>" else result = ""
}
private string getAbbreviatedPrefix() {
private string toAbbreviatedStringPart(int index) {
index = 0 and
if this.hasPathType() or this.hasTy()
then result = "<...>"
else result = this.getNameRef().getText()
or
index = 1 and result = this.getGenericArgList().toAbbreviatedString()
}
}
}

View File

@@ -13,16 +13,15 @@ private import codeql.rust.elements.internal.generated.PathType
module Impl {
// the following QLdoc is generated: if you need to edit it, do it in the schema file
/**
* A PathType. For example:
* A type referring to a path. For example:
* ```rust
* todo!()
* type X = std::collections::HashMap<i32, i32>;
* type Y = X::Item;
* ```
*/
class PathType extends Generated::PathType {
override string toString() { result = this.toAbbreviatedString() }
override string toAbbreviatedString() {
result = "<" + this.getPath().toAbbreviatedString() + ">"
}
override string toAbbreviatedString() { result = this.getPath().toAbbreviatedString() }
}
}

View File

@@ -15,9 +15,10 @@ import codeql.rust.elements.internal.TypeRefImpl::Impl as TypeRefImpl
*/
module Generated {
/**
* A PathType. For example:
* A type referring to a path. For example:
* ```rust
* todo!()
* type X = std::collections::HashMap<i32, i32>;
* type Y = X::Item;
* ```
* INTERNAL: Do not reference the `Generated::PathType` class directly.
* Use the subclass `PathType`, where the following predicates are available.

View File

@@ -2379,9 +2379,10 @@ module Raw {
/**
* INTERNAL: Do not use.
* A PathType. For example:
* A type referring to a path. For example:
* ```rust
* todo!()
* type X = std::collections::HashMap<i32, i32>;
* type Y = X::Item;
* ```
*/
class PathType extends @path_type, TypeRef {

View File

@@ -81,7 +81,7 @@ ParenType/gen_paren_type.rs ae1a945b56020eab14bb0ef75ae9ccb735d8e45d1213adee210a
Path/gen_path.rs 490268d6bfb1635883b8bdefc683d59c4dd0e9c7f86c2e55954661efb3ab0253 490268d6bfb1635883b8bdefc683d59c4dd0e9c7f86c2e55954661efb3ab0253
Path/gen_path_expr.rs a1e0ececfe62a63a43583c9bd8064a80a90c042c55bac29d86776c0c6559f33a a1e0ececfe62a63a43583c9bd8064a80a90c042c55bac29d86776c0c6559f33a
Path/gen_path_pat.rs fd7f941f8b33f19d3693be1fdb595c2fb2e85e8296702b82bf12bcd44632f371 fd7f941f8b33f19d3693be1fdb595c2fb2e85e8296702b82bf12bcd44632f371
Path/gen_path_type.rs 710a5505615769da940202e7c6d9031edc23a4b05cd9fb25241c60affbba4027 710a5505615769da940202e7c6d9031edc23a4b05cd9fb25241c60affbba4027
Path/gen_path_type.rs 210f2ce4000b59d2f908801c22c5497a0f0c9a3b1a5130e7dad0931430f49eb9 210f2ce4000b59d2f908801c22c5497a0f0c9a3b1a5130e7dad0931430f49eb9
PrefixExpr/gen_prefix_expr.rs c4b53e87f370713b9a9e257be26d082b0761497bac19b1d7401a31b22b30d1ab c4b53e87f370713b9a9e257be26d082b0761497bac19b1d7401a31b22b30d1ab
PtrType/gen_ptr_type.rs dd7faad19454b92d7942ef664df1a5f26c01863e408b87249aa4d5d4f68c78b3 dd7faad19454b92d7942ef664df1a5f26c01863e408b87249aa4d5d4f68c78b3
RangeExpr/gen_range_expr.rs 3f27cff9cc76b2703beff622d1453b84121e1970a869e45f9428deac92c4ecb0 3f27cff9cc76b2703beff622d1453b84121e1970a869e45f9428deac92c4ecb0

View File

@@ -17,7 +17,10 @@
| gen_path_pat.rs:5:11:5:11 | x | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | no | hasPart: | yes |
| gen_path_pat.rs:6:9:6:11 | Foo | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | no | hasPart: | yes |
| gen_path_pat.rs:6:9:6:16 | ...::Bar | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | yes | hasPart: | yes |
| gen_path_type.rs:5:5:5:8 | todo | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | no | hasPart: | yes |
| gen_path_type.rs:5:5:5:11 | $crate | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | no | hasPart: | yes |
| gen_path_type.rs:5:5:5:11 | ...::panic | hasResolvedPath: | yes | hasResolvedCrateOrigin: | yes | hasQualifier: | yes | hasPart: | yes |
| gen_path_type.rs:5:5:5:11 | ...::panicking | hasResolvedPath: | yes | hasResolvedCrateOrigin: | yes | hasQualifier: | yes | hasPart: | yes |
| gen_path_type.rs:5:14:5:16 | std | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | no | hasPart: | yes |
| gen_path_type.rs:5:14:5:29 | ...::collections | hasResolvedPath: | yes | hasResolvedCrateOrigin: | yes | hasQualifier: | yes | hasPart: | yes |
| gen_path_type.rs:5:14:5:48 | ...::HashMap::<...> | hasResolvedPath: | yes | hasResolvedCrateOrigin: | yes | hasQualifier: | yes | hasPart: | yes |
| gen_path_type.rs:5:40:5:42 | i32 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | no | hasPart: | yes |
| gen_path_type.rs:5:45:5:47 | i32 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | no | hasPart: | yes |
| gen_path_type.rs:6:14:6:14 | X | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | no | hasPart: | yes |
| gen_path_type.rs:6:14:6:20 | ...::Item | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasQualifier: | yes | hasPart: | yes |

View File

@@ -4,4 +4,3 @@
| gen_path_expr.rs:7:13:7:20 | ...::foo | getNumberOfAttrs: | 0 | hasPath: | yes |
| gen_path_expr.rs:8:13:8:35 | ...::foo | getNumberOfAttrs: | 0 | hasPath: | yes |
| gen_path_pat.rs:5:11:5:11 | x | getNumberOfAttrs: | 0 | hasPath: | yes |
| gen_path_type.rs:5:5:5:11 | ...::panic | getNumberOfAttrs: | 0 | hasPath: | yes |

View File

@@ -4,4 +4,3 @@
| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:13:7:20 | ...::foo |
| gen_path_expr.rs:8:13:8:35 | ...::foo | gen_path_expr.rs:8:13:8:35 | ...::foo |
| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x |
| gen_path_type.rs:5:5:5:11 | ...::panic | gen_path_type.rs:5:5:5:11 | ...::panic |

View File

@@ -17,7 +17,10 @@
| gen_path_pat.rs:5:11:5:11 | x | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_pat.rs:6:9:6:11 | Foo | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_pat.rs:6:14:6:16 | Bar | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:5:5:8 | todo | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:5:5:11 | $crate | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:5:5:11 | panic | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:5:5:11 | panicking | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:14:5:16 | std | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:19:5:29 | collections | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:32:5:48 | HashMap::<...> | hasGenericArgList: | yes | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:40:5:42 | i32 | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:5:45:5:47 | i32 | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:6:14:6:14 | X | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |
| gen_path_type.rs:6:17:6:20 | Item | hasGenericArgList: | no | hasNameRef: | yes | hasParamList: | no | hasPathType: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTy: | no |

View File

@@ -0,0 +1 @@
| gen_path_type.rs:5:32:5:48 | HashMap::<...> | gen_path_type.rs:5:39:5:48 | <...> |

View File

@@ -15,7 +15,10 @@
| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x |
| gen_path_pat.rs:6:9:6:11 | Foo | gen_path_pat.rs:6:9:6:11 | Foo |
| gen_path_pat.rs:6:14:6:16 | Bar | gen_path_pat.rs:6:14:6:16 | Bar |
| gen_path_type.rs:5:5:5:8 | todo | gen_path_type.rs:5:5:5:8 | todo |
| gen_path_type.rs:5:5:5:11 | $crate | gen_path_type.rs:5:5:5:11 | $crate |
| gen_path_type.rs:5:5:5:11 | panic | gen_path_type.rs:5:5:5:11 | panic |
| gen_path_type.rs:5:5:5:11 | panicking | gen_path_type.rs:5:5:5:11 | panicking |
| gen_path_type.rs:5:14:5:16 | std | gen_path_type.rs:5:14:5:16 | std |
| gen_path_type.rs:5:19:5:29 | collections | gen_path_type.rs:5:19:5:29 | collections |
| gen_path_type.rs:5:32:5:48 | HashMap::<...> | gen_path_type.rs:5:32:5:38 | HashMap |
| gen_path_type.rs:5:40:5:42 | i32 | gen_path_type.rs:5:40:5:42 | i32 |
| gen_path_type.rs:5:45:5:47 | i32 | gen_path_type.rs:5:45:5:47 | i32 |
| gen_path_type.rs:6:14:6:14 | X | gen_path_type.rs:6:14:6:14 | X |
| gen_path_type.rs:6:17:6:20 | Item | gen_path_type.rs:6:17:6:20 | Item |

View File

@@ -1,2 +1,2 @@
| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:14:7:14 | <T> |
| gen_path_expr.rs:8:13:8:30 | <...> | gen_path_expr.rs:8:14:8:20 | <TypeRef> |
| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:14:7:14 | T |
| gen_path_expr.rs:8:13:8:30 | <...> | gen_path_expr.rs:8:14:8:20 | TypeRef |

View File

@@ -1,2 +1,2 @@
| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:14:7:14 | <T> |
| gen_path_expr.rs:8:13:8:30 | <...> | gen_path_expr.rs:8:14:8:20 | <TypeRef> |
| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:14:7:14 | T |
| gen_path_expr.rs:8:13:8:30 | <...> | gen_path_expr.rs:8:14:8:20 | TypeRef |

View File

@@ -1,4 +1,8 @@
| gen_path_expr.rs:7:14:7:14 | <T> | hasPath: | yes |
| gen_path_expr.rs:7:14:7:14 | <T> | hasPath: | yes |
| gen_path_expr.rs:8:14:8:20 | <TypeRef> | hasPath: | yes |
| gen_path_expr.rs:8:14:8:20 | <TypeRef> | hasPath: | yes |
| gen_path_expr.rs:7:14:7:14 | T | hasPath: | yes |
| gen_path_expr.rs:7:14:7:14 | T | hasPath: | yes |
| gen_path_expr.rs:8:14:8:20 | TypeRef | hasPath: | yes |
| gen_path_expr.rs:8:14:8:20 | TypeRef | hasPath: | yes |
| gen_path_type.rs:5:14:5:48 | ...::HashMap::<...> | hasPath: | yes |
| gen_path_type.rs:5:40:5:42 | i32 | hasPath: | yes |
| gen_path_type.rs:5:45:5:47 | i32 | hasPath: | yes |
| gen_path_type.rs:6:14:6:20 | ...::Item | hasPath: | yes |

View File

@@ -1,4 +1,8 @@
| gen_path_expr.rs:7:14:7:14 | <T> | gen_path_expr.rs:7:14:7:14 | T |
| gen_path_expr.rs:7:14:7:14 | <T> | gen_path_expr.rs:7:14:7:14 | T |
| gen_path_expr.rs:8:14:8:20 | <TypeRef> | gen_path_expr.rs:8:14:8:20 | TypeRef |
| gen_path_expr.rs:8:14:8:20 | <TypeRef> | gen_path_expr.rs:8:14:8:20 | TypeRef |
| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T |
| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T |
| gen_path_expr.rs:8:14:8:20 | TypeRef | gen_path_expr.rs:8:14:8:20 | TypeRef |
| gen_path_expr.rs:8:14:8:20 | TypeRef | gen_path_expr.rs:8:14:8:20 | TypeRef |
| gen_path_type.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type.rs:5:14:5:48 | ...::HashMap::<...> |
| gen_path_type.rs:5:40:5:42 | i32 | gen_path_type.rs:5:40:5:42 | i32 |
| gen_path_type.rs:5:45:5:47 | i32 | gen_path_type.rs:5:45:5:47 | i32 |
| gen_path_type.rs:6:14:6:20 | ...::Item | gen_path_type.rs:6:14:6:20 | ...::Item |

View File

@@ -17,7 +17,10 @@
| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x |
| gen_path_pat.rs:6:9:6:11 | Foo | gen_path_pat.rs:6:9:6:11 | Foo |
| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:14:6:16 | Bar |
| gen_path_type.rs:5:5:5:8 | todo | gen_path_type.rs:5:5:5:8 | todo |
| gen_path_type.rs:5:5:5:11 | $crate | gen_path_type.rs:5:5:5:11 | $crate |
| gen_path_type.rs:5:5:5:11 | ...::panic | gen_path_type.rs:5:5:5:11 | panic |
| gen_path_type.rs:5:5:5:11 | ...::panicking | gen_path_type.rs:5:5:5:11 | panicking |
| gen_path_type.rs:5:14:5:16 | std | gen_path_type.rs:5:14:5:16 | std |
| gen_path_type.rs:5:14:5:29 | ...::collections | gen_path_type.rs:5:19:5:29 | collections |
| gen_path_type.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type.rs:5:32:5:48 | HashMap::<...> |
| gen_path_type.rs:5:40:5:42 | i32 | gen_path_type.rs:5:40:5:42 | i32 |
| gen_path_type.rs:5:45:5:47 | i32 | gen_path_type.rs:5:45:5:47 | i32 |
| gen_path_type.rs:6:14:6:14 | X | gen_path_type.rs:6:14:6:14 | X |
| gen_path_type.rs:6:14:6:20 | ...::Item | gen_path_type.rs:6:17:6:20 | Item |

View File

@@ -5,5 +5,6 @@
| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:13:7:15 | <...> |
| gen_path_expr.rs:8:13:8:35 | ...::foo | gen_path_expr.rs:8:13:8:30 | <...> |
| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:9:6:11 | Foo |
| gen_path_type.rs:5:5:5:11 | ...::panic | gen_path_type.rs:5:5:5:11 | ...::panicking |
| gen_path_type.rs:5:5:5:11 | ...::panicking | gen_path_type.rs:5:5:5:11 | $crate |
| gen_path_type.rs:5:14:5:29 | ...::collections | gen_path_type.rs:5:14:5:16 | std |
| gen_path_type.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type.rs:5:14:5:29 | ...::collections |
| gen_path_type.rs:6:14:6:20 | ...::Item | gen_path_type.rs:6:14:6:14 | X |

View File

@@ -1,2 +1,2 @@
| gen_path_type.rs:5:5:5:11 | ...::panic | lang:core |
| gen_path_type.rs:5:5:5:11 | ...::panicking | lang:core |
| gen_path_type.rs:5:14:5:29 | ...::collections | lang:std |
| gen_path_type.rs:5:14:5:48 | ...::HashMap::<...> | lang:std |

View File

@@ -1,2 +1,2 @@
| gen_path_type.rs:5:5:5:11 | ...::panic | crate::panicking::panic |
| gen_path_type.rs:5:5:5:11 | ...::panicking | crate::panicking |
| gen_path_type.rs:5:14:5:29 | ...::collections | crate::collections |
| gen_path_type.rs:5:14:5:48 | ...::HashMap::<...> | crate::collections::hash::map::HashMap |

View File

@@ -1,6 +1,7 @@
// generated by codegen, do not edit
fn test_path_type() -> () {
// A PathType. For example:
todo!()
// A type referring to a path. For example:
type X = std::collections::HashMap<i32, i32>;
type Y = X::Item;
}

View File

@@ -1380,9 +1380,10 @@ class _:
@qltest.test_with(Path)
class _:
"""
A PathType. For example:
A type referring to a path. For example:
```rust
todo!()
type X = std::collections::HashMap<i32, i32>;
type Y = X::Item;
```
"""