mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
Ruby: change evaluation order of destructured assignments
This commit is contained in:
@@ -4,7 +4,9 @@ private import AST
|
||||
private import TreeSitter
|
||||
|
||||
class StmtSequenceSynth extends StmtSequence, TStmtSequenceSynth {
|
||||
final override Stmt getStmt(int n) { synthChild(this, n, result) }
|
||||
final override Stmt getStmt(int n) {
|
||||
result = rank[n + 1](int i, Stmt s | synthChild(this, i, s) | s order by i)
|
||||
}
|
||||
|
||||
final override string toString() { result = "..." }
|
||||
}
|
||||
|
||||
@@ -958,14 +958,32 @@ private module DestructuredAssignDesugar {
|
||||
child = SynthChild(StmtSequenceKind())
|
||||
or
|
||||
exists(AstNode seq | seq = TStmtSequenceSynth(tae, -1) |
|
||||
exists(MethodCall mc, int j | mc = tae.getElement(j) |
|
||||
parent = seq and
|
||||
i = j and
|
||||
child = SynthChild(AssignExprKind())
|
||||
or
|
||||
exists(AstNode assign | assign = TAssignExprSynth(seq, j) |
|
||||
parent = assign and
|
||||
i = 0 and
|
||||
child = SynthChild(LocalVariableAccessSynthKind(TLocalVariableSynth(tae, j)))
|
||||
or
|
||||
parent = assign and
|
||||
i = 1 and
|
||||
child = childRef(mc.getReceiver())
|
||||
)
|
||||
)
|
||||
or
|
||||
parent = seq and
|
||||
i = 0 and
|
||||
i = tae.getNumberOfElements() and
|
||||
child = SynthChild(AssignExprKind())
|
||||
or
|
||||
exists(AstNode assign | assign = TAssignExprSynth(seq, 0) |
|
||||
exists(AstNode assign | assign = TAssignExprSynth(seq, tae.getNumberOfElements()) |
|
||||
parent = assign and
|
||||
i = 0 and
|
||||
child = SynthChild(LocalVariableAccessSynthKind(TLocalVariableSynth(tae, 0)))
|
||||
child =
|
||||
SynthChild(LocalVariableAccessSynthKind(TLocalVariableSynth(tae,
|
||||
tae.getNumberOfElements())))
|
||||
or
|
||||
parent = assign and
|
||||
i = 1 and
|
||||
@@ -981,10 +999,33 @@ private module DestructuredAssignDesugar {
|
||||
restIndex = tae.getRestIndexOrNumberOfElements()
|
||||
|
|
||||
parent = seq and
|
||||
i = j + 1 and
|
||||
i = j + 1 + tae.getNumberOfElements() and
|
||||
child = SynthChild(AssignExprKind())
|
||||
or
|
||||
exists(AstNode assign | assign = TAssignExprSynth(seq, j + 1) |
|
||||
exists(AstNode assign |
|
||||
assign = TAssignExprSynth(seq, j + 1 + tae.getNumberOfElements())
|
||||
|
|
||||
exists(MethodCall mc | mc = elem |
|
||||
parent = assign and
|
||||
i = 0 and
|
||||
child =
|
||||
SynthChild(MethodCallKind(mc.getMethodName(), false, mc.getNumberOfArguments()))
|
||||
or
|
||||
exists(AstNode call | call = TMethodCallSynth(assign, 0, _, _, _) |
|
||||
parent = call and
|
||||
i = 0 and
|
||||
child = SynthChild(LocalVariableAccessSynthKind(TLocalVariableSynth(tae, j)))
|
||||
or
|
||||
parent = call and
|
||||
child = childRef(mc.getArgument(i - 1))
|
||||
)
|
||||
)
|
||||
or
|
||||
(
|
||||
elem instanceof VariableAccess or
|
||||
elem instanceof ConstantAccess or
|
||||
elem instanceof DestructuredLhsExpr
|
||||
) and
|
||||
parent = assign and
|
||||
i = 0 and
|
||||
child = childRef(elem)
|
||||
@@ -995,7 +1036,9 @@ private module DestructuredAssignDesugar {
|
||||
or
|
||||
parent = TMethodCallSynth(assign, 1, _, _, _) and
|
||||
i = 0 and
|
||||
child = SynthChild(LocalVariableAccessSynthKind(TLocalVariableSynth(tae, 0)))
|
||||
child =
|
||||
SynthChild(LocalVariableAccessSynthKind(TLocalVariableSynth(tae,
|
||||
tae.getNumberOfElements())))
|
||||
or
|
||||
j < restIndex and
|
||||
parent = TMethodCallSynth(assign, 1, _, _, _) and
|
||||
@@ -1050,26 +1093,41 @@ private module DestructuredAssignDesugar {
|
||||
|
||||
final override predicate location(AstNode n, Location l) {
|
||||
exists(DestructuredAssignExpr tae, StmtSequence seq | seq = tae.getDesugared() |
|
||||
n = seq.getStmt(0) and
|
||||
synthChild(seq, tae.getNumberOfElements(), n) and
|
||||
hasLocation(tae.getRightOperand(), l)
|
||||
or
|
||||
exists(AstNode elem, int j |
|
||||
exists(MethodCall elem, int j |
|
||||
elem = tae.getElement(j) and
|
||||
n = seq.getStmt(j + 1) and
|
||||
synthChild(seq, j, n) and
|
||||
hasLocation(elem.getReceiver(), l)
|
||||
)
|
||||
or
|
||||
exists(AstNode elem, int j | elem = tae.getElement(j) |
|
||||
synthChild(seq, j + 1 + tae.getNumberOfElements(), n) and
|
||||
hasLocation(elem, l)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
final override predicate localVariable(AstNode n, int i) {
|
||||
n instanceof DestructuredAssignExpr and
|
||||
i = 0
|
||||
i = [0 .. n.(DestructuredAssignExpr).getNumberOfElements()]
|
||||
}
|
||||
|
||||
final override predicate methodCall(string name, boolean setter, int arity) {
|
||||
name = "[]" and
|
||||
setter = false and
|
||||
arity = 1
|
||||
or
|
||||
exists(DestructuredAssignExpr tae, MethodCall mc |
|
||||
mc = tae.getElement(_) and
|
||||
name = mc.getMethodName() and
|
||||
setter = false and
|
||||
arity = mc.getNumberOfArguments()
|
||||
)
|
||||
}
|
||||
|
||||
final override predicate excludeFromControlFlowTree(AstNode n) {
|
||||
n = any(DestructuredAssignExpr tae).getElement(_).(MethodCall)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,44 +81,53 @@ calls/calls.rb:
|
||||
# 318| [AssignExpr] ... = ...
|
||||
# 318| getDesugared: [StmtSequence] ...
|
||||
# 318| getStmt: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getLeftOperand: [MethodCall] call to foo
|
||||
# 318| getAnOperand/getRightOperand: [SelfVariableAccess] self
|
||||
# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0
|
||||
# 318| getStmt: [AssignExpr] ... = ...
|
||||
# 318| getDesugared: [StmtSequence] ...
|
||||
# 318| getStmt: [SetterMethodCall] call to foo=
|
||||
# 318| getReceiver: [SelfVariableAccess] self
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__0
|
||||
# 318| getArgument: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1
|
||||
# 318| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__0
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__3
|
||||
# 318| getArgument: [IntegerLiteral] 0
|
||||
# 318| getStmt: [LocalVariableAccess] __synth__0__1
|
||||
# 318| getAnOperand/getLeftOperand: [MethodCall] call to foo
|
||||
# 318| getStmt: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getRightOperand: [SelfVariableAccess] self
|
||||
# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__1
|
||||
# 318| getStmt: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getLeftOperand: [MethodCall] call to bar
|
||||
# 318| getDesugared: [StmtSequence] ...
|
||||
# 318| getStmt: [SetterMethodCall] call to bar=
|
||||
# 318| getReceiver: [SelfVariableAccess] self
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__1
|
||||
# 318| getArgument: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1
|
||||
# 318| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__0
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__3
|
||||
# 318| getArgument: [RangeLiteral] _ .. _
|
||||
# 318| getBegin: [IntegerLiteral] 1
|
||||
# 318| getEnd: [IntegerLiteral] -2
|
||||
# 318| getStmt: [LocalVariableAccess] __synth__0__1
|
||||
# 318| getAnOperand/getLeftOperand: [MethodCall] call to bar
|
||||
# 318| getStmt: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getRightOperand: [MethodCall] call to foo
|
||||
# 318| getReceiver: [SelfVariableAccess] self
|
||||
# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__2
|
||||
# 318| getStmt: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getLeftOperand: [ElementReference] ...[...]
|
||||
# 318| getDesugared: [StmtSequence] ...
|
||||
# 318| getStmt: [SetterMethodCall] call to []=
|
||||
# 318| getReceiver: [MethodCall] call to foo
|
||||
# 318| getReceiver: [SelfVariableAccess] self
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__2
|
||||
# 318| getArgument: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1
|
||||
# 318| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__0
|
||||
# 318| getReceiver: [LocalVariableAccess] __synth__3
|
||||
# 318| getArgument: [IntegerLiteral] -1
|
||||
# 318| getArgument: [IntegerLiteral] 4
|
||||
# 318| getStmt: [LocalVariableAccess] __synth__0__1
|
||||
# 318| getAnOperand/getLeftOperand: [MethodCall] call to []
|
||||
# 318| getStmt: [AssignExpr] ... = ...
|
||||
# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0
|
||||
# 318| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__3
|
||||
# 318| getAnOperand/getRightOperand: [SplatExpr] * ...
|
||||
# 318| getAnOperand/getOperand/getReceiver: [ArrayLiteral] [...]
|
||||
# 318| getDesugared: [MethodCall] call to []
|
||||
@@ -132,25 +141,28 @@ calls/calls.rb:
|
||||
# 319| getStmt: [AssignExpr] ... = ...
|
||||
# 319| getAnOperand/getLeftOperand: [LocalVariableAccess] a
|
||||
# 319| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 319| getReceiver: [LocalVariableAccess] __synth__0
|
||||
# 319| getReceiver: [LocalVariableAccess] __synth__2
|
||||
# 319| getArgument: [IntegerLiteral] 0
|
||||
# 319| getStmt: [AssignExpr] ... = ...
|
||||
# 319| getAnOperand/getLeftOperand: [ElementReference] ...[...]
|
||||
# 319| getAnOperand/getRightOperand: [MethodCall] call to foo
|
||||
# 319| getReceiver: [SelfVariableAccess] self
|
||||
# 319| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__1
|
||||
# 319| getStmt: [AssignExpr] ... = ...
|
||||
# 319| getDesugared: [StmtSequence] ...
|
||||
# 319| getStmt: [SetterMethodCall] call to []=
|
||||
# 319| getReceiver: [MethodCall] call to foo
|
||||
# 319| getReceiver: [SelfVariableAccess] self
|
||||
# 319| getReceiver: [LocalVariableAccess] __synth__1
|
||||
# 319| getArgument: [AssignExpr] ... = ...
|
||||
# 319| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1
|
||||
# 319| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 319| getReceiver: [LocalVariableAccess] __synth__0
|
||||
# 319| getReceiver: [LocalVariableAccess] __synth__2
|
||||
# 319| getArgument: [RangeLiteral] _ .. _
|
||||
# 319| getBegin: [IntegerLiteral] 1
|
||||
# 319| getEnd: [IntegerLiteral] -1
|
||||
# 319| getArgument: [IntegerLiteral] 5
|
||||
# 319| getStmt: [LocalVariableAccess] __synth__0__1
|
||||
# 319| getAnOperand/getLeftOperand: [MethodCall] call to []
|
||||
# 319| getStmt: [AssignExpr] ... = ...
|
||||
# 319| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0
|
||||
# 319| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__2
|
||||
# 319| getAnOperand/getRightOperand: [SplatExpr] * ...
|
||||
# 319| getAnOperand/getOperand/getReceiver: [ArrayLiteral] [...]
|
||||
# 319| getDesugared: [MethodCall] call to []
|
||||
@@ -240,23 +252,23 @@ calls/calls.rb:
|
||||
# 342| getStmt: [AssignExpr] ... = ...
|
||||
# 342| getDesugared: [StmtSequence] ...
|
||||
# 342| getStmt: [AssignExpr] ... = ...
|
||||
# 342| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1
|
||||
# 342| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__3__1
|
||||
# 342| getAnOperand/getRightOperand: [SplatExpr] * ...
|
||||
# 342| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 342| getStmt: [AssignExpr] ... = ...
|
||||
# 342| getAnOperand/getLeftOperand: [LocalVariableAccess] x
|
||||
# 342| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 342| getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 342| getReceiver: [LocalVariableAccess] __synth__3__1
|
||||
# 342| getArgument: [IntegerLiteral] 0
|
||||
# 342| getStmt: [AssignExpr] ... = ...
|
||||
# 342| getAnOperand/getLeftOperand: [LocalVariableAccess] y
|
||||
# 342| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 342| getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 342| getReceiver: [LocalVariableAccess] __synth__3__1
|
||||
# 342| getArgument: [IntegerLiteral] 1
|
||||
# 342| getStmt: [AssignExpr] ... = ...
|
||||
# 342| getAnOperand/getLeftOperand: [LocalVariableAccess] z
|
||||
# 342| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 342| getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 342| getReceiver: [LocalVariableAccess] __synth__3__1
|
||||
# 342| getArgument: [IntegerLiteral] 2
|
||||
# 342| getAnOperand/getLeftOperand: [DestructuredLhsExpr] (..., ...)
|
||||
# 343| getStmt: [MethodCall] call to foo
|
||||
@@ -632,18 +644,18 @@ control/loops.rb:
|
||||
# 22| getStmt: [AssignExpr] ... = ...
|
||||
# 22| getDesugared: [StmtSequence] ...
|
||||
# 22| getStmt: [AssignExpr] ... = ...
|
||||
# 22| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1
|
||||
# 22| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__2__1
|
||||
# 22| getAnOperand/getRightOperand: [SplatExpr] * ...
|
||||
# 22| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 22| getStmt: [AssignExpr] ... = ...
|
||||
# 22| getAnOperand/getLeftOperand: [LocalVariableAccess] key
|
||||
# 22| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 22| getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 22| getReceiver: [LocalVariableAccess] __synth__2__1
|
||||
# 22| getArgument: [IntegerLiteral] 0
|
||||
# 22| getStmt: [AssignExpr] ... = ...
|
||||
# 22| getAnOperand/getLeftOperand: [LocalVariableAccess] value
|
||||
# 22| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 22| getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 22| getReceiver: [LocalVariableAccess] __synth__2__1
|
||||
# 22| getArgument: [IntegerLiteral] 1
|
||||
# 22| getAnOperand/getLeftOperand: [DestructuredLhsExpr] (..., ...)
|
||||
# 23| getStmt: [AssignAddExpr] ... += ...
|
||||
@@ -677,18 +689,18 @@ control/loops.rb:
|
||||
# 28| getStmt: [AssignExpr] ... = ...
|
||||
# 28| getDesugared: [StmtSequence] ...
|
||||
# 28| getStmt: [AssignExpr] ... = ...
|
||||
# 28| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__0__1
|
||||
# 28| getAnOperand/getLeftOperand: [LocalVariableAccess] __synth__2__1
|
||||
# 28| getAnOperand/getRightOperand: [SplatExpr] * ...
|
||||
# 28| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 28| getStmt: [AssignExpr] ... = ...
|
||||
# 28| getAnOperand/getLeftOperand: [LocalVariableAccess] key
|
||||
# 28| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 28| getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 28| getReceiver: [LocalVariableAccess] __synth__2__1
|
||||
# 28| getArgument: [IntegerLiteral] 0
|
||||
# 28| getStmt: [AssignExpr] ... = ...
|
||||
# 28| getAnOperand/getLeftOperand: [LocalVariableAccess] value
|
||||
# 28| getAnOperand/getRightOperand: [MethodCall] call to []
|
||||
# 28| getReceiver: [LocalVariableAccess] __synth__0__1
|
||||
# 28| getReceiver: [LocalVariableAccess] __synth__2__1
|
||||
# 28| getArgument: [IntegerLiteral] 1
|
||||
# 28| getAnOperand/getLeftOperand: [DestructuredLhsExpr] (..., ...)
|
||||
# 29| getStmt: [AssignAddExpr] ... += ...
|
||||
|
||||
@@ -61,6 +61,7 @@ callsWithArguments
|
||||
| calls.rb:318:12:318:19 | call to bar= | bar= | 0 | calls.rb:318:12:318:19 | ... = ... |
|
||||
| calls.rb:318:22:318:27 | ...[...] | [] | 0 | calls.rb:318:26:318:26 | 4 |
|
||||
| calls.rb:318:22:318:27 | call to [] | [] | 0 | calls.rb:318:22:318:27 | -1 |
|
||||
| calls.rb:318:22:318:27 | call to [] | [] | 0 | calls.rb:318:26:318:26 | 4 |
|
||||
| calls.rb:318:22:318:27 | call to []= | []= | 0 | calls.rb:318:26:318:26 | 4 |
|
||||
| calls.rb:318:22:318:27 | call to []= | []= | 1 | calls.rb:318:22:318:27 | ... = ... |
|
||||
| calls.rb:318:31:318:42 | call to [] | [] | 0 | calls.rb:318:32:318:32 | 1 |
|
||||
@@ -70,6 +71,7 @@ callsWithArguments
|
||||
| calls.rb:319:1:319:1 | call to [] | [] | 0 | calls.rb:319:1:319:1 | 0 |
|
||||
| calls.rb:319:5:319:10 | ...[...] | [] | 0 | calls.rb:319:9:319:9 | 5 |
|
||||
| calls.rb:319:5:319:10 | call to [] | [] | 0 | calls.rb:319:5:319:10 | _ .. _ |
|
||||
| calls.rb:319:5:319:10 | call to [] | [] | 0 | calls.rb:319:9:319:9 | 5 |
|
||||
| calls.rb:319:5:319:10 | call to []= | []= | 0 | calls.rb:319:9:319:9 | 5 |
|
||||
| calls.rb:319:5:319:10 | call to []= | []= | 1 | calls.rb:319:5:319:10 | ... = ... |
|
||||
| calls.rb:319:14:319:22 | call to [] | [] | 0 | calls.rb:319:15:319:15 | 1 |
|
||||
@@ -321,23 +323,27 @@ callsWithReceiver
|
||||
| calls.rb:317:1:317:3 | call to foo | calls.rb:317:1:317:3 | self |
|
||||
| calls.rb:317:1:317:6 | ...[...] | calls.rb:317:1:317:3 | call to foo |
|
||||
| calls.rb:317:1:317:6 | call to []= | calls.rb:317:1:317:3 | call to foo |
|
||||
| calls.rb:318:1:318:8 | call to [] | calls.rb:318:1:318:8 | __synth__0 |
|
||||
| calls.rb:318:1:318:8 | call to [] | calls.rb:318:1:318:8 | __synth__3 |
|
||||
| calls.rb:318:1:318:8 | call to foo | calls.rb:318:1:318:4 | self |
|
||||
| calls.rb:318:1:318:8 | call to foo= | calls.rb:318:1:318:4 | self |
|
||||
| calls.rb:318:12:318:19 | call to [] | calls.rb:318:12:318:19 | __synth__0 |
|
||||
| calls.rb:318:1:318:8 | call to foo | calls.rb:318:1:318:8 | __synth__0 |
|
||||
| calls.rb:318:1:318:8 | call to foo= | calls.rb:318:1:318:8 | __synth__0 |
|
||||
| calls.rb:318:12:318:19 | call to [] | calls.rb:318:12:318:19 | __synth__3 |
|
||||
| calls.rb:318:12:318:19 | call to bar | calls.rb:318:12:318:15 | self |
|
||||
| calls.rb:318:12:318:19 | call to bar= | calls.rb:318:12:318:15 | self |
|
||||
| calls.rb:318:12:318:19 | call to bar | calls.rb:318:12:318:19 | __synth__1 |
|
||||
| calls.rb:318:12:318:19 | call to bar= | calls.rb:318:12:318:19 | __synth__1 |
|
||||
| calls.rb:318:22:318:24 | call to foo | calls.rb:318:22:318:24 | self |
|
||||
| calls.rb:318:22:318:27 | ...[...] | calls.rb:318:22:318:24 | call to foo |
|
||||
| calls.rb:318:22:318:27 | call to [] | calls.rb:318:22:318:27 | __synth__0 |
|
||||
| calls.rb:318:22:318:27 | call to []= | calls.rb:318:22:318:24 | call to foo |
|
||||
| calls.rb:318:22:318:27 | call to [] | calls.rb:318:22:318:27 | __synth__2 |
|
||||
| calls.rb:318:22:318:27 | call to [] | calls.rb:318:22:318:27 | __synth__3 |
|
||||
| calls.rb:318:22:318:27 | call to []= | calls.rb:318:22:318:27 | __synth__2 |
|
||||
| calls.rb:318:31:318:42 | * ... | calls.rb:318:31:318:42 | [...] |
|
||||
| calls.rb:318:31:318:42 | call to [] | calls.rb:318:31:318:42 | Array |
|
||||
| calls.rb:319:1:319:1 | call to [] | calls.rb:319:1:319:1 | __synth__0 |
|
||||
| calls.rb:319:1:319:1 | call to [] | calls.rb:319:1:319:1 | __synth__2 |
|
||||
| calls.rb:319:5:319:7 | call to foo | calls.rb:319:5:319:7 | self |
|
||||
| calls.rb:319:5:319:10 | ...[...] | calls.rb:319:5:319:7 | call to foo |
|
||||
| calls.rb:319:5:319:10 | call to [] | calls.rb:319:5:319:10 | __synth__0 |
|
||||
| calls.rb:319:5:319:10 | call to []= | calls.rb:319:5:319:7 | call to foo |
|
||||
| calls.rb:319:5:319:10 | call to [] | calls.rb:319:5:319:10 | __synth__1 |
|
||||
| calls.rb:319:5:319:10 | call to [] | calls.rb:319:5:319:10 | __synth__2 |
|
||||
| calls.rb:319:5:319:10 | call to []= | calls.rb:319:5:319:10 | __synth__1 |
|
||||
| calls.rb:319:14:319:22 | * ... | calls.rb:319:14:319:22 | [...] |
|
||||
| calls.rb:319:14:319:22 | call to [] | calls.rb:319:14:319:22 | Array |
|
||||
| calls.rb:320:1:320:10 | call to count | calls.rb:320:1:320:4 | __synth__0 |
|
||||
@@ -370,9 +376,9 @@ callsWithReceiver
|
||||
| calls.rb:338:3:338:13 | call to bar | calls.rb:338:3:338:13 | self |
|
||||
| calls.rb:342:1:344:3 | * ... | calls.rb:342:1:344:3 | __synth__0__1 |
|
||||
| calls.rb:342:1:344:3 | call to each | calls.rb:342:16:342:33 | [...] |
|
||||
| calls.rb:342:5:342:5 | call to [] | calls.rb:342:5:342:5 | __synth__0__1 |
|
||||
| calls.rb:342:8:342:8 | call to [] | calls.rb:342:8:342:8 | __synth__0__1 |
|
||||
| calls.rb:342:11:342:11 | call to [] | calls.rb:342:11:342:11 | __synth__0__1 |
|
||||
| calls.rb:342:5:342:5 | call to [] | calls.rb:342:5:342:5 | __synth__3__1 |
|
||||
| calls.rb:342:8:342:8 | call to [] | calls.rb:342:8:342:8 | __synth__3__1 |
|
||||
| calls.rb:342:11:342:11 | call to [] | calls.rb:342:11:342:11 | __synth__3__1 |
|
||||
| calls.rb:342:16:342:33 | call to [] | calls.rb:342:16:342:33 | Array |
|
||||
| calls.rb:342:17:342:23 | call to [] | calls.rb:342:17:342:23 | Array |
|
||||
| calls.rb:342:26:342:32 | call to [] | calls.rb:342:26:342:32 | Array |
|
||||
|
||||
@@ -2083,7 +2083,7 @@ cfg.rb:
|
||||
#-----| -> constant
|
||||
|
||||
# 61| ... = ...
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 61| "constant"
|
||||
#-----| -> ... = ...
|
||||
@@ -2095,19 +2095,19 @@ cfg.rb:
|
||||
#-----| -> pattern
|
||||
|
||||
# 62| ... = ...
|
||||
#-----| -> __synth__0__1
|
||||
#-----| -> __synth__2__1
|
||||
|
||||
# 62| 0
|
||||
#-----| -> call to []
|
||||
|
||||
# 62| __synth__0
|
||||
# 62| __synth__2
|
||||
#-----| -> 0
|
||||
|
||||
# 62| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 62| x
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 62| * ...
|
||||
#-----| -> ... = ...
|
||||
@@ -2121,11 +2121,11 @@ cfg.rb:
|
||||
# 62| 1
|
||||
#-----| -> call to []
|
||||
|
||||
# 62| __synth__0
|
||||
# 62| __synth__2
|
||||
#-----| -> 1
|
||||
|
||||
# 62| __synth__0__1
|
||||
#-----| -> __synth__0
|
||||
# 62| __synth__2__1
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 62| call to []
|
||||
#-----| -> * ...
|
||||
@@ -2136,14 +2136,14 @@ cfg.rb:
|
||||
# 62| 0
|
||||
#-----| -> call to []
|
||||
|
||||
# 62| __synth__0__1
|
||||
# 62| __synth__2__1
|
||||
#-----| -> 0
|
||||
|
||||
# 62| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 62| y
|
||||
#-----| -> __synth__0__1
|
||||
#-----| -> __synth__2__1
|
||||
|
||||
# 62| ... = ...
|
||||
#-----| -> ...
|
||||
@@ -2151,14 +2151,14 @@ cfg.rb:
|
||||
# 62| 1
|
||||
#-----| -> call to []
|
||||
|
||||
# 62| __synth__0__1
|
||||
# 62| __synth__2__1
|
||||
#-----| -> 1
|
||||
|
||||
# 62| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 62| z
|
||||
#-----| -> __synth__0__1
|
||||
#-----| -> __synth__2__1
|
||||
|
||||
# 62| * ...
|
||||
#-----| -> ... = ...
|
||||
@@ -2169,7 +2169,7 @@ cfg.rb:
|
||||
# 62| Array
|
||||
#-----| -> 1
|
||||
|
||||
# 62| __synth__0
|
||||
# 62| __synth__2
|
||||
#-----| -> Array
|
||||
|
||||
# 62| call to []
|
||||
@@ -2918,7 +2918,7 @@ cfg.rb:
|
||||
#-----| raise -> self
|
||||
|
||||
# 136| ... rescue ...
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 136| 0
|
||||
#-----| -> ... / ...
|
||||
@@ -2950,14 +2950,14 @@ cfg.rb:
|
||||
# 138| _ .. _
|
||||
#-----| -> call to []
|
||||
|
||||
# 138| __synth__0
|
||||
# 138| __synth__2
|
||||
#-----| -> 0
|
||||
|
||||
# 138| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 138| init
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 138| -1
|
||||
#-----| -> call to []
|
||||
@@ -2965,14 +2965,14 @@ cfg.rb:
|
||||
# 138| ... = ...
|
||||
#-----| -> ...
|
||||
|
||||
# 138| __synth__0
|
||||
# 138| __synth__2
|
||||
#-----| -> -1
|
||||
|
||||
# 138| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 138| last
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 138| 1
|
||||
#-----| -> 2
|
||||
@@ -2986,7 +2986,7 @@ cfg.rb:
|
||||
# 138| ..., ...
|
||||
#-----| -> * ...
|
||||
|
||||
# 138| __synth__0
|
||||
# 138| __synth__2
|
||||
#-----| -> 1
|
||||
|
||||
# 138| 2
|
||||
@@ -4151,7 +4151,7 @@ desugar.rb:
|
||||
#-----| -> ... + ...
|
||||
|
||||
# 21| enter m6
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 21| exit m6
|
||||
|
||||
@@ -4167,14 +4167,14 @@ desugar.rb:
|
||||
# 22| 0
|
||||
#-----| -> call to []
|
||||
|
||||
# 22| __synth__0
|
||||
# 22| __synth__3
|
||||
#-----| -> 0
|
||||
|
||||
# 22| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 22| x
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__3
|
||||
|
||||
# 22| ...
|
||||
#-----| -> exit m6 (normal)
|
||||
@@ -4183,7 +4183,7 @@ desugar.rb:
|
||||
#-----| -> _ .. _
|
||||
|
||||
# 22| ... = ...
|
||||
#-----| -> self
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 22| 1
|
||||
#-----| -> -2
|
||||
@@ -4191,17 +4191,23 @@ desugar.rb:
|
||||
# 22| _ .. _
|
||||
#-----| -> call to []
|
||||
|
||||
# 22| __synth__0
|
||||
# 22| __synth__3
|
||||
#-----| -> 1
|
||||
|
||||
# 22| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 22| y
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__3
|
||||
|
||||
# 22| ... = ...
|
||||
#-----| -> __synth__3
|
||||
|
||||
# 22| __synth__2
|
||||
#-----| -> self
|
||||
|
||||
# 22| call to z
|
||||
#-----| -> __synth__0__1
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 22| self
|
||||
#-----| -> call to z
|
||||
@@ -4215,14 +4221,17 @@ desugar.rb:
|
||||
# 22| ... = ...
|
||||
#-----| -> call to bar=
|
||||
|
||||
# 22| __synth__0
|
||||
#-----| -> -1
|
||||
|
||||
# 22| __synth__0__1
|
||||
#-----| -> ...
|
||||
|
||||
# 22| __synth__0__1
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__3
|
||||
|
||||
# 22| __synth__2
|
||||
#-----| -> __synth__0__1
|
||||
|
||||
# 22| __synth__3
|
||||
#-----| -> -1
|
||||
|
||||
# 22| call to []
|
||||
#-----| -> ... = ...
|
||||
@@ -4239,7 +4248,7 @@ desugar.rb:
|
||||
# 22| Array
|
||||
#-----| -> 1
|
||||
|
||||
# 22| __synth__0
|
||||
# 22| __synth__3
|
||||
#-----| -> Array
|
||||
|
||||
# 22| call to []
|
||||
@@ -4258,7 +4267,7 @@ desugar.rb:
|
||||
#-----| -> call to []
|
||||
|
||||
# 25| enter m7
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 25| exit m7
|
||||
|
||||
@@ -4269,19 +4278,19 @@ desugar.rb:
|
||||
#-----| -> X
|
||||
|
||||
# 26| ... = ...
|
||||
#-----| -> __synth__0__1
|
||||
#-----| -> __synth__2__1
|
||||
|
||||
# 26| 0
|
||||
#-----| -> call to []
|
||||
|
||||
# 26| __synth__0
|
||||
# 26| __synth__2
|
||||
#-----| -> 0
|
||||
|
||||
# 26| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 26| x
|
||||
#-----| -> __synth__0
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 26| ...
|
||||
#-----| -> exit m7 (normal)
|
||||
@@ -4298,11 +4307,11 @@ desugar.rb:
|
||||
# 26| 1
|
||||
#-----| -> call to []
|
||||
|
||||
# 26| __synth__0
|
||||
# 26| __synth__2
|
||||
#-----| -> 1
|
||||
|
||||
# 26| __synth__0__1
|
||||
#-----| -> __synth__0
|
||||
# 26| __synth__2__1
|
||||
#-----| -> __synth__2
|
||||
|
||||
# 26| call to []
|
||||
#-----| -> * ...
|
||||
@@ -4313,14 +4322,14 @@ desugar.rb:
|
||||
# 26| 0
|
||||
#-----| -> call to []
|
||||
|
||||
# 26| __synth__0__1
|
||||
# 26| __synth__2__1
|
||||
#-----| -> 0
|
||||
|
||||
# 26| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 26| y
|
||||
#-----| -> __synth__0__1
|
||||
#-----| -> __synth__2__1
|
||||
|
||||
# 26| ... = ...
|
||||
#-----| -> ...
|
||||
@@ -4328,14 +4337,14 @@ desugar.rb:
|
||||
# 26| 1
|
||||
#-----| -> call to []
|
||||
|
||||
# 26| __synth__0__1
|
||||
# 26| __synth__2__1
|
||||
#-----| -> 1
|
||||
|
||||
# 26| call to []
|
||||
#-----| -> ... = ...
|
||||
|
||||
# 26| z
|
||||
#-----| -> __synth__0__1
|
||||
#-----| -> __synth__2__1
|
||||
|
||||
# 26| * ...
|
||||
#-----| -> ... = ...
|
||||
@@ -4346,7 +4355,7 @@ desugar.rb:
|
||||
# 26| Array
|
||||
#-----| -> 1
|
||||
|
||||
# 26| __synth__0
|
||||
# 26| __synth__2
|
||||
#-----| -> Array
|
||||
|
||||
# 26| call to []
|
||||
|
||||
@@ -203,10 +203,10 @@ edges
|
||||
| array_flow.rb:80:13:80:21 | call to source : | array_flow.rb:80:5:80:5 | a [element 1] : |
|
||||
| array_flow.rb:81:8:81:8 | c : | array_flow.rb:83:10:83:10 | c |
|
||||
| array_flow.rb:81:8:81:8 | c : | array_flow.rb:83:10:83:10 | c |
|
||||
| array_flow.rb:81:15:81:15 | __synth__0 [element 1] : | array_flow.rb:81:8:81:8 | c : |
|
||||
| array_flow.rb:81:15:81:15 | __synth__0 [element 1] : | array_flow.rb:81:8:81:8 | c : |
|
||||
| array_flow.rb:81:15:81:15 | a [element 1] : | array_flow.rb:81:15:81:15 | __synth__0 [element 1] : |
|
||||
| array_flow.rb:81:15:81:15 | a [element 1] : | array_flow.rb:81:15:81:15 | __synth__0 [element 1] : |
|
||||
| array_flow.rb:81:15:81:15 | __synth__3 [element 1] : | array_flow.rb:81:8:81:8 | c : |
|
||||
| array_flow.rb:81:15:81:15 | __synth__3 [element 1] : | array_flow.rb:81:8:81:8 | c : |
|
||||
| array_flow.rb:81:15:81:15 | a [element 1] : | array_flow.rb:81:15:81:15 | __synth__3 [element 1] : |
|
||||
| array_flow.rb:81:15:81:15 | a [element 1] : | array_flow.rb:81:15:81:15 | __synth__3 [element 1] : |
|
||||
| array_flow.rb:88:5:88:5 | a [element 1] : | array_flow.rb:89:9:89:9 | a [element 1] : |
|
||||
| array_flow.rb:88:5:88:5 | a [element 1] : | array_flow.rb:89:9:89:9 | a [element 1] : |
|
||||
| array_flow.rb:88:13:88:22 | call to source : | array_flow.rb:88:5:88:5 | a [element 1] : |
|
||||
@@ -4460,8 +4460,8 @@ nodes
|
||||
| array_flow.rb:80:13:80:21 | call to source : | semmle.label | call to source : |
|
||||
| array_flow.rb:81:8:81:8 | c : | semmle.label | c : |
|
||||
| array_flow.rb:81:8:81:8 | c : | semmle.label | c : |
|
||||
| array_flow.rb:81:15:81:15 | __synth__0 [element 1] : | semmle.label | __synth__0 [element 1] : |
|
||||
| array_flow.rb:81:15:81:15 | __synth__0 [element 1] : | semmle.label | __synth__0 [element 1] : |
|
||||
| array_flow.rb:81:15:81:15 | __synth__3 [element 1] : | semmle.label | __synth__3 [element 1] : |
|
||||
| array_flow.rb:81:15:81:15 | __synth__3 [element 1] : | semmle.label | __synth__3 [element 1] : |
|
||||
| array_flow.rb:81:15:81:15 | a [element 1] : | semmle.label | a [element 1] : |
|
||||
| array_flow.rb:81:15:81:15 | a [element 1] : | semmle.label | a [element 1] : |
|
||||
| array_flow.rb:83:10:83:10 | c | semmle.label | c |
|
||||
|
||||
@@ -96,10 +96,10 @@ definition
|
||||
| scopes.rb:11:4:11:4 | a | scopes.rb:7:1:7:1 | a |
|
||||
| scopes.rb:13:4:13:4 | a | scopes.rb:7:1:7:1 | a |
|
||||
| scopes.rb:13:7:13:7 | b | scopes.rb:13:7:13:7 | b |
|
||||
| scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:10:13:15 | __synth__0__1 |
|
||||
| scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:10:13:15 | __synth__2__1 |
|
||||
| scopes.rb:13:11:13:11 | c | scopes.rb:13:11:13:11 | c |
|
||||
| scopes.rb:13:14:13:14 | d | scopes.rb:13:14:13:14 | d |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:4:13:32 | __synth__0 |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:4:13:32 | __synth__3 |
|
||||
| scopes.rb:26:1:26:12 | self (A) | scopes.rb:26:1:26:12 | self |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x |
|
||||
| scopes.rb:28:1:30:3 | self (B) | scopes.rb:28:1:30:3 | self |
|
||||
@@ -282,13 +282,13 @@ read
|
||||
| scopes.rb:11:4:11:4 | a | scopes.rb:7:1:7:1 | a | scopes.rb:12:9:12:9 | a |
|
||||
| scopes.rb:13:4:13:4 | a | scopes.rb:7:1:7:1 | a | scopes.rb:14:9:14:9 | a |
|
||||
| scopes.rb:13:7:13:7 | b | scopes.rb:13:7:13:7 | b | scopes.rb:15:9:15:9 | b |
|
||||
| scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:11:13:11 | __synth__0__1 |
|
||||
| scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:14:13:14 | __synth__0__1 |
|
||||
| scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:11:13:11 | __synth__2__1 |
|
||||
| scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:14:13:14 | __synth__2__1 |
|
||||
| scopes.rb:13:11:13:11 | c | scopes.rb:13:11:13:11 | c | scopes.rb:16:9:16:9 | c |
|
||||
| scopes.rb:13:14:13:14 | d | scopes.rb:13:14:13:14 | d | scopes.rb:17:9:17:9 | d |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:4:13:32 | __synth__0 | scopes.rb:13:4:13:4 | __synth__0 |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:4:13:32 | __synth__0 | scopes.rb:13:7:13:7 | __synth__0 |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:4:13:32 | __synth__0 | scopes.rb:13:10:13:15 | __synth__0 |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:4:13:32 | __synth__3 | scopes.rb:13:4:13:4 | __synth__3 |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:4:13:32 | __synth__3 | scopes.rb:13:7:13:7 | __synth__3 |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:4:13:32 | __synth__3 | scopes.rb:13:10:13:15 | __synth__3 |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x | scopes.rb:28:8:28:8 | x |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x | scopes.rb:31:10:31:10 | x |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x | scopes.rb:34:7:34:7 | x |
|
||||
@@ -454,10 +454,10 @@ firstRead
|
||||
| scopes.rb:11:4:11:4 | a | scopes.rb:7:1:7:1 | a | scopes.rb:12:9:12:9 | a |
|
||||
| scopes.rb:13:4:13:4 | a | scopes.rb:7:1:7:1 | a | scopes.rb:14:9:14:9 | a |
|
||||
| scopes.rb:13:7:13:7 | b | scopes.rb:13:7:13:7 | b | scopes.rb:15:9:15:9 | b |
|
||||
| scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:11:13:11 | __synth__0__1 |
|
||||
| scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:11:13:11 | __synth__2__1 |
|
||||
| scopes.rb:13:11:13:11 | c | scopes.rb:13:11:13:11 | c | scopes.rb:16:9:16:9 | c |
|
||||
| scopes.rb:13:14:13:14 | d | scopes.rb:13:14:13:14 | d | scopes.rb:17:9:17:9 | d |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:4:13:32 | __synth__0 | scopes.rb:13:4:13:4 | __synth__0 |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:4:13:32 | __synth__3 | scopes.rb:13:4:13:4 | __synth__3 |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x | scopes.rb:28:8:28:8 | x |
|
||||
| scopes.rb:41:1:49:3 | self (M) | scopes.rb:41:1:49:3 | self | scopes.rb:45:5:45:7 | self |
|
||||
| scopes.rb:42:2:42:4 | var | scopes.rb:42:2:42:4 | var | scopes.rb:44:5:44:7 | var |
|
||||
@@ -604,10 +604,10 @@ lastRead
|
||||
| scopes.rb:11:4:11:4 | a | scopes.rb:7:1:7:1 | a | scopes.rb:12:9:12:9 | a |
|
||||
| scopes.rb:13:4:13:4 | a | scopes.rb:7:1:7:1 | a | scopes.rb:14:9:14:9 | a |
|
||||
| scopes.rb:13:7:13:7 | b | scopes.rb:13:7:13:7 | b | scopes.rb:15:9:15:9 | b |
|
||||
| scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:14:13:14 | __synth__0__1 |
|
||||
| scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:14:13:14 | __synth__2__1 |
|
||||
| scopes.rb:13:11:13:11 | c | scopes.rb:13:11:13:11 | c | scopes.rb:16:9:16:9 | c |
|
||||
| scopes.rb:13:14:13:14 | d | scopes.rb:13:14:13:14 | d | scopes.rb:17:9:17:9 | d |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:4:13:32 | __synth__0 | scopes.rb:13:10:13:15 | __synth__0 |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:4:13:32 | __synth__3 | scopes.rb:13:10:13:15 | __synth__3 |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x | scopes.rb:37:5:37:5 | x |
|
||||
| scopes.rb:41:1:49:3 | self (M) | scopes.rb:41:1:49:3 | self | scopes.rb:45:5:45:7 | self |
|
||||
| scopes.rb:42:2:42:4 | var | scopes.rb:42:2:42:4 | var | scopes.rb:44:5:44:7 | var |
|
||||
@@ -693,9 +693,9 @@ adjacentReads
|
||||
| scopes.rb:9:9:18:3 | <captured entry> self | scopes.rb:1:1:49:4 | self | scopes.rb:14:4:14:9 | self | scopes.rb:15:4:15:9 | self |
|
||||
| scopes.rb:9:9:18:3 | <captured entry> self | scopes.rb:1:1:49:4 | self | scopes.rb:15:4:15:9 | self | scopes.rb:16:4:16:9 | self |
|
||||
| scopes.rb:9:9:18:3 | <captured entry> self | scopes.rb:1:1:49:4 | self | scopes.rb:16:4:16:9 | self | scopes.rb:17:4:17:9 | self |
|
||||
| scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:11:13:11 | __synth__0__1 | scopes.rb:13:14:13:14 | __synth__0__1 |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:4:13:32 | __synth__0 | scopes.rb:13:4:13:4 | __synth__0 | scopes.rb:13:7:13:7 | __synth__0 |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:4:13:32 | __synth__0 | scopes.rb:13:7:13:7 | __synth__0 | scopes.rb:13:10:13:15 | __synth__0 |
|
||||
| scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:11:13:11 | __synth__2__1 | scopes.rb:13:14:13:14 | __synth__2__1 |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:4:13:32 | __synth__3 | scopes.rb:13:4:13:4 | __synth__3 | scopes.rb:13:7:13:7 | __synth__3 |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:4:13:32 | __synth__3 | scopes.rb:13:7:13:7 | __synth__3 | scopes.rb:13:10:13:15 | __synth__3 |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x | scopes.rb:28:8:28:8 | x | scopes.rb:31:10:31:10 | x |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x | scopes.rb:31:10:31:10 | x | scopes.rb:34:7:34:7 | x |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:1 | x | scopes.rb:34:7:34:7 | x | scopes.rb:34:14:34:14 | x |
|
||||
|
||||
@@ -332,12 +332,12 @@ explicitWrite
|
||||
| scopes.rb:13:4:13:4 | a | scopes.rb:13:4:13:32 | ... = ... |
|
||||
| scopes.rb:13:7:13:7 | b | scopes.rb:13:4:13:32 | ... = ... |
|
||||
| scopes.rb:13:7:13:7 | b | scopes.rb:13:7:13:7 | ... = ... |
|
||||
| scopes.rb:13:10:13:15 | __synth__0__1 | scopes.rb:13:10:13:15 | ... = ... |
|
||||
| scopes.rb:13:10:13:15 | __synth__2__1 | scopes.rb:13:10:13:15 | ... = ... |
|
||||
| scopes.rb:13:11:13:11 | c | scopes.rb:13:4:13:32 | ... = ... |
|
||||
| scopes.rb:13:11:13:11 | c | scopes.rb:13:11:13:11 | ... = ... |
|
||||
| scopes.rb:13:14:13:14 | d | scopes.rb:13:4:13:32 | ... = ... |
|
||||
| scopes.rb:13:14:13:14 | d | scopes.rb:13:14:13:14 | ... = ... |
|
||||
| scopes.rb:13:19:13:32 | __synth__0 | scopes.rb:13:19:13:32 | ... = ... |
|
||||
| scopes.rb:13:19:13:32 | __synth__3 | scopes.rb:13:19:13:32 | ... = ... |
|
||||
| scopes.rb:21:1:21:7 | $global | scopes.rb:21:1:21:12 | ... = ... |
|
||||
| scopes.rb:24:1:24:6 | script | scopes.rb:24:1:24:11 | ... = ... |
|
||||
| scopes.rb:27:1:27:1 | x | scopes.rb:27:1:27:5 | ... = ... |
|
||||
@@ -525,11 +525,11 @@ readAccess
|
||||
| scopes.rb:11:4:11:4 | a |
|
||||
| scopes.rb:12:4:12:9 | self |
|
||||
| scopes.rb:12:9:12:9 | a |
|
||||
| scopes.rb:13:4:13:4 | __synth__0 |
|
||||
| scopes.rb:13:7:13:7 | __synth__0 |
|
||||
| scopes.rb:13:10:13:15 | __synth__0 |
|
||||
| scopes.rb:13:11:13:11 | __synth__0__1 |
|
||||
| scopes.rb:13:14:13:14 | __synth__0__1 |
|
||||
| scopes.rb:13:4:13:4 | __synth__3 |
|
||||
| scopes.rb:13:7:13:7 | __synth__3 |
|
||||
| scopes.rb:13:10:13:15 | __synth__3 |
|
||||
| scopes.rb:13:11:13:11 | __synth__2__1 |
|
||||
| scopes.rb:13:14:13:14 | __synth__2__1 |
|
||||
| scopes.rb:14:4:14:9 | self |
|
||||
| scopes.rb:14:9:14:9 | a |
|
||||
| scopes.rb:15:4:15:9 | self |
|
||||
|
||||
@@ -100,8 +100,13 @@
|
||||
| scopes.rb:7:1:7:1 | a |
|
||||
| scopes.rb:9:14:9:14 | x |
|
||||
| scopes.rb:13:4:13:32 | __synth__0 |
|
||||
| scopes.rb:13:4:13:32 | __synth__1 |
|
||||
| scopes.rb:13:4:13:32 | __synth__2 |
|
||||
| scopes.rb:13:4:13:32 | __synth__3 |
|
||||
| scopes.rb:13:7:13:7 | b |
|
||||
| scopes.rb:13:10:13:15 | __synth__0__1 |
|
||||
| scopes.rb:13:10:13:15 | __synth__1__1 |
|
||||
| scopes.rb:13:10:13:15 | __synth__2__1 |
|
||||
| scopes.rb:13:11:13:11 | c |
|
||||
| scopes.rb:13:14:13:14 | d |
|
||||
| scopes.rb:24:1:24:6 | script |
|
||||
|
||||
Reference in New Issue
Block a user