Skip to content

Commit

Permalink
Rust: add back getAttr to ArrayExpr
Browse files Browse the repository at this point in the history
  • Loading branch information
Paolo Tranquilli committed Dec 3, 2024
1 parent c113503 commit 277c9f4
Show file tree
Hide file tree
Showing 19 changed files with 92 additions and 34 deletions.
2 changes: 1 addition & 1 deletion rust/ast-generator/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ fn get_fields(node: &AstNodeSrc) -> Vec<FieldInfo> {
result.push(FieldInfo {
name: "is_semicolon".to_string(),
tp: "predicate".to_string(),
is_many: true,
is_many: false,
});
}
_ => {}
Expand Down
15 changes: 8 additions & 7 deletions rust/ql/.generated.list

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion rust/ql/.gitattributes

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions rust/ql/lib/codeql/rust/elements/ArrayExpr.qll

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 17 additions & 2 deletions rust/ql/lib/codeql/rust/elements/internal/ArrayExprImpl.qll
Original file line number Diff line number Diff line change
@@ -1,23 +1,38 @@
// generated by codegen, remove this comment if you wish to edit this file
/**
* This module provides a hand-modifiable wrapper around the generated class `ArrayExpr`.
*
* INTERNAL: Do not use.
*/

private import codeql.rust.elements.internal.generated.ArrayExpr
private import codeql.rust.elements.internal.generated.Raw
private import codeql.rust.elements.internal.generated.Synth

/**
* INTERNAL: This module contains the customizable definition of `ArrayExpr` and should not
* 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 array expressions. For example:
* ```rust
* [1, 2, 3];
* [1; 10];
* ```
*/
class ArrayExpr extends Generated::ArrayExpr { }
class ArrayExpr extends Generated::ArrayExpr {
cached
private Raw::ArrayExprInternal getUnderlyingEntity() {
this = Synth::TArrayListExpr(result) or this = Synth::TArrayRepeatExpr(result)
}

override Expr getExpr(int index) {
result = Synth::convertExprFromRaw(this.getUnderlyingEntity().getExpr(index))
}

override Attr getAttr(int index) {
result = Synth::convertAttrFromRaw(this.getUnderlyingEntity().getAttr(index))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,6 @@ module Impl {
* ```
*/
class ArrayListExpr extends Generated::ArrayListExpr {
cached
private Raw::ArrayExprInternal getUnderlyingEntity() { this = Synth::TArrayListExpr(result) }

override string toString() { result = "[...]" }

override Expr getExpr(int index) {
result = Synth::convertExprFromRaw(this.getUnderlyingEntity().getExpr(index))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,6 @@ module Impl {
* ```
*/
class ArrayRepeatExpr extends Generated::ArrayRepeatExpr {
cached
private Raw::ArrayExprInternal getUnderlyingEntity() { this = Synth::TArrayRepeatExpr(result) }

override string toString() {
result =
"[" + this.getRepeatOperand().toAbbreviatedString() + "; " +
Expand All @@ -33,9 +30,5 @@ module Impl {
override Expr getRepeatOperand() { result = this.getExpr(0) }

override Expr getRepeatLength() { result = this.getExpr(1) }

override Expr getExpr(int index) {
result = Synth::convertExprFromRaw(this.getUnderlyingEntity().getExpr(index))
}
}
}
16 changes: 16 additions & 0 deletions rust/ql/lib/codeql/rust/elements/internal/generated/ArrayExpr.qll

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
| gen_array_list_expr.rs:5:5:5:13 | [...] | getNumberOfExprs: | 3 |
| gen_array_list_expr.rs:5:5:5:13 | [...] | getNumberOfExprs: | 3 | getNumberOfAttrs: | 0 |

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1 +1 @@
| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | getNumberOfExprs: | 2 | getRepeatOperand: | gen_array_repeat_expr.rs:5:6:5:6 | 1 | getRepeatLength: | gen_array_repeat_expr.rs:5:9:5:10 | 10 |
| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | getNumberOfExprs: | 2 | getNumberOfAttrs: | 0 | getRepeatOperand: | gen_array_repeat_expr.rs:5:6:5:6 | 1 | getRepeatLength: | gen_array_repeat_expr.rs:5:9:5:10 | 10 |

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions rust/schema/annotations.py
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,7 @@ class ArrayExpr(Expr):
```
"""
exprs: list[Expr] | child
attrs: list[Attr] | child

@synth.from_class(ArrayExprInternal)
class ArrayListExpr(ArrayExpr):
Expand Down

0 comments on commit 277c9f4

Please sign in to comment.