Assignments evaluate right-hand-side first

This commit is contained in:
Arthur Baars
2020-11-26 16:40:14 +01:00
parent 465c266b8a
commit 97fab0d18b
2 changed files with 8 additions and 8 deletions

View File

@@ -240,9 +240,9 @@ private module Trees {
private class AssignmentTree extends StandardPostOrderTree, Assignment {
final override AstNode getChildNode(int i) {
result = this.getLeft() and i = 0
result = this.getRight() and i = 0
or
result = this.getRight() and i = 1
result = this.getLeft() and i = 1
}
}

View File

@@ -249,22 +249,22 @@ edges
| ifs.rb:18:1:26:3 | exit m3 (normal) | ifs.rb:18:1:26:3 | exit m3 | semmle.label | successor |
| ifs.rb:19:3:24:5 | If | ifs.rb:19:6:19:6 | x | semmle.label | successor |
| ifs.rb:19:6:19:6 | x | ifs.rb:19:10:19:10 | 0 | semmle.label | successor |
| ifs.rb:19:6:19:10 | Binary | ifs.rb:20:5:20:5 | x | semmle.label | true |
| ifs.rb:19:6:19:10 | Binary | ifs.rb:20:10:20:10 | x | semmle.label | true |
| ifs.rb:19:6:19:10 | Binary | ifs.rb:25:8:25:8 | x | semmle.label | false |
| ifs.rb:19:10:19:10 | 0 | ifs.rb:19:6:19:10 | Binary | semmle.label | successor |
| ifs.rb:20:5:20:5 | x | ifs.rb:20:10:20:10 | x | semmle.label | successor |
| ifs.rb:20:5:20:5 | x | ifs.rb:20:5:20:10 | Assignment | semmle.label | successor |
| ifs.rb:20:5:20:10 | Assignment | ifs.rb:21:5:23:7 | If | semmle.label | successor |
| ifs.rb:20:9:20:10 | Unary | ifs.rb:20:5:20:10 | Assignment | semmle.label | successor |
| ifs.rb:20:9:20:10 | Unary | ifs.rb:20:5:20:5 | x | semmle.label | successor |
| ifs.rb:20:10:20:10 | x | ifs.rb:20:9:20:10 | Unary | semmle.label | successor |
| ifs.rb:21:5:23:7 | If | ifs.rb:21:8:21:8 | x | semmle.label | successor |
| ifs.rb:21:8:21:8 | x | ifs.rb:21:12:21:13 | 10 | semmle.label | successor |
| ifs.rb:21:8:21:13 | Binary | ifs.rb:22:7:22:7 | x | semmle.label | true |
| ifs.rb:21:8:21:13 | Binary | ifs.rb:22:11:22:11 | x | semmle.label | true |
| ifs.rb:21:8:21:13 | Binary | ifs.rb:25:8:25:8 | x | semmle.label | false |
| ifs.rb:21:12:21:13 | 10 | ifs.rb:21:8:21:13 | Binary | semmle.label | successor |
| ifs.rb:22:7:22:7 | x | ifs.rb:22:11:22:11 | x | semmle.label | successor |
| ifs.rb:22:7:22:7 | x | ifs.rb:22:7:22:15 | Assignment | semmle.label | successor |
| ifs.rb:22:7:22:15 | Assignment | ifs.rb:25:8:25:8 | x | semmle.label | successor |
| ifs.rb:22:11:22:11 | x | ifs.rb:22:15:22:15 | 1 | semmle.label | successor |
| ifs.rb:22:11:22:15 | Binary | ifs.rb:22:7:22:15 | Assignment | semmle.label | successor |
| ifs.rb:22:11:22:15 | Binary | ifs.rb:22:7:22:7 | x | semmle.label | successor |
| ifs.rb:22:15:22:15 | 1 | ifs.rb:22:11:22:15 | Binary | semmle.label | successor |
| ifs.rb:25:3:25:6 | puts | ifs.rb:25:3:25:8 | MethodCall | semmle.label | successor |
| ifs.rb:25:3:25:8 | MethodCall | ifs.rb:18:1:26:3 | exit m3 (normal) | semmle.label | successor |