PS: Add an example with a missing toString.

This commit is contained in:
Mathias Vorreiter Pedersen
2025-04-17 16:53:26 +01:00
parent b09d9f6772
commit 7d7268349d
3 changed files with 14 additions and 8 deletions

View File

@@ -0,0 +1,2 @@
param($x)
[DateTime]::$x

View File

@@ -5,6 +5,7 @@ cmdExpr
| BinaryExpression.ps1:4:1:4:7 | [Stmt] result | BinaryExpression.ps1:4:1:4:7 | result |
| ExpandableString.ps1:1:1:1:39 | [Stmt] Date: $([DateTime]::Now)\nName: $name | ExpandableString.ps1:1:1:1:39 | Date: $([DateTime]::Now)\nName: $name |
| ExpandableString.ps1:1:23:1:37 | [Stmt] Now | ExpandableString.ps1:1:23:1:37 | Now |
| MemberExpression.ps1:2:1:2:14 | (no string representation) | MemberExpression.ps1:2:1:2:14 | (no string representation) |
| SubExpression.ps1:1:1:1:23 | [Stmt] Call to AddDays | SubExpression.ps1:1:1:1:23 | Call to AddDays |
| SubExpression.ps1:1:3:1:10 | [Stmt] Call to Get-Date | SubExpression.ps1:1:3:1:10 | Call to Get-Date |
| SubExpression.ps1:2:1:2:21 | [Stmt] Call to AddDays | SubExpression.ps1:2:1:2:21 | Call to AddDays |
@@ -13,3 +14,6 @@ invokeMemoryExpression
| SubExpression.ps1:1:1:1:23 | Call to AddDays | SubExpression.ps1:1:1:1:11 | $(...) | 0 | SubExpression.ps1:1:21:1:22 | 10 |
expandableString
| ExpandableString.ps1:1:1:1:39 | Date: $([DateTime]::Now)\nName: $name | 1 | ExpandableString.ps1:1:21:1:38 | $(...) |
memberExpr
| ExpandableString.ps1:1:23:1:37 | Now | ExpandableString.ps1:1:23:1:32 | DateTime |
| MemberExpression.ps1:2:1:2:14 | (no string representation) | MemberExpression.ps1:2:1:2:10 | DateTime |

View File

@@ -1,19 +1,19 @@
import powershell
query predicate binaryExpr(BinaryExpr e, Expr e1, Expr e2) {
e1 = e.getLeft() and
e2 = e.getRight()
e1 = e.getLeft() and
e2 = e.getRight()
}
query predicate cmdExpr(ExprStmt exprStmt, Expr e) {
e = exprStmt.getExpr()
}
query predicate cmdExpr(ExprStmt exprStmt, Expr e) { e = exprStmt.getExpr() }
query predicate invokeMemoryExpression(InvokeMemberExpr invoke, Expr e, int i, Expr arg) {
e = invoke.getQualifier() and
arg = invoke.getArgument(i)
e = invoke.getQualifier() and
arg = invoke.getArgument(i)
}
query predicate expandableString(ExpandableStringExpr expandable, int i, Expr e) {
e = expandable.getExpr(i)
e = expandable.getExpr(i)
}
query predicate memberExpr(MemberExpr expr, Expr e) { e = expr.getQualifier() }