Skip to content

Commit 6776b31

Browse files
author
Paolo Tranquilli
committed
Rust: tweak PathType string representations and add one for InferType
1 parent c2b426d commit 6776b31

26 files changed

+96
-69
lines changed

rust/ql/.generated.list

Lines changed: 3 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/ql/.gitattributes

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/ql/lib/codeql/rust/elements/PathType.qll

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/ql/lib/codeql/rust/elements/internal/GenericArgListImpl.qll

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// generated by codegen, remove this comment if you wish to edit this file
21
/**
32
* This module provides a hand-modifiable wrapper around the generated class `GenericArgList`.
43
*
@@ -12,11 +11,16 @@ private import codeql.rust.elements.internal.generated.GenericArgList
1211
* be referenced directly.
1312
*/
1413
module Impl {
14+
// the following QLdoc is generated: if you need to edit it, do it in the schema file
1515
/**
1616
* The base class for generic arguments.
1717
* ```rust
1818
* x.foo::<u32, u64>(42);
1919
* ```
2020
*/
21-
class GenericArgList extends Generated::GenericArgList { }
21+
class GenericArgList extends Generated::GenericArgList {
22+
override string toString() { result = this.toAbbreviatedString() }
23+
24+
override string toAbbreviatedString() { result = "<...>" }
25+
}
2226
}

rust/ql/lib/codeql/rust/elements/internal/InferTypeImpl.qll

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// generated by codegen, remove this comment if you wish to edit this file
21
/**
32
* This module provides a hand-modifiable wrapper around the generated class `InferType`.
43
*
@@ -12,11 +11,16 @@ private import codeql.rust.elements.internal.generated.InferType
1211
* be referenced directly.
1312
*/
1413
module Impl {
14+
// the following QLdoc is generated: if you need to edit it, do it in the schema file
1515
/**
1616
* A InferType. For example:
1717
* ```rust
1818
* todo!()
1919
* ```
2020
*/
21-
class InferType extends Generated::InferType { }
21+
class InferType extends Generated::InferType {
22+
override string toString() { result = this.toAbbreviatedString() }
23+
24+
override string toAbbreviatedString() { result = "_" }
25+
}
2226
}

rust/ql/lib/codeql/rust/elements/internal/PathSegmentImpl.qll

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,16 @@ module Impl {
1919
override string toString() { result = this.toAbbreviatedString() }
2020

2121
override string toAbbreviatedString() {
22-
result = this.getAbbreviatedPrefix() + this.getAbbreviatedGenericArgList()
22+
result = strictconcat(int i | | this.toAbbreviatedStringPart(i), "::" order by i)
2323
}
2424

25-
private string getAbbreviatedGenericArgList() {
26-
if this.hasGenericArgList() then result = "::<...>" else result = ""
27-
}
28-
29-
private string getAbbreviatedPrefix() {
25+
private string toAbbreviatedStringPart(int index) {
26+
index = 0 and
3027
if this.hasPathType() or this.hasTy()
3128
then result = "<...>"
3229
else result = this.getNameRef().getText()
30+
or
31+
index = 1 and result = this.getGenericArgList().toAbbreviatedString()
3332
}
3433
}
3534
}

rust/ql/lib/codeql/rust/elements/internal/PathTypeImpl.qll

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,15 @@ private import codeql.rust.elements.internal.generated.PathType
1313
module Impl {
1414
// the following QLdoc is generated: if you need to edit it, do it in the schema file
1515
/**
16-
* A PathType. For example:
16+
* A type referring to a path. For example:
1717
* ```rust
18-
* todo!()
18+
* type X = std::collections::HashMap<i32, i32>;
19+
* type Y = X::Item;
1920
* ```
2021
*/
2122
class PathType extends Generated::PathType {
2223
override string toString() { result = this.toAbbreviatedString() }
2324

24-
override string toAbbreviatedString() {
25-
result = "<" + this.getPath().toAbbreviatedString() + ">"
26-
}
25+
override string toAbbreviatedString() { result = this.getPath().toAbbreviatedString() }
2726
}
2827
}

rust/ql/lib/codeql/rust/elements/internal/generated/PathType.qll

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/ql/test/extractor-tests/generated/.generated_tests.list

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)