Skip to content

Commit e2ed848

Browse files
authored
Merge pull request #19130 from paldepind/rust-type-alias-string
Rust: Implement toString on type aliases and add docs
2 parents ed50343 + 533fdcf commit e2ed848

20 files changed

+105
-38
lines changed

rust/ql/.generated.list

Lines changed: 5 additions & 6 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 & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 5 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/TypeAlias.qll

Lines changed: 7 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/GenericParamListImpl.qll

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@ module Impl {
1515

1616
// the following QLdoc is generated: if you need to edit it, do it in the schema file
1717
/**
18-
* A GenericParamList. For example:
18+
* A list of generic parameters. For example:
1919
* ```rust
20-
* todo!()
20+
* fn f<A, B>(a: A, b: B) {}
21+
* // ^^^^^^
22+
* type Foo<T1, T2> = (T1, T2);
23+
* // ^^^^^^^^
2124
* ```
2225
*/
2326
class GenericParamList extends Generated::GenericParamList {

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

Lines changed: 19 additions & 4 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 `TypeAlias`.
43
*
@@ -12,11 +11,27 @@ private import codeql.rust.elements.internal.generated.TypeAlias
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
/**
16-
* A TypeAlias. For example:
16+
* A type alias. For example:
1717
* ```rust
18-
* todo!()
18+
* type Point = (u8, u8);
19+
*
20+
* trait Trait {
21+
* type Output;
22+
* // ^^^^^^^^^^^
23+
* }
1924
* ```
2025
*/
21-
class TypeAlias extends Generated::TypeAlias { }
26+
class TypeAlias extends Generated::TypeAlias {
27+
override string toStringImpl() { result = concat(int i | | this.toStringPart(i) order by i) }
28+
29+
private string toStringPart(int index) {
30+
index = 0 and result = "type "
31+
or
32+
index = 1 and result = this.getName().getText()
33+
or
34+
index = 2 and result = this.getGenericParamList().toAbbreviatedString()
35+
}
36+
}
2237
}

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

Lines changed: 5 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: 12 additions & 4 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/TypeAlias.qll

Lines changed: 7 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: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)