mirror of
https://github.com/github/codeql.git
synced 2026-04-29 10:45:15 +02:00
Merge pull request #328 from hvitved/mergeback-2018-10-17
Approved by adityasharad, xiemaisi
This commit is contained in:
20
change-notes/1.19/analysis-csharp.md
Normal file
20
change-notes/1.19/analysis-csharp.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Improvements to C# analysis
|
||||
|
||||
## General improvements
|
||||
|
||||
* The control flow graph construction now takes simple Boolean conditions on local scope variables into account. For example, in `if (b) x = 0; if (b) x = 1;`, the control flow graph will reflect that taking the `true` (resp. `false`) branch in the first condition implies taking the same branch in the second condition. In effect, the first assignment to `x` will now be identified as being dead.
|
||||
|
||||
## New queries
|
||||
|
||||
| **Query** | **Tags** | **Purpose** |
|
||||
|-----------------------------|-----------|--------------------------------------------------------------------|
|
||||
| *@name of query (Query ID)* | *Tags* |*Aim of the new query and whether it is enabled by default or not* |
|
||||
|
||||
## Changes to existing queries
|
||||
|
||||
| **Query** | **Expected impact** | **Change** |
|
||||
|----------------------------|------------------------|------------------------------------------------------------------|
|
||||
| *@name of query (Query ID)*| *Impact on results* | *How/why the query has changed* |
|
||||
|
||||
|
||||
## Changes to QL libraries
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
* Support for popular libraries has been improved. Consequently, queries may produce more results on code bases that use the following features:
|
||||
- file system access, for example through [fs-extra](https://github.com/jprichardson/node-fs-extra) or [globby](https://www.npmjs.com/package/globby)
|
||||
- outbound network access, for example through the [fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)
|
||||
- the [Google Cloud Spanner](https://cloud.google.com/spanner) database
|
||||
|
||||
* The type inference now handles nested imports (that is, imports not appearing at the toplevel). This may yield fewer false-positive results on projects that use this non-standard language feature.
|
||||
|
||||
@@ -33,6 +35,7 @@
|
||||
| Remote property injection | Fewer results | The precision of this rule has been revised to "medium". Results are no longer shown on LGTM by default. |
|
||||
| Missing CSRF middleware | Fewer false-positive results | This rule now recognizes additional CSRF protection middlewares. |
|
||||
| Server-side URL redirect | More results | This rule now recognizes redirection calls in more cases. |
|
||||
| User-controlled bypass of security check | Fewer results | This rule no longer flags conditions that guard early returns. The precision of this rule has been revised to "medium". Results are no longer shown on LGTM by default. |
|
||||
| Whitespace contradicts operator precedence | Fewer false-positive results | This rule no longer flags operators with asymmetric whitespace. |
|
||||
|
||||
## Changes to QL libraries
|
||||
|
||||
@@ -50,5 +50,6 @@ predicate unsignedGEZero(UnsignedGEZero ugez, string msg) {
|
||||
ugez.getLocation().getStartLine() = mi.getLocation().getStartLine() and
|
||||
ugez.getLocation().getStartColumn() = mi.getLocation().getStartColumn()
|
||||
) and
|
||||
not ugez.isFromTemplateInstantiation(_) and
|
||||
msg = "Pointless comparison of unsigned value to zero."
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* @id cpp/non-virtual-destructor
|
||||
* @problem.severity warning
|
||||
* @tags reliability
|
||||
* @deprecated
|
||||
*/
|
||||
|
||||
// This query is deprecated, and replaced by jsf/4.10 Classes/AV Rule 78.ql, which has far fewer false positives on typical code.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,3 @@
|
||||
|
||||
import DataFlowUtil
|
||||
private import DataFlowPrivate
|
||||
private import DataFlowDispatch
|
||||
@@ -55,9 +54,7 @@ private module ImplCommon {
|
||||
*/
|
||||
cached
|
||||
predicate parameterValueFlowsThrough(ParameterNode p) {
|
||||
exists(ReturnNode ret |
|
||||
parameterValueFlow(p, ret)
|
||||
)
|
||||
exists(ReturnNode ret | parameterValueFlow(p, ret))
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -112,8 +109,10 @@ private module ImplCommon {
|
||||
storeViaSideEffect(node1, f, node2) or
|
||||
storeReturn(node1, f, node2)
|
||||
}
|
||||
|
||||
private predicate storeViaSideEffect(Node node1, Content f, PostUpdateNode node2) {
|
||||
storeStep(node1, f, node2) and readStep(_, f, _) or
|
||||
storeStep(node1, f, node2) and readStep(_, f, _)
|
||||
or
|
||||
exists(Call call, int i1, int i2 |
|
||||
setterCall(call, i1, i2, f) and
|
||||
node1.(ArgumentNode).argumentOf(call, i1) and
|
||||
@@ -122,6 +121,7 @@ private module ImplCommon {
|
||||
compatibleTypes(node2.getTypeBound(), f.getDeclaringType())
|
||||
)
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
private predicate setterInParam(ParameterNode p1, Content f, ParameterNode p2) {
|
||||
exists(Node n1, PostUpdateNode n2 |
|
||||
@@ -131,6 +131,7 @@ private module ImplCommon {
|
||||
p1 != p2
|
||||
)
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
private predicate setterCall(Call call, int i1, int i2, Content f) {
|
||||
exists(Callable callable, ParameterNode p1, ParameterNode p2 |
|
||||
@@ -140,6 +141,7 @@ private module ImplCommon {
|
||||
p2.isParameterOf(callable, i2)
|
||||
)
|
||||
}
|
||||
|
||||
private predicate storeReturn(Node node1, Content f, Node node2) {
|
||||
exists(ParameterNode p, ArgumentNode arg |
|
||||
arg = node1 and
|
||||
@@ -150,6 +152,7 @@ private module ImplCommon {
|
||||
compatibleTypes(node2.getTypeBound(), f.getDeclaringType())
|
||||
)
|
||||
}
|
||||
|
||||
private predicate setterReturn(ParameterNode p, Content f) {
|
||||
exists(Node n1, Node n2, ReturnNode ret |
|
||||
parameterValueFlow(p, n1) and
|
||||
@@ -164,7 +167,8 @@ private module ImplCommon {
|
||||
*/
|
||||
cached
|
||||
predicate read(Node node1, Content f, Node node2) {
|
||||
readStep(node1, f, node2) and storeStep(_, f, _) or
|
||||
readStep(node1, f, node2) and storeStep(_, f, _)
|
||||
or
|
||||
exists(ParameterNode p, ArgumentNode arg |
|
||||
arg = node1 and
|
||||
viableParamArg(p, arg) and
|
||||
@@ -174,6 +178,7 @@ private module ImplCommon {
|
||||
compatibleTypes(node2.getTypeBound(), f.getType())
|
||||
)
|
||||
}
|
||||
|
||||
private predicate getter(ParameterNode p, Content f) {
|
||||
exists(Node n1, Node n2, ReturnNode ret |
|
||||
parameterValueFlow(p, n1) and
|
||||
@@ -196,9 +201,7 @@ private module ImplCommon {
|
||||
* expression that reaches a `this` parameter.
|
||||
*/
|
||||
private predicate callHasInstanceArgument(Call call) {
|
||||
exists(ArgumentNode arg |
|
||||
arg.argumentOf(call, -1)
|
||||
)
|
||||
exists(ArgumentNode arg | arg.argumentOf(call, -1))
|
||||
}
|
||||
|
||||
cached
|
||||
@@ -207,9 +210,11 @@ private module ImplCommon {
|
||||
TSpecificCall(Call call, int i, boolean emptyAp) {
|
||||
reducedViableImplInCallContext(_, _, call) and
|
||||
(emptyAp = true or emptyAp = false) and
|
||||
(exists(call.getArgument(i))
|
||||
or
|
||||
i = -1 and callHasInstanceArgument(call))
|
||||
(
|
||||
exists(call.getArgument(i))
|
||||
or
|
||||
i = -1 and callHasInstanceArgument(call)
|
||||
)
|
||||
} or
|
||||
TSomeCall(ParameterNode p, boolean emptyAp) { emptyAp = true or emptyAp = false } or
|
||||
TReturn(Method m, MethodAccess ma) { reducedViableImplInReturn(m, ma) }
|
||||
@@ -232,19 +237,22 @@ import ImplCommon
|
||||
* this dispatch target of `ma` implies a reduced set of dispatch origins
|
||||
* to which data may flow if it should reach a `return` statement.
|
||||
*/
|
||||
abstract class CallContext extends TCallContext {
|
||||
abstract string toString();
|
||||
}
|
||||
abstract class CallContext extends TCallContext { abstract string toString(); }
|
||||
|
||||
class CallContextAny extends CallContext, TAnyCallContext {
|
||||
override string toString() { result = "CcAny" }
|
||||
}
|
||||
|
||||
abstract class CallContextCall extends CallContext { }
|
||||
|
||||
class CallContextSpecificCall extends CallContextCall, TSpecificCall {
|
||||
override string toString() { result = "CcCall" }
|
||||
}
|
||||
|
||||
class CallContextSomeCall extends CallContextCall, TSomeCall {
|
||||
override string toString() { result = "CcSomeCall" }
|
||||
}
|
||||
|
||||
class CallContextReturn extends CallContext, TReturn {
|
||||
override string toString() { result = "CcReturn" }
|
||||
}
|
||||
@@ -263,12 +271,14 @@ predicate resolveReturn(CallContext cc, Callable callable, Call call) {
|
||||
bindingset[call, cc]
|
||||
Callable resolveCall(Call call, CallContext cc) {
|
||||
exists(Call ctx | cc = TSpecificCall(ctx, _, _) |
|
||||
if reducedViableImplInCallContext(call, _, ctx) then
|
||||
result = prunedViableImplInCallContext(call, ctx)
|
||||
else
|
||||
result = viableCallable(call)
|
||||
) or
|
||||
result = viableCallable(call) and cc instanceof CallContextSomeCall or
|
||||
result = viableCallable(call) and cc instanceof CallContextAny or
|
||||
if reducedViableImplInCallContext(call, _, ctx)
|
||||
then result = prunedViableImplInCallContext(call, ctx)
|
||||
else result = viableCallable(call)
|
||||
)
|
||||
or
|
||||
result = viableCallable(call) and cc instanceof CallContextSomeCall
|
||||
or
|
||||
result = viableCallable(call) and cc instanceof CallContextAny
|
||||
or
|
||||
result = viableCallable(call) and cc instanceof CallContextReturn
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
template<typename T>
|
||||
bool sometimesPointless(T param) {
|
||||
return param >= 0; // GOOD (FALSE POSITIVE: hypothetical instantiations are okay)
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
bool alwaysPointless(T param) {
|
||||
unsigned int local = param;
|
||||
return local >= 0; // BAD (in all instantiations)
|
||||
}
|
||||
|
||||
static int caller(int i) {
|
||||
return
|
||||
sometimesPointless<unsigned int>(i) ||
|
||||
alwaysPointless<unsigned int>(i) ||
|
||||
alwaysPointless<int>(i);
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
| Templates.cpp:9:10:9:19 | ... >= ... | Pointless comparison of unsigned value to zero. |
|
||||
| UnsignedGEZero.c:40:6:40:12 | ... >= ... | Pointless comparison of unsigned value to zero. |
|
||||
| UnsignedGEZero.c:48:6:48:15 | ... >= ... | Pointless comparison of unsigned value to zero. |
|
||||
| UnsignedGEZero.c:54:6:54:12 | ... >= ... | Pointless comparison of unsigned value to zero. |
|
||||
|
||||
7
csharp/config/tracer/linux/csharp-compiler-settings
Normal file
7
csharp/config/tracer/linux/csharp-compiler-settings
Normal file
@@ -0,0 +1,7 @@
|
||||
**/mcs.exe:
|
||||
**/csc.exe:
|
||||
invoke ${env.SEMMLE_PLATFORM_TOOLS}/csharp/Semmle.Extraction.CSharp.Driver
|
||||
prepend --cil
|
||||
**/bin/mono*:
|
||||
**/dotnet:
|
||||
invoke ${odasa_tools}/extract-csharp.sh
|
||||
16
csharp/config/tracer/linux/extract-csharp.sh
Executable file
16
csharp/config/tracer/linux/extract-csharp.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
echo extract-csharp.sh: Called with arguments: "$@"
|
||||
|
||||
extractor=$SEMMLE_PLATFORM_TOOLS/csharp/Semmle.Extraction.CSharp.Driver
|
||||
|
||||
for i in "$@"
|
||||
do
|
||||
shift
|
||||
if [[ `basename -- "$i"` =~ csc.exe|mcs.exe|csc.dll ]]
|
||||
then
|
||||
echo extract-csharp.sh: exec $extractor --cil $@
|
||||
exec "$extractor" --cil $@
|
||||
fi
|
||||
done
|
||||
|
||||
echo extract-csharp.sh: Not a compiler invocation
|
||||
9
csharp/config/tracer/windows/csharp-compiler-settings
Normal file
9
csharp/config/tracer/windows/csharp-compiler-settings
Normal file
@@ -0,0 +1,9 @@
|
||||
**\fakes*.exe:
|
||||
**\moles*.exe:
|
||||
order compiler
|
||||
trace no
|
||||
**\csc*.exe:
|
||||
invoke ${env.SEMMLE_PLATFORM_TOOLS}\csharp\Semmle.Extraction.CSharp.Driver.exe
|
||||
prepend --compiler
|
||||
prepend "${compiler}"
|
||||
prepend --cil
|
||||
@@ -446,16 +446,25 @@ class AssignableDefinition extends TAssignableDefinition {
|
||||
* the definitions of `x` and `y` in `M(out x, out y)` and `(x, y) = (0, 1)`
|
||||
* relate to the same call to `M` and assignment node, respectively.
|
||||
*/
|
||||
ControlFlow::Node getAControlFlowNode() { none() }
|
||||
ControlFlow::Node getAControlFlowNode() {
|
||||
result = this.getExpr().getAControlFlowNode()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the underlying expression that updates the targeted assignable when
|
||||
* reached, if any.
|
||||
*
|
||||
* Not all definitions have an associated expression, for example implicit
|
||||
* parameter definitions.
|
||||
*/
|
||||
Expr getExpr() { none() }
|
||||
|
||||
/** DEPRECATED: Use `getAControlFlowNode()` instead. */
|
||||
deprecated
|
||||
ControlFlow::Node getControlFlowNode() { result = this.getAControlFlowNode() }
|
||||
|
||||
/** Gets the enclosing callable of this definition. */
|
||||
Callable getEnclosingCallable() {
|
||||
result = this.getAControlFlowNode().getBasicBlock().getCallable()
|
||||
}
|
||||
Callable getEnclosingCallable() { result = this.getExpr().getEnclosingCallable() }
|
||||
|
||||
/**
|
||||
* Gets the assigned expression, if any. For example, the expression assigned
|
||||
@@ -581,7 +590,7 @@ class AssignableDefinition extends TAssignableDefinition {
|
||||
|
||||
/** Gets the location of this assignable definition. */
|
||||
Location getLocation() {
|
||||
result = this.getAControlFlowNode().getLocation()
|
||||
result = this.getExpr().getLocation()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -602,9 +611,7 @@ module AssignableDefinitions {
|
||||
result = a
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
result = a.getAControlFlowNode()
|
||||
}
|
||||
override Expr getExpr() { result = a }
|
||||
|
||||
override Expr getSource() {
|
||||
result = a.getRValue() and
|
||||
@@ -633,30 +640,19 @@ module AssignableDefinitions {
|
||||
result = ae
|
||||
}
|
||||
|
||||
private Expr getLeaf() {
|
||||
result = leaf
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the evaluation order of this definition among the other definitions
|
||||
* in the compound tuple assignment. For example, in `(x, (y, z)) = ...` the
|
||||
* orders of the definitions of `x`, `y`, and `z` are 0, 1, and 2, respectively.
|
||||
*/
|
||||
int getEvaluationOrder() {
|
||||
exists(ControlFlow::BasicBlock bb, int i |
|
||||
bb.getNode(i).getElement() = leaf |
|
||||
i = rank[result + 1](int j, TupleAssignmentDefinition def |
|
||||
bb.getNode(j).getElement() = def.getLeaf() and
|
||||
ae = def.getAssignment()
|
||||
|
|
||||
j
|
||||
)
|
||||
leaf = rank[result + 1](Expr leaf0 |
|
||||
exists(TTupleAssignmentDefinition(ae, leaf0)) |
|
||||
leaf0 order by leaf0.getLocation().getStartLine(), leaf0.getLocation().getStartColumn()
|
||||
)
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
result = ae.getAControlFlowNode()
|
||||
}
|
||||
override Expr getExpr() { result = ae }
|
||||
|
||||
override Expr getSource() {
|
||||
result = getTupleSource(this) // need not exist
|
||||
@@ -700,9 +696,7 @@ module AssignableDefinitions {
|
||||
)
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
result = this.getCall().getAControlFlowNode()
|
||||
}
|
||||
override Expr getExpr() { result = this.getCall() }
|
||||
|
||||
override predicate isCertain() {
|
||||
not isUncertainRefCall(this.getCall(), this.getTargetAccess())
|
||||
@@ -732,9 +726,7 @@ module AssignableDefinitions {
|
||||
result = mo
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
result = mo.getAControlFlowNode()
|
||||
}
|
||||
override Expr getExpr() { result = mo }
|
||||
|
||||
override string toString() {
|
||||
result = mo.toString()
|
||||
@@ -756,9 +748,7 @@ module AssignableDefinitions {
|
||||
result = lvde
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
result = lvde.getAControlFlowNode()
|
||||
}
|
||||
override Expr getExpr() { result = lvde }
|
||||
|
||||
override string toString() {
|
||||
result = lvde.toString()
|
||||
@@ -785,6 +775,10 @@ module AssignableDefinitions {
|
||||
result = p.getCallable().getEntryPoint()
|
||||
}
|
||||
|
||||
override Callable getEnclosingCallable() {
|
||||
result = p.getCallable()
|
||||
}
|
||||
|
||||
override string toString() {
|
||||
result = p.toString()
|
||||
}
|
||||
@@ -809,9 +803,7 @@ module AssignableDefinitions {
|
||||
result = aoe
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
result = aoe.getAControlFlowNode()
|
||||
}
|
||||
override Expr getExpr() { result = aoe }
|
||||
|
||||
override string toString() {
|
||||
result = aoe.toString()
|
||||
@@ -833,9 +825,7 @@ module AssignableDefinitions {
|
||||
result = ipe.getVariableDeclExpr()
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
result = this.getDeclaration().getAControlFlowNode()
|
||||
}
|
||||
override Expr getExpr() { result = this.getDeclaration() }
|
||||
|
||||
override Expr getSource() {
|
||||
result = ipe.getExpr()
|
||||
@@ -870,9 +860,7 @@ module AssignableDefinitions {
|
||||
result = tc.getVariableDeclExpr()
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
result = this.getDeclaration().getAControlFlowNode()
|
||||
}
|
||||
override Expr getExpr() { result = this.getDeclaration() }
|
||||
|
||||
override Expr getSource() {
|
||||
result = any(SwitchStmt ss | ss.getATypeCase() = tc).getCondition()
|
||||
@@ -906,10 +894,6 @@ module AssignableDefinitions {
|
||||
result = a
|
||||
}
|
||||
|
||||
override ControlFlow::Node getAControlFlowNode() {
|
||||
none() // initializers are currently not part of the CFG
|
||||
}
|
||||
|
||||
override Expr getSource() {
|
||||
result = e
|
||||
}
|
||||
|
||||
@@ -57,24 +57,3 @@ class Element extends DotNet::Element, @element {
|
||||
exists(Element parent | parent.getChild(result) = this)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the "best" location for element `e`. Where an element has locations in
|
||||
* source and assemblies, choose the source location. If there are multiple assembly
|
||||
* locations, choose only one.
|
||||
*/
|
||||
cached
|
||||
private Location bestLocation(Element e) {
|
||||
result = e.getALocation().(SourceLocation) and
|
||||
(mustHaveLocationInFile(e, _) implies mustHaveLocationInFile(e, result.getFile()))
|
||||
or
|
||||
(
|
||||
hasNoSourceLocation(e)
|
||||
and
|
||||
result = min(Location l | l = e.getALocation() | l order by l.getFile().toString())
|
||||
)
|
||||
}
|
||||
|
||||
private predicate hasNoSourceLocation(Element e) {
|
||||
not e.getALocation() instanceof SourceLocation
|
||||
}
|
||||
|
||||
@@ -370,7 +370,29 @@ private cached module Cached {
|
||||
t = getTopLevelDeclaringType(d) or d = t or d = p
|
||||
)
|
||||
}
|
||||
|
||||
private predicate hasNoSourceLocation(Element e) {
|
||||
not e.getALocation() instanceof SourceLocation
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the "best" location for element `e`. Where an element has locations in
|
||||
* source and assemblies, choose the source location. If there are multiple assembly
|
||||
* locations, choose only one.
|
||||
*/
|
||||
cached
|
||||
Location bestLocationCached(Element e) {
|
||||
result = e.getALocation().(SourceLocation) and
|
||||
(mustHaveLocationInFile(e, _) implies mustHaveLocationInFile(e, result.getFile()))
|
||||
or
|
||||
(
|
||||
hasNoSourceLocation(e)
|
||||
and
|
||||
result = min(Location l | l = e.getALocation() | l order by l.getFile().toString())
|
||||
)
|
||||
}
|
||||
}
|
||||
private import Cached
|
||||
|
||||
predicate mustHaveLocationInFile = mustHaveLocationInFileCached/2;
|
||||
predicate bestLocation = bestLocationCached/1;
|
||||
|
||||
@@ -173,17 +173,7 @@ class SwitchStmt extends SelectionStmt, @switch_stmt {
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
cached
|
||||
CaseStmt getCase(int i) {
|
||||
exists(int index, int rankIndex |
|
||||
result = getChildStmt(index) and
|
||||
rankIndex = i + 1 and
|
||||
index = rank[rankIndex](int j, CaseStmt cs |
|
||||
cs = this.getChildStmt(j) |
|
||||
j
|
||||
)
|
||||
)
|
||||
}
|
||||
CaseStmt getCase(int i) { result = SwithStmtInternal::getCase(this, i) }
|
||||
|
||||
/** Gets a case of this `switch` statement. */
|
||||
CaseStmt getACase() { result = this.getCase(_) }
|
||||
@@ -221,29 +211,45 @@ class SwitchStmt extends SelectionStmt, @switch_stmt {
|
||||
* Note that each non-`default` case is a labeled statement, so the statement
|
||||
* that follows is a child of the labeled statement, and not the `switch` block.
|
||||
*/
|
||||
Stmt getStmt(int i) { result = SwithStmtInternal::getStmt(this, i) }
|
||||
|
||||
/** Gets a statement in the body of this `switch` statement. */
|
||||
Stmt getAStmt() { result = this.getStmt(_) }
|
||||
}
|
||||
|
||||
private cached module SwithStmtInternal {
|
||||
cached
|
||||
Stmt getStmt(int i) {
|
||||
CaseStmt getCase(SwitchStmt ss, int i) {
|
||||
exists(int index, int rankIndex |
|
||||
result = getChildStmt(index) and
|
||||
result = ss.getChildStmt(index) and
|
||||
rankIndex = i + 1 and
|
||||
index = rank[rankIndex](int j, Stmt s |
|
||||
// `getChild` includes both labeled statements and the targeted
|
||||
// statements of labeled statement as separate children, but we
|
||||
// only want the labeled statement
|
||||
s = getLabeledStmt(j) |
|
||||
index = rank[rankIndex](int j, CaseStmt cs |
|
||||
cs = ss.getChildStmt(j) |
|
||||
j
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
private Stmt getLabeledStmt(int i) {
|
||||
result = this.getChildStmt(i) and
|
||||
cached
|
||||
Stmt getStmt(SwitchStmt ss, int i) {
|
||||
exists(int index, int rankIndex |
|
||||
result = ss.getChildStmt(index) and
|
||||
rankIndex = i + 1 and
|
||||
index = rank[rankIndex](int j, Stmt s |
|
||||
// `getChild` includes both labeled statements and the targeted
|
||||
// statements of labeled statement as separate children, but we
|
||||
// only want the labeled statement
|
||||
s = getLabeledStmt(ss, j) |
|
||||
j
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
private Stmt getLabeledStmt(SwitchStmt ss, int i) {
|
||||
result = ss.getChildStmt(i) and
|
||||
not result = any(ConstCase cc).getStmt() and
|
||||
not result = any(TypeCase tc).getStmt()
|
||||
}
|
||||
|
||||
/** Gets a statement in the body of this `switch` statement. */
|
||||
Stmt getAStmt() { result = this.getStmt(_) }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -56,12 +56,12 @@
|
||||
| CatchInFinally.cs:17:41:17:43 | "1" | CatchInFinally.cs:17:27:17:44 | object creation of type Exception | 2 |
|
||||
| CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | 2 |
|
||||
| CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" | CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception | 2 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [exception: Exception] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... | 6 |
|
||||
| CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | 6 |
|
||||
| CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | CatchInFinally.cs:21:17:21:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | 6 |
|
||||
| CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | CatchInFinally.cs:21:17:21:42 | [finally: exception(Exception)] call to method WriteLine | 6 |
|
||||
| CatchInFinally.cs:20:13:22:13 | {...} | CatchInFinally.cs:21:17:21:42 | call to method WriteLine | 6 |
|
||||
@@ -99,6 +99,71 @@
|
||||
| ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:43:19:60 | call to method CommaJoinWith | 2 |
|
||||
| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:21:10:21:11 | exit M7 | 20 |
|
||||
| ConditionalAccess.cs:31:26:31:38 | enter CommaJoinWith | ConditionalAccess.cs:31:26:31:38 | exit CommaJoinWith | 7 |
|
||||
| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:5:13:5:15 | access to parameter inc | 4 |
|
||||
| Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr | 1 |
|
||||
| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | 6 |
|
||||
| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:8:13:8:15 | ...-- | 6 |
|
||||
| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:14:13:14:13 | access to parameter b | 8 |
|
||||
| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | 7 |
|
||||
| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | 4 |
|
||||
| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:18:17:18:19 | ...-- | 6 |
|
||||
| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | 3 |
|
||||
| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | exit M1 | 3 |
|
||||
| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:25:13:25:14 | access to parameter b1 | 8 |
|
||||
| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | 2 |
|
||||
| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | 5 |
|
||||
| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | 2 |
|
||||
| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | 2 |
|
||||
| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:15 | ...++ | 3 |
|
||||
| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | exit M2 | 3 |
|
||||
| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:37:13:37:14 | access to parameter b1 | 12 |
|
||||
| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:19 | ... = ... | 4 |
|
||||
| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | 2 |
|
||||
| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:42:13:42:15 | ...++ | 8 |
|
||||
| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | 2 |
|
||||
| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | exit M3 | 3 |
|
||||
| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:16:49:22 | ... > ... | 11 |
|
||||
| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | 4 |
|
||||
| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | 3 |
|
||||
| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | 3 |
|
||||
| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:17:51:17 | access to parameter b | 3 |
|
||||
| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | 7 |
|
||||
| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | exit M4 | 3 |
|
||||
| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:16:60:22 | ... > ... | 11 |
|
||||
| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | 4 |
|
||||
| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | 3 |
|
||||
| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | 3 |
|
||||
| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:17:62:17 | access to parameter b | 3 |
|
||||
| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | 7 |
|
||||
| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | 2 |
|
||||
| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | 2 |
|
||||
| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | 2 |
|
||||
| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:15 | ...++ | 3 |
|
||||
| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | exit M5 | 3 |
|
||||
| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:74:27:74:28 | access to parameter ss | 14 |
|
||||
| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | 1 |
|
||||
| Conditions.cs:75:9:80:9 | {...} | Conditions.cs:76:17:76:17 | access to local variable b | 3 |
|
||||
| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:19 | ...++ | 3 |
|
||||
| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:21 | ... > ... | 4 |
|
||||
| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:25 | ... = ... | 4 |
|
||||
| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:12:81:12 | access to local variable b | 2 |
|
||||
| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:15 | ...++ | 3 |
|
||||
| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:70:9:70:10 | exit M6 | 3 |
|
||||
| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:90:27:90:28 | access to parameter ss | 14 |
|
||||
| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | 1 |
|
||||
| Conditions.cs:91:9:98:9 | {...} | Conditions.cs:92:17:92:17 | access to local variable b | 3 |
|
||||
| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:19 | ...++ | 3 |
|
||||
| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:21 | ... > ... | 4 |
|
||||
| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:25 | ... = ... | 4 |
|
||||
| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | 2 |
|
||||
| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:19 | ...++ | 3 |
|
||||
| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:86:9:86:10 | exit M7 | 3 |
|
||||
| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:105:13:105:13 | access to parameter b | 9 |
|
||||
| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | 11 |
|
||||
| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | 5 |
|
||||
| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:109:17:109:23 | ... = ... | 9 |
|
||||
| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | 3 |
|
||||
| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:102:12:102:13 | exit M8 | 3 |
|
||||
| ExitMethods.cs:6:10:6:11 | enter M1 | ExitMethods.cs:6:10:6:11 | exit M1 | 7 |
|
||||
| ExitMethods.cs:12:10:12:11 | enter M2 | ExitMethods.cs:12:10:12:11 | exit M2 | 7 |
|
||||
| ExitMethods.cs:18:10:18:11 | enter M3 | ExitMethods.cs:18:10:18:11 | exit M3 | 6 |
|
||||
|
||||
@@ -105,12 +105,12 @@
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:17:41:17:43 | "1" |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| post | CatchInFinally.cs:5:10:5:11 | exit M1 | CatchInFinally.cs:20:13:22:13 | {...} |
|
||||
@@ -130,18 +130,18 @@
|
||||
| post | CatchInFinally.cs:17:41:17:43 | "1" | CatchInFinally.cs:17:41:17:43 | "1" |
|
||||
| post | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| post | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(ArgumentNullException)] throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:17:41:17:43 | "1" |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(ArgumentNullException)] throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| post | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| post | CatchInFinally.cs:20:13:22:13 | {...} | CatchInFinally.cs:20:13:22:13 | {...} |
|
||||
@@ -199,6 +199,167 @@
|
||||
| post | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 |
|
||||
| post | ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:21:10:21:11 | enter M7 |
|
||||
| post | ConditionalAccess.cs:31:26:31:38 | enter CommaJoinWith | ConditionalAccess.cs:31:26:31:38 | enter CommaJoinWith |
|
||||
| post | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr |
|
||||
| post | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr |
|
||||
| post | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr |
|
||||
| post | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; |
|
||||
| post | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... |
|
||||
| post | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; |
|
||||
| post | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... |
|
||||
| post | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | enter M1 |
|
||||
| post | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; |
|
||||
| post | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... |
|
||||
| post | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| post | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | enter M1 |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| post | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | enter M2 |
|
||||
| post | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... |
|
||||
| post | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| post | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| post | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... |
|
||||
| post | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| post | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:16 | ...; |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | enter M2 |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:26:13:27:20 | if (...) ... |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:9:29:16 | if (...) ... |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:29:13:29:16 | ...; |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x |
|
||||
| post | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:33:9:33:10 | enter M3 |
|
||||
| post | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:20 | ...; |
|
||||
| post | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:33:9:33:10 | enter M3 |
|
||||
| post | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:38:13:38:20 | ...; |
|
||||
| post | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... |
|
||||
| post | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| post | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| post | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | enter M3 |
|
||||
| post | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:38:13:38:20 | ...; |
|
||||
| post | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:39:9:40:16 | if (...) ... |
|
||||
| post | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| post | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| post | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x |
|
||||
| post | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | enter M4 |
|
||||
| post | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| post | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| post | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| post | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| post | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | {...} |
|
||||
| post | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| post | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | enter M4 |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:50:9:53:9 | {...} |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| post | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | enter M5 |
|
||||
| post | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| post | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| post | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| post | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| post | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | {...} |
|
||||
| post | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| post | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| post | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| post | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| post | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| post | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| post | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| post | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| post | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:9:66:16 | if (...) ... |
|
||||
| post | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| post | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| post | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| post | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:16 | ...; |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | enter M5 |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:61:9:64:9 | {...} |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:9:66:16 | if (...) ... |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:66:13:66:16 | ...; |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y |
|
||||
| post | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:70:9:70:10 | enter M6 |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:70:9:70:10 | enter M6 |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:75:9:80:9 | {...} |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:77:17:77:20 | ...; |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:79:17:79:26 | ...; |
|
||||
| post | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:75:9:80:9 | {...} |
|
||||
| post | Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:20 | ...; |
|
||||
| post | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:75:9:80:9 | {...} |
|
||||
| post | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:77:17:77:20 | ...; |
|
||||
| post | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| post | Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:26 | ...; |
|
||||
| post | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:70:9:70:10 | enter M6 |
|
||||
| post | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... |
|
||||
| post | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:75:9:80:9 | {...} |
|
||||
| post | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:77:17:77:20 | ...; |
|
||||
| post | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| post | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:79:17:79:26 | ...; |
|
||||
| post | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:9:82:16 | if (...) ... |
|
||||
| post | Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:16 | ...; |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:70:9:70:10 | enter M6 |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:75:9:80:9 | {...} |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:77:17:77:20 | ...; |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:79:17:79:26 | ...; |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:81:9:82:16 | if (...) ... |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:82:13:82:16 | ...; |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| post | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:86:9:86:10 | enter M7 |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | enter M7 |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:91:9:98:9 | {...} |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:93:17:93:20 | ...; |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:95:17:95:26 | ...; |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:97:17:97:20 | ...; |
|
||||
| post | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:91:9:98:9 | {...} |
|
||||
| post | Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:20 | ...; |
|
||||
| post | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:91:9:98:9 | {...} |
|
||||
| post | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:93:17:93:20 | ...; |
|
||||
| post | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| post | Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:26 | ...; |
|
||||
| post | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:91:9:98:9 | {...} |
|
||||
| post | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:93:17:93:20 | ...; |
|
||||
| post | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| post | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:95:17:95:26 | ...; |
|
||||
| post | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| post | Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:20 | ...; |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:86:9:86:10 | enter M7 |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:91:9:98:9 | {...} |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:93:17:93:20 | ...; |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:95:17:95:26 | ...; |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:97:17:97:20 | ...; |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x |
|
||||
| post | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | enter M8 |
|
||||
| post | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; |
|
||||
| post | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... |
|
||||
| post | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| post | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:102:12:102:13 | enter M8 |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| post | ExitMethods.cs:6:10:6:11 | enter M1 | ExitMethods.cs:6:10:6:11 | enter M1 |
|
||||
| post | ExitMethods.cs:12:10:12:11 | enter M2 | ExitMethods.cs:12:10:12:11 | enter M2 |
|
||||
| post | ExitMethods.cs:18:10:18:11 | enter M3 | ExitMethods.cs:18:10:18:11 | enter M3 |
|
||||
@@ -1228,12 +1389,12 @@
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:17:41:17:43 | "1" |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| pre | CatchInFinally.cs:5:10:5:11 | enter M1 | CatchInFinally.cs:20:13:22:13 | {...} |
|
||||
@@ -1245,8 +1406,8 @@
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:16:36:16:36 | [finally: exception(ArgumentNullException)] 1 |
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:17:21:17:45 | [finally: exception(ArgumentNullException)] throw ...; |
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| pre | CatchInFinally.cs:10:17:10:50 | throw ...; | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:10:17:10:50 | throw ...; |
|
||||
@@ -1258,10 +1419,10 @@
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| pre | CatchInFinally.cs:10:23:10:49 | object creation of type ArgumentNullException | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} |
|
||||
@@ -1270,8 +1431,8 @@
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:16:36:16:36 | [finally: exception(Exception)] 1 |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | [finally: exception(Exception)] {...} | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} |
|
||||
| pre | CatchInFinally.cs:13:9:27:9 | {...} | CatchInFinally.cs:13:9:27:9 | {...} |
|
||||
@@ -1300,12 +1461,12 @@
|
||||
| pre | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| pre | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" | CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; |
|
||||
| pre | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| pre | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| pre | CatchInFinally.cs:20:13:22:13 | {...} | CatchInFinally.cs:20:13:22:13 | {...} |
|
||||
@@ -1365,6 +1526,181 @@
|
||||
| pre | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 |
|
||||
| pre | ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:21:10:21:11 | enter M7 |
|
||||
| pre | ConditionalAccess.cs:31:26:31:38 | enter CommaJoinWith | ConditionalAccess.cs:31:26:31:38 | enter CommaJoinWith |
|
||||
| pre | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr |
|
||||
| pre | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr |
|
||||
| pre | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; |
|
||||
| pre | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... |
|
||||
| pre | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr |
|
||||
| pre | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; |
|
||||
| pre | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... |
|
||||
| pre | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | enter M1 |
|
||||
| pre | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; |
|
||||
| pre | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... |
|
||||
| pre | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| pre | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| pre | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| pre | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; |
|
||||
| pre | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| pre | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... |
|
||||
| pre | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| pre | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| pre | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| pre | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| pre | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | enter M2 |
|
||||
| pre | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:26:13:27:20 | if (...) ... |
|
||||
| pre | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| pre | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| pre | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:28:9:29:16 | if (...) ... |
|
||||
| pre | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:29:13:29:16 | ...; |
|
||||
| pre | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:30:16:30:16 | access to local variable x |
|
||||
| pre | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... |
|
||||
| pre | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| pre | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| pre | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| pre | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| pre | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... |
|
||||
| pre | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:16 | ...; |
|
||||
| pre | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x |
|
||||
| pre | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:33:9:33:10 | enter M3 |
|
||||
| pre | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:38:13:38:20 | ...; |
|
||||
| pre | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:39:9:40:16 | if (...) ... |
|
||||
| pre | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| pre | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| pre | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:43:16:43:16 | access to local variable x |
|
||||
| pre | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:20 | ...; |
|
||||
| pre | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... |
|
||||
| pre | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| pre | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| pre | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:43:16:43:16 | access to local variable x |
|
||||
| pre | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| pre | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| pre | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x |
|
||||
| pre | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | enter M4 |
|
||||
| pre | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| pre | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| pre | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| pre | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | {...} |
|
||||
| pre | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| pre | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| pre | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| pre | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| pre | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| pre | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| pre | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| pre | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| pre | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| pre | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | {...} |
|
||||
| pre | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| pre | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| pre | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| pre | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | enter M5 |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | {...} |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | if (...) ... |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:66:13:66:16 | ...; |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:67:16:67:16 | access to local variable y |
|
||||
| pre | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| pre | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| pre | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| pre | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| pre | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| pre | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| pre | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| pre | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| pre | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | {...} |
|
||||
| pre | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| pre | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| pre | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| pre | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| pre | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| pre | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| pre | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| pre | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| pre | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:9:66:16 | if (...) ... |
|
||||
| pre | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:16 | ...; |
|
||||
| pre | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:70:9:70:10 | enter M6 |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:75:9:80:9 | {...} |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:77:17:77:20 | ...; |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:79:17:79:26 | ...; |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:81:9:82:16 | if (...) ... |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:82:13:82:16 | ...; |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:75:9:80:9 | {...} |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:77:17:77:20 | ...; |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:79:17:79:26 | ...; |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:82:13:82:16 | ...; |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| pre | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:75:9:80:9 | {...} |
|
||||
| pre | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:77:17:77:20 | ...; |
|
||||
| pre | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| pre | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:79:17:79:26 | ...; |
|
||||
| pre | Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:20 | ...; |
|
||||
| pre | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| pre | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:79:17:79:26 | ...; |
|
||||
| pre | Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:26 | ...; |
|
||||
| pre | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:9:82:16 | if (...) ... |
|
||||
| pre | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:82:13:82:16 | ...; |
|
||||
| pre | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| pre | Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:16 | ...; |
|
||||
| pre | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:86:9:86:10 | enter M7 |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:91:9:98:9 | {...} |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:93:17:93:20 | ...; |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:95:17:95:26 | ...; |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:97:17:97:20 | ...; |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:99:16:99:16 | access to local variable x |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:91:9:98:9 | {...} |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:93:17:93:20 | ...; |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:95:17:95:26 | ...; |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:97:17:97:20 | ...; |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:99:16:99:16 | access to local variable x |
|
||||
| pre | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:91:9:98:9 | {...} |
|
||||
| pre | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:93:17:93:20 | ...; |
|
||||
| pre | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| pre | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:95:17:95:26 | ...; |
|
||||
| pre | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| pre | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:97:17:97:20 | ...; |
|
||||
| pre | Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:20 | ...; |
|
||||
| pre | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| pre | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:95:17:95:26 | ...; |
|
||||
| pre | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| pre | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:97:17:97:20 | ...; |
|
||||
| pre | Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:26 | ...; |
|
||||
| pre | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| pre | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:97:17:97:20 | ...; |
|
||||
| pre | Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:20 | ...; |
|
||||
| pre | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x |
|
||||
| pre | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | enter M8 |
|
||||
| pre | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; |
|
||||
| pre | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... |
|
||||
| pre | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| pre | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| pre | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| pre | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; |
|
||||
| pre | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| pre | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... |
|
||||
| pre | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| pre | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| pre | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| pre | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| pre | ExitMethods.cs:6:10:6:11 | enter M1 | ExitMethods.cs:6:10:6:11 | enter M1 |
|
||||
| pre | ExitMethods.cs:12:10:12:11 | enter M2 | ExitMethods.cs:12:10:12:11 | enter M2 |
|
||||
| pre | ExitMethods.cs:18:10:18:11 | enter M3 | ExitMethods.cs:18:10:18:11 | enter M3 |
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
| b2 (line 22): false | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| b2 (line 22): false | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 |
|
||||
| b2 (line 22): true | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x |
|
||||
| b2 (line 22): true | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ |
|
||||
| b2 (line 22): true | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| b2 (line 22): true | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... |
|
||||
| b2 (line 22): true | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 |
|
||||
| b2 (line 39): false | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| b2 (line 39): false | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 |
|
||||
| b2 (line 39): true | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x |
|
||||
| b2 (line 39): true | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ |
|
||||
| b2 (line 39): true | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| b2 (line 39): true | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... |
|
||||
| b2 (line 39): true | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 |
|
||||
| b (line 11): false | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... |
|
||||
| b (line 11): false | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x |
|
||||
| b (line 11): false | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... |
|
||||
| b (line 11): false | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 |
|
||||
| b (line 11): false | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| b (line 11): false | Conditions.cs:17:17:17:18 | [b (line 11): false] !... |
|
||||
| b (line 11): false | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b |
|
||||
| b (line 11): true | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x |
|
||||
| b (line 11): true | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ |
|
||||
| b (line 11): true | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; |
|
||||
| b (line 11): true | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... |
|
||||
| b (line 11): true | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x |
|
||||
| b (line 11): true | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... |
|
||||
| b (line 11): true | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 |
|
||||
| b (line 11): true | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| b (line 11): true | Conditions.cs:17:17:17:18 | [b (line 11): true] !... |
|
||||
| b (line 11): true | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b |
|
||||
| b (line 46): false | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| b (line 46): false | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- |
|
||||
| b (line 46): false | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... |
|
||||
| b (line 46): false | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 |
|
||||
| b (line 46): false | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| b (line 46): false | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... |
|
||||
| b (line 46): false | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b |
|
||||
| b (line 46): true | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x |
|
||||
| b (line 46): true | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- |
|
||||
| b (line 46): true | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... |
|
||||
| b (line 46): true | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 |
|
||||
| b (line 46): true | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| b (line 46): true | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... |
|
||||
| b (line 46): true | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b |
|
||||
| b (line 46): true | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y |
|
||||
| b (line 46): true | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ |
|
||||
| b (line 46): true | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| b (line 57): false | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| b (line 57): false | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- |
|
||||
| b (line 57): false | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... |
|
||||
| b (line 57): false | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 |
|
||||
| b (line 57): false | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| b (line 57): false | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... |
|
||||
| b (line 57): false | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b |
|
||||
| b (line 57): false | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| b (line 57): false | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b |
|
||||
| b (line 57): true | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x |
|
||||
| b (line 57): true | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- |
|
||||
| b (line 57): true | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... |
|
||||
| b (line 57): true | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 |
|
||||
| b (line 57): true | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| b (line 57): true | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... |
|
||||
| b (line 57): true | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b |
|
||||
| b (line 57): true | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y |
|
||||
| b (line 57): true | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ |
|
||||
| b (line 57): true | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| b (line 57): true | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| b (line 57): true | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b |
|
||||
| b (line 102): false | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... |
|
||||
| b (line 102): false | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x |
|
||||
| b (line 102): false | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length |
|
||||
| b (line 102): false | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... |
|
||||
| b (line 102): false | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 |
|
||||
| b (line 102): false | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| b (line 102): false | Conditions.cs:108:17:108:18 | [b (line 102): false] !... |
|
||||
| b (line 102): false | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b |
|
||||
| b (line 102): true | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x |
|
||||
| b (line 102): true | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x |
|
||||
| b (line 102): true | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... |
|
||||
| b (line 102): true | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... |
|
||||
| b (line 102): true | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; |
|
||||
| b (line 102): true | Conditions.cs:106:18:106:19 | [b (line 102): true] "" |
|
||||
| b (line 102): true | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... |
|
||||
| b (line 102): true | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x |
|
||||
| b (line 102): true | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length |
|
||||
| b (line 102): true | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... |
|
||||
| b (line 102): true | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 |
|
||||
| b (line 102): true | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| b (line 102): true | Conditions.cs:108:17:108:18 | [b (line 102): true] !... |
|
||||
| b (line 102): true | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b |
|
||||
| inc (line 3): false | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... |
|
||||
| inc (line 3): false | Conditions.cs:7:13:7:16 | [inc (line 3): false] !... |
|
||||
| inc (line 3): false | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc |
|
||||
| inc (line 3): true | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x |
|
||||
| inc (line 3): true | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ |
|
||||
| inc (line 3): true | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; |
|
||||
| inc (line 3): true | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... |
|
||||
| inc (line 3): true | Conditions.cs:7:13:7:16 | [inc (line 3): true] !... |
|
||||
| inc (line 3): true | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc |
|
||||
@@ -0,0 +1,8 @@
|
||||
import csharp
|
||||
import ControlFlow
|
||||
import Internal
|
||||
import Nodes
|
||||
|
||||
from ElementNode e, BooleanSplit split
|
||||
where split = e.getASplit()
|
||||
select split, e
|
||||
@@ -40,12 +40,12 @@
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:17:41:17:43 | "1" | false |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | false |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} | false |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | true |
|
||||
| CatchInFinally.cs:9:17:9:28 | ... == ... | CatchInFinally.cs:20:13:22:13 | {...} | false |
|
||||
@@ -60,6 +60,64 @@
|
||||
| CatchInFinally.cs:16:21:16:36 | [finally: exception(Exception)] ... == ... | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" | true |
|
||||
| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:14:20:14:20 | 0 | true |
|
||||
| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:16:20:16:20 | 1 | false |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | true |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | false |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | true |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | false |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | false |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | true |
|
||||
| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | true |
|
||||
| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | true |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | true |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | true |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | true |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | false |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | true |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | false |
|
||||
| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; | true |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | true |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | false |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | true |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | true |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | true |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | true |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | true |
|
||||
| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | true |
|
||||
| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | true |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | false |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | false |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | true |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | false |
|
||||
| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | true |
|
||||
| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | false |
|
||||
| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | true |
|
||||
| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | false |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | false |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | false |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | true |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | true |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | false |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | true |
|
||||
| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:77:17:77:20 | ...; | true |
|
||||
| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:79:17:79:26 | ...; | true |
|
||||
| Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:82:13:82:16 | ...; | true |
|
||||
| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:93:17:93:20 | ...; | true |
|
||||
| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:95:17:95:26 | ...; | true |
|
||||
| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:97:17:97:20 | ...; | true |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | true |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | false |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | false |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | true |
|
||||
| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | true |
|
||||
| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | true |
|
||||
| ExitMethods.cs:54:13:54:13 | access to parameter b | ExitMethods.cs:55:19:55:33 | object creation of type Exception | true |
|
||||
| ExitMethods.cs:60:13:60:13 | access to parameter b | ExitMethods.cs:61:19:61:33 | object creation of type Exception | true |
|
||||
| ExitMethods.cs:60:13:60:13 | access to parameter b | ExitMethods.cs:63:41:63:43 | "b" | false |
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
| 5 | 13 | Conditions.cs:5:13:5:15 | access to parameter inc | false | 7 | 9 | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... |
|
||||
| 5 | 13 | Conditions.cs:5:13:5:15 | access to parameter inc | true | 6 | 13 | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; |
|
||||
| 5 | 25 | NullCoalescing.cs:5:25:5:25 | access to parameter b | false | 5 | 43 | NullCoalescing.cs:5:43:5:43 | 1 |
|
||||
| 5 | 25 | NullCoalescing.cs:5:25:5:25 | access to parameter b | true | 5 | 39 | NullCoalescing.cs:5:39:5:39 | 0 |
|
||||
| 5 | 30 | NullCoalescing.cs:5:30:5:34 | false | false | 5 | 43 | NullCoalescing.cs:5:43:5:43 | 1 |
|
||||
| 7 | 13 | TypeAccesses.cs:7:13:7:22 | ... is ... | false | 8 | 9 | TypeAccesses.cs:8:9:8:28 | ... ...; |
|
||||
| 7 | 13 | TypeAccesses.cs:7:13:7:22 | ... is ... | true | 7 | 25 | TypeAccesses.cs:7:25:7:25 | ; |
|
||||
| 7 | 14 | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | false | 8 | 13 | Conditions.cs:8:13:8:16 | ...; |
|
||||
| 7 | 14 | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | true | 3 | 10 | Conditions.cs:3:10:3:19 | exit IncrOrDecr |
|
||||
| 8 | 13 | Patterns.cs:8:13:8:23 | ... is ... | false | 12 | 14 | Patterns.cs:12:14:18:9 | if (...) ... |
|
||||
| 8 | 13 | Patterns.cs:8:13:8:23 | ... is ... | true | 9 | 9 | Patterns.cs:9:9:11:9 | {...} |
|
||||
| 9 | 17 | CatchInFinally.cs:9:17:9:28 | ... == ... | false | 13 | 9 | CatchInFinally.cs:13:9:27:9 | {...} |
|
||||
@@ -23,28 +27,36 @@
|
||||
| 12 | 18 | Patterns.cs:12:18:12:31 | ... is ... | true | 13 | 9 | Patterns.cs:13:9:15:9 | {...} |
|
||||
| 13 | 13 | ConditionalAccess.cs:13:13:13:25 | ... > ... | false | 16 | 20 | ConditionalAccess.cs:16:20:16:20 | 1 |
|
||||
| 13 | 13 | ConditionalAccess.cs:13:13:13:25 | ... > ... | true | 14 | 20 | ConditionalAccess.cs:14:20:14:20 | 0 |
|
||||
| 14 | 13 | Conditions.cs:14:13:14:13 | access to parameter b | false | 16 | 9 | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... |
|
||||
| 14 | 13 | Conditions.cs:14:13:14:13 | access to parameter b | true | 15 | 13 | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; |
|
||||
| 14 | 16 | cflow.cs:14:16:14:20 | ... > ... | false | 19 | 9 | cflow.cs:19:9:22:25 | do ... while (...); |
|
||||
| 14 | 16 | cflow.cs:14:16:14:20 | ... > ... | true | 15 | 9 | cflow.cs:15:9:17:9 | {...} |
|
||||
| 15 | 17 | BreakInTry.cs:15:17:15:28 | ... == ... | false | 3 | 10 | BreakInTry.cs:3:10:3:11 | exit M1 |
|
||||
| 15 | 17 | BreakInTry.cs:15:17:15:28 | ... == ... | true | 16 | 17 | BreakInTry.cs:16:17:16:17 | ; |
|
||||
| 16 | 13 | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | false | 19 | 16 | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| 16 | 13 | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | true | 17 | 13 | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| 16 | 13 | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | false | 19 | 16 | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| 16 | 13 | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | true | 17 | 13 | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| 16 | 18 | Patterns.cs:16:18:16:28 | ... is ... | false | 20 | 9 | Patterns.cs:20:9:38:9 | switch (...) {...} |
|
||||
| 16 | 18 | Patterns.cs:16:18:16:28 | ... is ... | true | 17 | 9 | Patterns.cs:17:9:18:9 | {...} |
|
||||
| 16 | 21 | CatchInFinally.cs:16:21:16:36 | ... == ... | false | 5 | 10 | CatchInFinally.cs:5:10:5:11 | exit M1 |
|
||||
| 16 | 21 | CatchInFinally.cs:16:21:16:36 | ... == ... | true | 17 | 41 | CatchInFinally.cs:17:41:17:43 | "1" |
|
||||
| 16 | 21 | CatchInFinally.cs:16:21:16:36 | [finally: exception(ArgumentNullException)] ... == ... | true | 17 | 41 | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| 16 | 21 | CatchInFinally.cs:16:21:16:36 | [finally: exception(Exception)] ... == ... | true | 17 | 41 | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| 17 | 18 | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | false | 18 | 17 | Conditions.cs:18:17:18:20 | ...; |
|
||||
| 17 | 18 | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | true | 19 | 16 | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: Exception] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: Exception] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | false | 23 | 13 | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} |
|
||||
| 19 | 39 | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | true | 20 | 13 | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| 21 | 21 | Switch.cs:21:21:21:29 | ... == ... | false | 23 | 27 | Switch.cs:23:27:23:27 | 0 |
|
||||
| 21 | 21 | Switch.cs:21:21:21:29 | ... == ... | true | 22 | 21 | Switch.cs:22:21:22:27 | return ...; |
|
||||
| 22 | 18 | cflow.cs:22:18:22:23 | ... < ... | false | 24 | 9 | cflow.cs:24:9:34:9 | for (...;...;...) ... |
|
||||
@@ -57,14 +69,22 @@
|
||||
| 24 | 32 | Switch.cs:24:32:24:43 | ... > ... | true | 24 | 48 | Switch.cs:24:48:24:48 | access to local variable s |
|
||||
| 24 | 48 | Switch.cs:24:48:24:55 | ... != ... | false | 27 | 13 | Switch.cs:27:13:27:39 | case Double d: |
|
||||
| 24 | 48 | Switch.cs:24:48:24:55 | ... != ... | true | 25 | 17 | Switch.cs:25:17:25:37 | ...; |
|
||||
| 25 | 13 | Conditions.cs:25:13:25:14 | access to parameter b1 | false | 28 | 9 | Conditions.cs:28:9:29:16 | if (...) ... |
|
||||
| 25 | 13 | Conditions.cs:25:13:25:14 | access to parameter b1 | true | 26 | 13 | Conditions.cs:26:13:27:20 | if (...) ... |
|
||||
| 25 | 20 | VarDecls.cs:25:20:25:20 | access to parameter b | false | 25 | 28 | VarDecls.cs:25:28:25:28 | access to local variable y |
|
||||
| 25 | 20 | VarDecls.cs:25:20:25:20 | access to parameter b | true | 25 | 24 | VarDecls.cs:25:24:25:24 | access to local variable x |
|
||||
| 26 | 17 | Conditions.cs:26:17:26:18 | access to parameter b2 | false | 28 | 9 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| 26 | 17 | Conditions.cs:26:17:26:18 | access to parameter b2 | true | 27 | 17 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| 26 | 17 | cflow.cs:26:17:26:26 | ... == ... | false | 28 | 18 | cflow.cs:28:18:33:37 | if (...) ... |
|
||||
| 26 | 17 | cflow.cs:26:17:26:26 | ... == ... | true | 26 | 31 | cflow.cs:26:31:26:31 | access to local variable i |
|
||||
| 26 | 21 | BreakInTry.cs:26:21:26:31 | ... == ... | false | 30 | 13 | BreakInTry.cs:30:13:33:13 | {...} |
|
||||
| 26 | 21 | BreakInTry.cs:26:21:26:31 | ... == ... | true | 27 | 21 | BreakInTry.cs:27:21:27:26 | break; |
|
||||
| 26 | 31 | cflow.cs:26:31:26:40 | ... == ... | false | 28 | 18 | cflow.cs:28:18:33:37 | if (...) ... |
|
||||
| 26 | 31 | cflow.cs:26:31:26:40 | ... == ... | true | 27 | 17 | cflow.cs:27:17:27:46 | ...; |
|
||||
| 28 | 13 | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | false | 30 | 16 | Conditions.cs:30:16:30:16 | access to local variable x |
|
||||
| 28 | 13 | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | true | 29 | 13 | Conditions.cs:29:13:29:16 | ...; |
|
||||
| 28 | 13 | Conditions.cs:28:13:28:14 | access to parameter b2 | false | 30 | 16 | Conditions.cs:30:16:30:16 | access to local variable x |
|
||||
| 28 | 13 | Conditions.cs:28:13:28:14 | access to parameter b2 | true | 29 | 13 | Conditions.cs:29:13:29:16 | ...; |
|
||||
| 28 | 22 | cflow.cs:28:22:28:31 | ... == ... | false | 30 | 18 | cflow.cs:30:18:33:37 | if (...) ... |
|
||||
| 28 | 22 | cflow.cs:28:22:28:31 | ... == ... | true | 29 | 17 | cflow.cs:29:17:29:42 | ...; |
|
||||
| 30 | 22 | cflow.cs:30:22:30:31 | ... == ... | false | 33 | 17 | cflow.cs:33:17:33:37 | ...; |
|
||||
@@ -72,22 +92,52 @@
|
||||
| 31 | 21 | BreakInTry.cs:31:21:31:32 | ... == ... | false | 22 | 9 | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... |
|
||||
| 31 | 21 | BreakInTry.cs:31:21:31:32 | ... == ... | true | 32 | 21 | BreakInTry.cs:32:21:32:21 | ; |
|
||||
| 31 | 21 | BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | true | 32 | 21 | BreakInTry.cs:32:21:32:21 | [finally: break] ; |
|
||||
| 37 | 13 | Conditions.cs:37:13:37:14 | access to parameter b1 | false | 39 | 9 | Conditions.cs:39:9:40:16 | if (...) ... |
|
||||
| 37 | 13 | Conditions.cs:37:13:37:14 | access to parameter b1 | true | 38 | 13 | Conditions.cs:38:13:38:20 | ...; |
|
||||
| 39 | 13 | Conditions.cs:39:13:39:14 | access to local variable b2 | false | 41 | 9 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| 39 | 13 | Conditions.cs:39:13:39:14 | access to local variable b2 | true | 40 | 13 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| 41 | 13 | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | false | 43 | 16 | Conditions.cs:43:16:43:16 | access to local variable x |
|
||||
| 41 | 13 | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | true | 42 | 13 | Conditions.cs:42:13:42:16 | ...; |
|
||||
| 42 | 17 | BreakInTry.cs:42:17:42:28 | ... == ... | false | 46 | 9 | BreakInTry.cs:46:9:52:9 | {...} |
|
||||
| 42 | 17 | BreakInTry.cs:42:17:42:28 | ... == ... | true | 43 | 17 | BreakInTry.cs:43:17:43:23 | return ...; |
|
||||
| 49 | 16 | Conditions.cs:49:16:49:22 | ... > ... | false | 54 | 16 | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| 49 | 16 | Conditions.cs:49:16:49:22 | ... > ... | true | 50 | 9 | Conditions.cs:50:9:53:9 | {...} |
|
||||
| 49 | 16 | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | false | 54 | 16 | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| 49 | 16 | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | true | 50 | 9 | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| 49 | 16 | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | false | 54 | 16 | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| 49 | 16 | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | true | 50 | 9 | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| 49 | 21 | BreakInTry.cs:49:21:49:31 | ... == ... | false | 47 | 13 | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... |
|
||||
| 49 | 21 | BreakInTry.cs:49:21:49:31 | ... == ... | true | 50 | 21 | BreakInTry.cs:50:21:50:26 | break; |
|
||||
| 49 | 21 | BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | false | 47 | 13 | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... |
|
||||
| 49 | 21 | BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | true | 50 | 21 | BreakInTry.cs:50:21:50:26 | [finally: return] break; |
|
||||
| 50 | 30 | Switch.cs:50:30:50:38 | ... != ... | false | 44 | 10 | Switch.cs:44:10:44:11 | exit M4 |
|
||||
| 50 | 30 | Switch.cs:50:30:50:38 | ... != ... | true | 51 | 17 | Switch.cs:51:17:51:22 | break; |
|
||||
| 51 | 17 | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | false | 49 | 16 | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| 51 | 17 | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | true | 52 | 17 | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| 51 | 17 | Conditions.cs:51:17:51:17 | access to parameter b | false | 49 | 16 | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| 51 | 17 | Conditions.cs:51:17:51:17 | access to parameter b | true | 52 | 17 | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| 54 | 13 | ExitMethods.cs:54:13:54:13 | access to parameter b | false | 52 | 17 | ExitMethods.cs:52:17:52:26 | exit ErrorMaybe |
|
||||
| 54 | 13 | ExitMethods.cs:54:13:54:13 | access to parameter b | true | 55 | 19 | ExitMethods.cs:55:19:55:33 | object creation of type Exception |
|
||||
| 60 | 13 | ExitMethods.cs:60:13:60:13 | access to parameter b | false | 63 | 41 | ExitMethods.cs:63:41:63:43 | "b" |
|
||||
| 60 | 13 | ExitMethods.cs:60:13:60:13 | access to parameter b | true | 61 | 19 | ExitMethods.cs:61:19:61:33 | object creation of type Exception |
|
||||
| 60 | 16 | Conditions.cs:60:16:60:22 | ... > ... | false | 65 | 9 | Conditions.cs:65:9:66:16 | if (...) ... |
|
||||
| 60 | 16 | Conditions.cs:60:16:60:22 | ... > ... | true | 61 | 9 | Conditions.cs:61:9:64:9 | {...} |
|
||||
| 60 | 16 | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | false | 65 | 9 | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| 60 | 16 | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | true | 61 | 9 | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| 60 | 16 | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | false | 65 | 9 | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| 60 | 16 | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | true | 61 | 9 | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| 60 | 17 | BreakInTry.cs:60:17:60:28 | ... == ... | false | 64 | 9 | BreakInTry.cs:64:9:70:9 | {...} |
|
||||
| 60 | 17 | BreakInTry.cs:60:17:60:28 | ... == ... | true | 61 | 17 | BreakInTry.cs:61:17:61:23 | return ...; |
|
||||
| 62 | 17 | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | false | 60 | 16 | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| 62 | 17 | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | true | 63 | 17 | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| 62 | 17 | Conditions.cs:62:17:62:17 | access to parameter b | false | 60 | 16 | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| 62 | 17 | Conditions.cs:62:17:62:17 | access to parameter b | true | 63 | 17 | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| 63 | 23 | cflow.cs:63:23:63:33 | ... == ... | false | 64 | 27 | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| 63 | 23 | cflow.cs:63:23:63:33 | ... == ... | true | 65 | 17 | cflow.cs:65:17:65:22 | break; |
|
||||
| 65 | 13 | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | false | 67 | 16 | Conditions.cs:67:16:67:16 | access to local variable y |
|
||||
| 65 | 13 | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | true | 66 | 13 | Conditions.cs:66:13:66:16 | ...; |
|
||||
| 65 | 13 | Conditions.cs:65:13:65:13 | access to parameter b | false | 67 | 16 | Conditions.cs:67:16:67:16 | access to local variable y |
|
||||
| 65 | 13 | Conditions.cs:65:13:65:13 | access to parameter b | true | 66 | 13 | Conditions.cs:66:13:66:16 | ...; |
|
||||
| 67 | 21 | BreakInTry.cs:67:21:67:31 | ... == ... | false | 65 | 13 | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... |
|
||||
| 67 | 21 | BreakInTry.cs:67:21:67:31 | ... == ... | true | 68 | 21 | BreakInTry.cs:68:21:68:26 | break; |
|
||||
| 67 | 21 | BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | false | 65 | 13 | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... |
|
||||
@@ -96,8 +146,14 @@
|
||||
| 72 | 13 | cflow.cs:72:13:72:21 | ... == ... | true | 73 | 13 | cflow.cs:73:13:73:19 | return ...; |
|
||||
| 74 | 13 | cflow.cs:74:13:74:24 | ... > ... | false | 79 | 9 | cflow.cs:79:9:81:9 | {...} |
|
||||
| 74 | 13 | cflow.cs:74:13:74:24 | ... > ... | true | 75 | 9 | cflow.cs:75:9:77:9 | {...} |
|
||||
| 76 | 17 | Conditions.cs:76:17:76:17 | access to local variable b | false | 78 | 13 | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| 76 | 17 | Conditions.cs:76:17:76:17 | access to local variable b | true | 77 | 17 | Conditions.cs:77:17:77:20 | ...; |
|
||||
| 78 | 16 | ExitMethods.cs:78:16:78:25 | ... != ... | false | 78 | 69 | ExitMethods.cs:78:69:78:75 | "input" |
|
||||
| 78 | 16 | ExitMethods.cs:78:16:78:25 | ... != ... | true | 78 | 29 | ExitMethods.cs:78:29:78:29 | 1 |
|
||||
| 78 | 17 | Conditions.cs:78:17:78:21 | ... > ... | false | 74 | 9 | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... |
|
||||
| 78 | 17 | Conditions.cs:78:17:78:21 | ... > ... | true | 79 | 17 | Conditions.cs:79:17:79:26 | ...; |
|
||||
| 81 | 12 | Conditions.cs:81:12:81:12 | access to local variable b | false | 83 | 16 | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| 81 | 12 | Conditions.cs:81:12:81:12 | access to local variable b | true | 82 | 13 | Conditions.cs:82:13:82:16 | ...; |
|
||||
| 83 | 16 | ExitMethods.cs:83:16:83:30 | call to method Contains | false | 83 | 38 | ExitMethods.cs:83:38:83:38 | 1 |
|
||||
| 83 | 16 | ExitMethods.cs:83:16:83:30 | call to method Contains | true | 83 | 34 | ExitMethods.cs:83:34:83:34 | 0 |
|
||||
| 84 | 19 | Switch.cs:84:19:84:23 | ... > ... | false | 86 | 22 | Switch.cs:86:22:86:25 | true |
|
||||
@@ -108,14 +164,28 @@
|
||||
| 86 | 26 | cflow.cs:86:26:86:37 | ... > ... | true | 87 | 13 | cflow.cs:87:13:87:33 | ...; |
|
||||
| 92 | 13 | cflow.cs:92:13:92:27 | call to method Equals | false | 94 | 9 | cflow.cs:94:9:94:29 | ...; |
|
||||
| 92 | 13 | cflow.cs:92:13:92:27 | call to method Equals | true | 93 | 45 | cflow.cs:93:45:93:47 | "s" |
|
||||
| 92 | 17 | Conditions.cs:92:17:92:17 | access to local variable b | false | 94 | 13 | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| 92 | 17 | Conditions.cs:92:17:92:17 | access to local variable b | true | 93 | 17 | Conditions.cs:93:17:93:20 | ...; |
|
||||
| 94 | 17 | Conditions.cs:94:17:94:21 | ... > ... | false | 96 | 13 | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| 94 | 17 | Conditions.cs:94:17:94:21 | ... > ... | true | 95 | 17 | Conditions.cs:95:17:95:26 | ...; |
|
||||
| 96 | 13 | cflow.cs:96:13:96:25 | ... != ... | false | 99 | 9 | cflow.cs:99:9:100:42 | if (...) ... |
|
||||
| 96 | 13 | cflow.cs:96:13:96:25 | ... != ... | true | 97 | 13 | cflow.cs:97:13:97:55 | ...; |
|
||||
| 96 | 17 | Conditions.cs:96:17:96:17 | access to local variable b | false | 90 | 9 | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... |
|
||||
| 96 | 17 | Conditions.cs:96:17:96:17 | access to local variable b | true | 97 | 17 | Conditions.cs:97:17:97:20 | ...; |
|
||||
| 99 | 13 | cflow.cs:99:13:99:25 | ... != ... | false | 102 | 9 | cflow.cs:102:9:103:36 | if (...) ... |
|
||||
| 99 | 13 | cflow.cs:99:13:99:25 | ... != ... | true | 100 | 13 | cflow.cs:100:13:100:42 | ...; |
|
||||
| 102 | 13 | cflow.cs:102:13:102:29 | ... != ... | false | 90 | 18 | cflow.cs:90:18:90:19 | exit M3 |
|
||||
| 102 | 13 | cflow.cs:102:13:102:29 | ... != ... | true | 103 | 13 | cflow.cs:103:13:103:36 | ...; |
|
||||
| 105 | 13 | Conditions.cs:105:13:105:13 | access to parameter b | false | 107 | 9 | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... |
|
||||
| 105 | 13 | Conditions.cs:105:13:105:13 | access to parameter b | true | 106 | 13 | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; |
|
||||
| 107 | 13 | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | false | 110 | 16 | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| 107 | 13 | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | true | 108 | 13 | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| 107 | 13 | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | false | 110 | 16 | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| 107 | 13 | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | true | 108 | 13 | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| 108 | 13 | cflow.cs:108:13:108:21 | ... != ... | false | 116 | 9 | cflow.cs:116:9:116:29 | ...; |
|
||||
| 108 | 13 | cflow.cs:108:13:108:21 | ... != ... | true | 109 | 9 | cflow.cs:109:9:115:9 | {...} |
|
||||
| 108 | 18 | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | false | 109 | 17 | Conditions.cs:109:17:109:24 | ...; |
|
||||
| 108 | 18 | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | true | 110 | 16 | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| 110 | 20 | cflow.cs:110:20:110:23 | true | true | 111 | 13 | cflow.cs:111:13:113:13 | {...} |
|
||||
| 117 | 25 | Switch.cs:117:25:117:32 | ... == ... | false | 118 | 13 | Switch.cs:118:13:118:33 | case ...: |
|
||||
| 117 | 25 | Switch.cs:117:25:117:32 | ... == ... | true | 117 | 43 | Switch.cs:117:43:117:43 | 1 |
|
||||
|
||||
112
csharp/ql/test/library-tests/controlflow/graph/Conditions.cs
Normal file
112
csharp/ql/test/library-tests/controlflow/graph/Conditions.cs
Normal file
@@ -0,0 +1,112 @@
|
||||
class Conditions
|
||||
{
|
||||
void IncrOrDecr(bool inc, ref int x)
|
||||
{
|
||||
if (inc)
|
||||
x++;
|
||||
if (!inc)
|
||||
x--;
|
||||
}
|
||||
|
||||
int M1(bool b)
|
||||
{
|
||||
var x = 0;
|
||||
if (b)
|
||||
x++;
|
||||
if (x > 0)
|
||||
if (!b)
|
||||
x--;
|
||||
return x;
|
||||
}
|
||||
|
||||
int M2(bool b1, bool b2)
|
||||
{
|
||||
var x = 0;
|
||||
if (b1)
|
||||
if (b2)
|
||||
x++;
|
||||
if (b2)
|
||||
x++;
|
||||
return x;
|
||||
}
|
||||
|
||||
int M3(bool b1)
|
||||
{
|
||||
var x = 0;
|
||||
var b2 = false;
|
||||
if (b1)
|
||||
b2 = b1;
|
||||
if (b2)
|
||||
x++;
|
||||
if (b2)
|
||||
x++;
|
||||
return x;
|
||||
}
|
||||
|
||||
int M4(bool b, int x)
|
||||
{
|
||||
var y = 0;
|
||||
while (x-- > 0)
|
||||
{
|
||||
if (b)
|
||||
y++;
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
int M5(bool b, int x)
|
||||
{
|
||||
var y = 0;
|
||||
while (x-- > 0)
|
||||
{
|
||||
if (b)
|
||||
y++;
|
||||
}
|
||||
if (b)
|
||||
y++;
|
||||
return y;
|
||||
}
|
||||
|
||||
int M6(string[] ss)
|
||||
{
|
||||
var b = ss.Length > 0;
|
||||
var x = 0;
|
||||
foreach (var _ in ss)
|
||||
{
|
||||
if (b)
|
||||
x++;
|
||||
if (x > 0)
|
||||
b = false;
|
||||
}
|
||||
if(b)
|
||||
x++;
|
||||
return x;
|
||||
}
|
||||
|
||||
int M7(string[] ss)
|
||||
{
|
||||
var b = ss.Length > 0;
|
||||
var x = 0;
|
||||
foreach (var _ in ss)
|
||||
{
|
||||
if (b)
|
||||
x++;
|
||||
if (x > 0)
|
||||
b = false;
|
||||
if (b)
|
||||
x++;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
string M8(bool b)
|
||||
{
|
||||
var x = b.ToString();
|
||||
if (b)
|
||||
x += "";
|
||||
if (x.Length > 0)
|
||||
if (!b)
|
||||
x += "";
|
||||
return x;
|
||||
}
|
||||
}
|
||||
@@ -197,42 +197,42 @@
|
||||
| post | CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| post | CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| post | CatchInFinally.cs:17:27:17:44 | object creation of type Exception | CatchInFinally.cs:17:41:17:43 | "1" |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(ArgumentNullException)] throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:17:27:17:44 | object creation of type Exception |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(ArgumentNullException)] Exception e | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(Exception)] Exception e | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(ArgumentNullException)] throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; |
|
||||
| post | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [exception: Exception] Exception e | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] Exception e | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(Exception)] Exception e | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException] Exception e | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(ArgumentNullException)] access to local variable e | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(ArgumentNullException)] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(Exception)] access to local variable e | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(Exception)] Exception e |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: Exception] Exception e | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [exception: Exception] access to local variable e | CatchInFinally.cs:19:30:19:30 | [exception: Exception] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to local variable e | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(Exception)] access to local variable e | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(Exception)] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(ArgumentNullException)] access to property Message | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(ArgumentNullException)] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(Exception)] access to property Message | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(Exception)] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: Exception] access to local variable e | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: Exception] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [exception: Exception] access to property Message | CatchInFinally.cs:19:39:19:39 | [exception: Exception] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to property Message | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(Exception)] access to property Message | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(Exception)] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] "1" |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(Exception)] "1" |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: Exception] access to property Message | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: Exception] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [exception: Exception] ... == ... | CatchInFinally.cs:19:52:19:54 | [exception: Exception] "1" |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] "1" |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(Exception)] "1" |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException] ... == ... | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException] "1" |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(ArgumentNullException)] access to property Message |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(Exception)] "1" | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(Exception)] access to property Message |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: Exception] "1" |
|
||||
| post | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: NullReferenceException] "1" |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [exception: Exception] "1" | CatchInFinally.cs:19:39:19:47 | [exception: Exception] access to property Message |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to property Message |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(Exception)] "1" | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(Exception)] access to property Message |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException] access to property Message |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: Exception] "1" | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: Exception] access to property Message |
|
||||
| post | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message |
|
||||
| post | CatchInFinally.cs:21:17:21:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | CatchInFinally.cs:21:35:21:41 | [finally: exception(ArgumentNullException)] access to array element |
|
||||
| post | CatchInFinally.cs:21:17:21:42 | [finally: exception(Exception)] call to method WriteLine | CatchInFinally.cs:21:35:21:41 | [finally: exception(Exception)] access to array element |
|
||||
| post | CatchInFinally.cs:21:17:21:42 | call to method WriteLine | CatchInFinally.cs:21:35:21:41 | access to array element |
|
||||
@@ -344,6 +344,283 @@
|
||||
| post | ConditionalAccess.cs:31:70:31:83 | ... + ... | ConditionalAccess.cs:31:82:31:83 | access to parameter s2 |
|
||||
| post | ConditionalAccess.cs:31:75:31:78 | ", " | ConditionalAccess.cs:31:70:31:71 | access to parameter s1 |
|
||||
| post | ConditionalAccess.cs:31:82:31:83 | access to parameter s2 | ConditionalAccess.cs:31:70:31:78 | ... + ... |
|
||||
| post | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc |
|
||||
| post | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:8:13:8:15 | ...-- |
|
||||
| post | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:3:10:3:19 | enter IncrOrDecr |
|
||||
| post | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:4:5:9:5 | {...} |
|
||||
| post | Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:9:6:16 | if (...) ... |
|
||||
| post | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; |
|
||||
| post | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x |
|
||||
| post | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ |
|
||||
| post | Conditions.cs:7:13:7:16 | [inc (line 3): false] !... | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... |
|
||||
| post | Conditions.cs:7:13:7:16 | [inc (line 3): true] !... | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... |
|
||||
| post | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | Conditions.cs:7:13:7:16 | [inc (line 3): false] !... |
|
||||
| post | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | Conditions.cs:7:13:7:16 | [inc (line 3): true] !... |
|
||||
| post | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:16 | ...; |
|
||||
| post | Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:13 | access to parameter x |
|
||||
| post | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc |
|
||||
| post | Conditions.cs:11:9:11:10 | exit M1 | Conditions.cs:19:9:19:17 | return ...; |
|
||||
| post | Conditions.cs:12:5:20:5 | {...} | Conditions.cs:11:9:11:10 | enter M1 |
|
||||
| post | Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:12:5:20:5 | {...} |
|
||||
| post | Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:9:13:18 | ... ...; |
|
||||
| post | Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:17:13:17 | 0 |
|
||||
| post | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:13 | access to local variable x |
|
||||
| post | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:13:13:13:17 | Int32 x = ... |
|
||||
| post | Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:9:15:16 | if (...) ... |
|
||||
| post | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; |
|
||||
| post | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x |
|
||||
| post | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ |
|
||||
| post | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... |
|
||||
| post | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... |
|
||||
| post | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 |
|
||||
| post | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 |
|
||||
| post | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x |
|
||||
| post | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x |
|
||||
| post | Conditions.cs:17:17:17:18 | [b (line 11): false] !... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| post | Conditions.cs:17:17:17:18 | [b (line 11): true] !... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| post | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | Conditions.cs:17:17:17:18 | [b (line 11): false] !... |
|
||||
| post | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | Conditions.cs:17:17:17:18 | [b (line 11): true] !... |
|
||||
| post | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:20 | ...; |
|
||||
| post | Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:17 | access to local variable x |
|
||||
| post | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b |
|
||||
| post | Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b |
|
||||
| post | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- |
|
||||
| post | Conditions.cs:22:9:22:10 | exit M2 | Conditions.cs:30:9:30:17 | return ...; |
|
||||
| post | Conditions.cs:23:5:31:5 | {...} | Conditions.cs:22:9:22:10 | enter M2 |
|
||||
| post | Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:23:5:31:5 | {...} |
|
||||
| post | Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:9:24:18 | ... ...; |
|
||||
| post | Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:17:24:17 | 0 |
|
||||
| post | Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:13:24:13 | access to local variable x |
|
||||
| post | Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:24:13:24:17 | Int32 x = ... |
|
||||
| post | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:9:27:20 | if (...) ... |
|
||||
| post | Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:13:27:20 | if (...) ... |
|
||||
| post | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| post | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x |
|
||||
| post | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ |
|
||||
| post | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| post | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... |
|
||||
| post | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:9:29:16 | if (...) ... |
|
||||
| post | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:16 | ...; |
|
||||
| post | Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:29:13:29:13 | access to local variable x |
|
||||
| post | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 |
|
||||
| post | Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:30:16:30:16 | access to local variable x |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:13:28:14 | access to parameter b2 |
|
||||
| post | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ |
|
||||
| post | Conditions.cs:33:9:33:10 | exit M3 | Conditions.cs:43:9:43:17 | return ...; |
|
||||
| post | Conditions.cs:34:5:44:5 | {...} | Conditions.cs:33:9:33:10 | enter M3 |
|
||||
| post | Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:34:5:44:5 | {...} |
|
||||
| post | Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:9:35:18 | ... ...; |
|
||||
| post | Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:17:35:17 | 0 |
|
||||
| post | Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:13:35:13 | access to local variable x |
|
||||
| post | Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:35:13:35:17 | Int32 x = ... |
|
||||
| post | Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:9:36:23 | ... ...; |
|
||||
| post | Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:18:36:22 | false |
|
||||
| post | Conditions.cs:36:18:36:22 | false | Conditions.cs:36:13:36:14 | access to local variable b2 |
|
||||
| post | Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:36:13:36:22 | Boolean b2 = ... |
|
||||
| post | Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:9:38:20 | if (...) ... |
|
||||
| post | Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:13:38:20 | ...; |
|
||||
| post | Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:18:38:19 | access to parameter b1 |
|
||||
| post | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:14 | access to local variable b2 |
|
||||
| post | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 |
|
||||
| post | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:38:13:38:19 | ... = ... |
|
||||
| post | Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:9:40:16 | if (...) ... |
|
||||
| post | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| post | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x |
|
||||
| post | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ |
|
||||
| post | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| post | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... |
|
||||
| post | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:16 | ...; |
|
||||
| post | Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:42:13:42:13 | access to local variable x |
|
||||
| post | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 |
|
||||
| post | Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:43:16:43:16 | access to local variable x |
|
||||
| post | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 |
|
||||
| post | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ |
|
||||
| post | Conditions.cs:46:9:46:10 | exit M4 | Conditions.cs:54:9:54:17 | return ...; |
|
||||
| post | Conditions.cs:47:5:55:5 | {...} | Conditions.cs:46:9:46:10 | enter M4 |
|
||||
| post | Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:47:5:55:5 | {...} |
|
||||
| post | Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:9:48:18 | ... ...; |
|
||||
| post | Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:17:48:17 | 0 |
|
||||
| post | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:13 | access to local variable y |
|
||||
| post | Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:48:13:48:17 | Int32 y = ... |
|
||||
| post | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b |
|
||||
| post | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ |
|
||||
| post | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:9:53:9 | while (...) ... |
|
||||
| post | Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:16:49:16 | access to parameter x |
|
||||
| post | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| post | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x |
|
||||
| post | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:22:49:22 | 0 |
|
||||
| post | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 |
|
||||
| post | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 |
|
||||
| post | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:18 | ...-- |
|
||||
| post | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- |
|
||||
| post | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- |
|
||||
| post | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| post | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| post | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:50:9:53:9 | {...} |
|
||||
| post | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... |
|
||||
| post | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... |
|
||||
| post | Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:13:52:20 | if (...) ... |
|
||||
| post | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| post | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y |
|
||||
| post | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b |
|
||||
| post | Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:22 | ... > ... |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... |
|
||||
| post | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... |
|
||||
| post | Conditions.cs:57:9:57:10 | exit M5 | Conditions.cs:67:9:67:17 | return ...; |
|
||||
| post | Conditions.cs:58:5:68:5 | {...} | Conditions.cs:57:9:57:10 | enter M5 |
|
||||
| post | Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:58:5:68:5 | {...} |
|
||||
| post | Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:9:59:18 | ... ...; |
|
||||
| post | Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:17:59:17 | 0 |
|
||||
| post | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:13 | access to local variable y |
|
||||
| post | Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:59:13:59:17 | Int32 y = ... |
|
||||
| post | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b |
|
||||
| post | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ |
|
||||
| post | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:9:64:9 | while (...) ... |
|
||||
| post | Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:16:60:16 | access to parameter x |
|
||||
| post | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| post | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x |
|
||||
| post | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:22:60:22 | 0 |
|
||||
| post | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 |
|
||||
| post | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 |
|
||||
| post | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:18 | ...-- |
|
||||
| post | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- |
|
||||
| post | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- |
|
||||
| post | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| post | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| post | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:61:9:64:9 | {...} |
|
||||
| post | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... |
|
||||
| post | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... |
|
||||
| post | Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:13:63:20 | if (...) ... |
|
||||
| post | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| post | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y |
|
||||
| post | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b |
|
||||
| post | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... |
|
||||
| post | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... |
|
||||
| post | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| post | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| post | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:9:66:16 | if (...) ... |
|
||||
| post | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:16 | ...; |
|
||||
| post | Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:66:13:66:13 | access to local variable y |
|
||||
| post | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b |
|
||||
| post | Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:67:16:67:16 | access to local variable y |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:13:65:13 | access to parameter b |
|
||||
| post | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ |
|
||||
| post | Conditions.cs:70:9:70:10 | exit M6 | Conditions.cs:83:9:83:17 | return ...; |
|
||||
| post | Conditions.cs:71:5:84:5 | {...} | Conditions.cs:70:9:70:10 | enter M6 |
|
||||
| post | Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:71:5:84:5 | {...} |
|
||||
| post | Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:9:72:30 | ... ...; |
|
||||
| post | Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:17:72:29 | ... > ... |
|
||||
| post | Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:13:72:13 | access to local variable b |
|
||||
| post | Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:17:72:18 | access to parameter ss |
|
||||
| post | Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:29:72:29 | 0 |
|
||||
| post | Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:17:72:25 | access to property Length |
|
||||
| post | Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:72:13:72:29 | Boolean b = ... |
|
||||
| post | Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:9:73:18 | ... ...; |
|
||||
| post | Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:17:73:17 | 0 |
|
||||
| post | Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:13:73:13 | access to local variable x |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | access to parameter ss |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:78:17:78:21 | ... > ... |
|
||||
| post | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:79:17:79:25 | ... = ... |
|
||||
| post | Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:73:13:73:17 | Int32 x = ... |
|
||||
| post | Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:75:9:80:9 | {...} |
|
||||
| post | Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:13:77:20 | if (...) ... |
|
||||
| post | Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:20 | ...; |
|
||||
| post | Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:77:17:77:17 | access to local variable x |
|
||||
| post | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b |
|
||||
| post | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:77:17:77:19 | ...++ |
|
||||
| post | Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| post | Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:21:78:21 | 0 |
|
||||
| post | Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:17:78:17 | access to local variable x |
|
||||
| post | Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:17:79:26 | ...; |
|
||||
| post | Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:21:79:25 | false |
|
||||
| post | Conditions.cs:79:21:79:25 | false | Conditions.cs:79:17:79:17 | access to local variable b |
|
||||
| post | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... |
|
||||
| post | Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:81:9:82:16 | if (...) ... |
|
||||
| post | Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:16 | ...; |
|
||||
| post | Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:82:13:82:13 | access to local variable x |
|
||||
| post | Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:81:12:81:12 | access to local variable b |
|
||||
| post | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:82:13:82:15 | ...++ |
|
||||
| post | Conditions.cs:86:9:86:10 | exit M7 | Conditions.cs:99:9:99:17 | return ...; |
|
||||
| post | Conditions.cs:87:5:100:5 | {...} | Conditions.cs:86:9:86:10 | enter M7 |
|
||||
| post | Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:87:5:100:5 | {...} |
|
||||
| post | Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:9:88:30 | ... ...; |
|
||||
| post | Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:17:88:29 | ... > ... |
|
||||
| post | Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:13:88:13 | access to local variable b |
|
||||
| post | Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:17:88:18 | access to parameter ss |
|
||||
| post | Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:29:88:29 | 0 |
|
||||
| post | Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:17:88:25 | access to property Length |
|
||||
| post | Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:88:13:88:29 | Boolean b = ... |
|
||||
| post | Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:9:89:18 | ... ...; |
|
||||
| post | Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:17:89:17 | 0 |
|
||||
| post | Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:13:89:13 | access to local variable x |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | access to parameter ss |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:96:17:96:17 | access to local variable b |
|
||||
| post | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:97:17:97:19 | ...++ |
|
||||
| post | Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:89:13:89:17 | Int32 x = ... |
|
||||
| post | Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:91:9:98:9 | {...} |
|
||||
| post | Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:13:93:20 | if (...) ... |
|
||||
| post | Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:20 | ...; |
|
||||
| post | Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:93:17:93:17 | access to local variable x |
|
||||
| post | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b |
|
||||
| post | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:93:17:93:19 | ...++ |
|
||||
| post | Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| post | Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:21:94:21 | 0 |
|
||||
| post | Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:17:94:17 | access to local variable x |
|
||||
| post | Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:17:95:26 | ...; |
|
||||
| post | Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:21:95:25 | false |
|
||||
| post | Conditions.cs:95:21:95:25 | false | Conditions.cs:95:17:95:17 | access to local variable b |
|
||||
| post | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:94:17:94:21 | ... > ... |
|
||||
| post | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:95:17:95:25 | ... = ... |
|
||||
| post | Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| post | Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:20 | ...; |
|
||||
| post | Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:97:17:97:17 | access to local variable x |
|
||||
| post | Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:99:16:99:16 | access to local variable x |
|
||||
| post | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... |
|
||||
| post | Conditions.cs:102:12:102:13 | exit M8 | Conditions.cs:110:9:110:17 | return ...; |
|
||||
| post | Conditions.cs:103:5:111:5 | {...} | Conditions.cs:102:12:102:13 | enter M8 |
|
||||
| post | Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:103:5:111:5 | {...} |
|
||||
| post | Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:9:104:29 | ... ...; |
|
||||
| post | Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:17:104:28 | call to method ToString |
|
||||
| post | Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:13:104:13 | access to local variable x |
|
||||
| post | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:17 | access to parameter b |
|
||||
| post | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:104:13:104:28 | String x = ... |
|
||||
| post | Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:9:106:20 | if (...) ... |
|
||||
| post | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x |
|
||||
| post | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; |
|
||||
| post | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | Conditions.cs:106:18:106:19 | [b (line 102): true] "" |
|
||||
| post | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... |
|
||||
| post | Conditions.cs:106:18:106:19 | [b (line 102): true] "" | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x |
|
||||
| post | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... |
|
||||
| post | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... |
|
||||
| post | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... |
|
||||
| post | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x |
|
||||
| post | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x |
|
||||
| post | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 |
|
||||
| post | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 |
|
||||
| post | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length |
|
||||
| post | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length |
|
||||
| post | Conditions.cs:108:17:108:18 | [b (line 102): false] !... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| post | Conditions.cs:108:17:108:18 | [b (line 102): true] !... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| post | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | Conditions.cs:108:17:108:18 | [b (line 102): false] !... |
|
||||
| post | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | Conditions.cs:108:17:108:18 | [b (line 102): true] !... |
|
||||
| post | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| post | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:24 | ...; |
|
||||
| post | Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:22:109:23 | "" |
|
||||
| post | Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:109:17:109:23 | ... + ... |
|
||||
| post | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b |
|
||||
| post | Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| post | Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b |
|
||||
| post | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:109:17:109:23 | ... = ... |
|
||||
| post | ExitMethods.cs:6:10:6:11 | exit M1 | ExitMethods.cs:9:9:9:15 | return ...; |
|
||||
| post | ExitMethods.cs:7:5:10:5 | {...} | ExitMethods.cs:6:10:6:11 | enter M1 |
|
||||
| post | ExitMethods.cs:8:9:8:24 | call to method ErrorMaybe | ExitMethods.cs:8:20:8:23 | true |
|
||||
@@ -2008,11 +2285,11 @@
|
||||
| pre | CatchInFinally.cs:16:21:16:24 | [finally: exception(Exception)] access to parameter args | CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length |
|
||||
| pre | CatchInFinally.cs:16:21:16:24 | access to parameter args | CatchInFinally.cs:16:21:16:31 | access to property Length |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:16:36:16:36 | [finally: exception(ArgumentNullException)] 1 |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:16:36:16:36 | [finally: exception(Exception)] 1 |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | access to property Length | CatchInFinally.cs:16:36:16:36 | 1 |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} |
|
||||
| pre | CatchInFinally.cs:16:21:16:31 | access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} |
|
||||
@@ -2028,36 +2305,36 @@
|
||||
| pre | CatchInFinally.cs:17:41:17:43 | "1" | CatchInFinally.cs:17:27:17:44 | object creation of type Exception |
|
||||
| pre | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception |
|
||||
| pre | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" | CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(ArgumentNullException)] Exception e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(Exception)] Exception e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: Exception] Exception e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] Exception e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(Exception)] Exception e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException] Exception e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(ArgumentNullException)] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(ArgumentNullException)] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(Exception)] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(Exception)] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: Exception] Exception e |
|
||||
| pre | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [exception: Exception] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: Exception] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(Exception)] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(Exception)] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(ArgumentNullException)] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(ArgumentNullException)] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(Exception)] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(Exception)] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: Exception] Exception e | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: Exception] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [exception: Exception] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: Exception] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(Exception)] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(Exception)] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(ArgumentNullException)] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] "1" |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(Exception)] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(Exception)] "1" |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: Exception] access to local variable e | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: Exception] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [exception: Exception] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: Exception] "1" |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] "1" |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(Exception)] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(Exception)] "1" |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException] "1" |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(Exception)] "1" | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: Exception] access to property Message | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: Exception] "1" |
|
||||
| pre | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: NullReferenceException] "1" |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [exception: Exception] "1" | CatchInFinally.cs:19:39:19:54 | [exception: Exception] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(Exception)] "1" | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: Exception] "1" | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... |
|
||||
| pre | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... |
|
||||
| pre | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | CatchInFinally.cs:21:17:21:43 | [finally: exception(ArgumentNullException)] ...; |
|
||||
| pre | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | CatchInFinally.cs:21:17:21:43 | [finally: exception(Exception)] ...; |
|
||||
| pre | CatchInFinally.cs:20:13:22:13 | {...} | CatchInFinally.cs:21:17:21:43 | ...; |
|
||||
@@ -2169,6 +2446,284 @@
|
||||
| pre | ConditionalAccess.cs:31:70:31:83 | ... + ... | ConditionalAccess.cs:31:26:31:38 | exit CommaJoinWith |
|
||||
| pre | ConditionalAccess.cs:31:75:31:78 | ", " | ConditionalAccess.cs:31:70:31:78 | ... + ... |
|
||||
| pre | ConditionalAccess.cs:31:82:31:83 | access to parameter s2 | ConditionalAccess.cs:31:70:31:83 | ... + ... |
|
||||
| pre | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:4:5:9:5 | {...} |
|
||||
| pre | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:5:9:6:16 | if (...) ... |
|
||||
| pre | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc |
|
||||
| pre | Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; |
|
||||
| pre | Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... |
|
||||
| pre | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ |
|
||||
| pre | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... |
|
||||
| pre | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x |
|
||||
| pre | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:13:7:16 | [inc (line 3): false] !... |
|
||||
| pre | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | Conditions.cs:7:13:7:16 | [inc (line 3): true] !... |
|
||||
| pre | Conditions.cs:7:13:7:16 | [inc (line 3): false] !... | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc |
|
||||
| pre | Conditions.cs:7:13:7:16 | [inc (line 3): true] !... | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc |
|
||||
| pre | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | Conditions.cs:8:13:8:16 | ...; |
|
||||
| pre | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:15 | ...-- |
|
||||
| pre | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:13 | access to parameter x |
|
||||
| pre | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:12:5:20:5 | {...} |
|
||||
| pre | Conditions.cs:12:5:20:5 | {...} | Conditions.cs:13:9:13:18 | ... ...; |
|
||||
| pre | Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:13:13:13 | access to local variable x |
|
||||
| pre | Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:17:13:17 | 0 |
|
||||
| pre | Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:14:9:15:16 | if (...) ... |
|
||||
| pre | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:17 | Int32 x = ... |
|
||||
| pre | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b |
|
||||
| pre | Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; |
|
||||
| pre | Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... |
|
||||
| pre | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ |
|
||||
| pre | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... |
|
||||
| pre | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x |
|
||||
| pre | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x |
|
||||
| pre | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x |
|
||||
| pre | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 |
|
||||
| pre | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 |
|
||||
| pre | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... |
|
||||
| pre | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... |
|
||||
| pre | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... |
|
||||
| pre | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... |
|
||||
| pre | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:17:17:18 | [b (line 11): false] !... |
|
||||
| pre | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:17:17:18 | [b (line 11): true] !... |
|
||||
| pre | Conditions.cs:17:17:17:18 | [b (line 11): false] !... | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b |
|
||||
| pre | Conditions.cs:17:17:17:18 | [b (line 11): true] !... | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b |
|
||||
| pre | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | Conditions.cs:18:17:18:20 | ...; |
|
||||
| pre | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- |
|
||||
| pre | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:17 | access to local variable x |
|
||||
| pre | Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:11:9:11:10 | exit M1 |
|
||||
| pre | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:9:19:17 | return ...; |
|
||||
| pre | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:23:5:31:5 | {...} |
|
||||
| pre | Conditions.cs:23:5:31:5 | {...} | Conditions.cs:24:9:24:18 | ... ...; |
|
||||
| pre | Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:13:24:13 | access to local variable x |
|
||||
| pre | Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:17:24:17 | 0 |
|
||||
| pre | Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:25:9:27:20 | if (...) ... |
|
||||
| pre | Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:13:24:17 | Int32 x = ... |
|
||||
| pre | Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 |
|
||||
| pre | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... |
|
||||
| pre | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... |
|
||||
| pre | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 |
|
||||
| pre | Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; |
|
||||
| pre | Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... |
|
||||
| pre | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ |
|
||||
| pre | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... |
|
||||
| pre | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x |
|
||||
| pre | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 |
|
||||
| pre | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 |
|
||||
| pre | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 |
|
||||
| pre | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ |
|
||||
| pre | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:13 | access to local variable x |
|
||||
| pre | Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:22:9:22:10 | exit M2 |
|
||||
| pre | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:9:30:17 | return ...; |
|
||||
| pre | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:34:5:44:5 | {...} |
|
||||
| pre | Conditions.cs:34:5:44:5 | {...} | Conditions.cs:35:9:35:18 | ... ...; |
|
||||
| pre | Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:13:35:13 | access to local variable x |
|
||||
| pre | Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:17:35:17 | 0 |
|
||||
| pre | Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:36:9:36:23 | ... ...; |
|
||||
| pre | Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:13:35:17 | Int32 x = ... |
|
||||
| pre | Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:13:36:14 | access to local variable b2 |
|
||||
| pre | Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:18:36:22 | false |
|
||||
| pre | Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:37:9:38:20 | if (...) ... |
|
||||
| pre | Conditions.cs:36:18:36:22 | false | Conditions.cs:36:13:36:22 | Boolean b2 = ... |
|
||||
| pre | Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 |
|
||||
| pre | Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; |
|
||||
| pre | Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:39:9:40:16 | if (...) ... |
|
||||
| pre | Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:18:38:19 | access to parameter b1 |
|
||||
| pre | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:14 | access to local variable b2 |
|
||||
| pre | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:19 | ... = ... |
|
||||
| pre | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 |
|
||||
| pre | Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; |
|
||||
| pre | Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... |
|
||||
| pre | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ |
|
||||
| pre | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... |
|
||||
| pre | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x |
|
||||
| pre | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 |
|
||||
| pre | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 |
|
||||
| pre | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | Conditions.cs:42:13:42:16 | ...; |
|
||||
| pre | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ |
|
||||
| pre | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:13 | access to local variable x |
|
||||
| pre | Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:33:9:33:10 | exit M3 |
|
||||
| pre | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:9:43:17 | return ...; |
|
||||
| pre | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:47:5:55:5 | {...} |
|
||||
| pre | Conditions.cs:47:5:55:5 | {...} | Conditions.cs:48:9:48:18 | ... ...; |
|
||||
| pre | Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:13:48:13 | access to local variable y |
|
||||
| pre | Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:17:48:17 | 0 |
|
||||
| pre | Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:49:9:53:9 | while (...) ... |
|
||||
| pre | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:17 | Int32 y = ... |
|
||||
| pre | Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:16 | access to parameter x |
|
||||
| pre | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- |
|
||||
| pre | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- |
|
||||
| pre | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:18 | ...-- |
|
||||
| pre | Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:22:49:22 | 0 |
|
||||
| pre | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 |
|
||||
| pre | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 |
|
||||
| pre | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} |
|
||||
| pre | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| pre | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} |
|
||||
| pre | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} |
|
||||
| pre | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:22 | ... > ... |
|
||||
| pre | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... |
|
||||
| pre | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... |
|
||||
| pre | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... |
|
||||
| pre | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... |
|
||||
| pre | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:13:52:20 | if (...) ... |
|
||||
| pre | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b |
|
||||
| pre | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b |
|
||||
| pre | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b |
|
||||
| pre | Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x |
|
||||
| pre | Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; |
|
||||
| pre | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ |
|
||||
| pre | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x |
|
||||
| pre | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y |
|
||||
| pre | Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | exit M4 |
|
||||
| pre | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:9:54:17 | return ...; |
|
||||
| pre | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:58:5:68:5 | {...} |
|
||||
| pre | Conditions.cs:58:5:68:5 | {...} | Conditions.cs:59:9:59:18 | ... ...; |
|
||||
| pre | Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:13:59:13 | access to local variable y |
|
||||
| pre | Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:17:59:17 | 0 |
|
||||
| pre | Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:60:9:64:9 | while (...) ... |
|
||||
| pre | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:17 | Int32 y = ... |
|
||||
| pre | Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:16 | access to parameter x |
|
||||
| pre | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- |
|
||||
| pre | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- |
|
||||
| pre | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:18 | ...-- |
|
||||
| pre | Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:22:60:22 | 0 |
|
||||
| pre | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 |
|
||||
| pre | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 |
|
||||
| pre | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} |
|
||||
| pre | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... |
|
||||
| pre | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} |
|
||||
| pre | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... |
|
||||
| pre | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} |
|
||||
| pre | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... |
|
||||
| pre | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:22 | ... > ... |
|
||||
| pre | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... |
|
||||
| pre | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... |
|
||||
| pre | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... |
|
||||
| pre | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... |
|
||||
| pre | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:13:63:20 | if (...) ... |
|
||||
| pre | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b |
|
||||
| pre | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b |
|
||||
| pre | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b |
|
||||
| pre | Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x |
|
||||
| pre | Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; |
|
||||
| pre | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ |
|
||||
| pre | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x |
|
||||
| pre | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y |
|
||||
| pre | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b |
|
||||
| pre | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b |
|
||||
| pre | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b |
|
||||
| pre | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ |
|
||||
| pre | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:13 | access to local variable y |
|
||||
| pre | Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:57:9:57:10 | exit M5 |
|
||||
| pre | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:9:67:17 | return ...; |
|
||||
| pre | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:71:5:84:5 | {...} |
|
||||
| pre | Conditions.cs:71:5:84:5 | {...} | Conditions.cs:72:9:72:30 | ... ...; |
|
||||
| pre | Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:13:72:13 | access to local variable b |
|
||||
| pre | Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:17:72:18 | access to parameter ss |
|
||||
| pre | Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:73:9:73:18 | ... ...; |
|
||||
| pre | Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:25 | access to property Length |
|
||||
| pre | Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:29:72:29 | 0 |
|
||||
| pre | Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:13:72:29 | Boolean b = ... |
|
||||
| pre | Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:17:72:29 | ... > ... |
|
||||
| pre | Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:13:73:13 | access to local variable x |
|
||||
| pre | Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:17:73:17 | 0 |
|
||||
| pre | Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:74:27:74:28 | access to parameter ss |
|
||||
| pre | Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:13:73:17 | Int32 x = ... |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:75:9:80:9 | {...} |
|
||||
| pre | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... |
|
||||
| pre | Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... |
|
||||
| pre | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:76:13:77:20 | if (...) ... |
|
||||
| pre | Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b |
|
||||
| pre | Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:77:17:77:20 | ...; |
|
||||
| pre | Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| pre | Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:19 | ...++ |
|
||||
| pre | Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:17 | access to local variable x |
|
||||
| pre | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:17 | access to local variable x |
|
||||
| pre | Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:21:78:21 | 0 |
|
||||
| pre | Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:79:17:79:26 | ...; |
|
||||
| pre | Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:17:78:21 | ... > ... |
|
||||
| pre | Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:21:79:25 | false |
|
||||
| pre | Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:17 | access to local variable b |
|
||||
| pre | Conditions.cs:79:21:79:25 | false | Conditions.cs:79:17:79:25 | ... = ... |
|
||||
| pre | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:12:81:12 | access to local variable b |
|
||||
| pre | Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:82:13:82:16 | ...; |
|
||||
| pre | Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| pre | Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:15 | ...++ |
|
||||
| pre | Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:13 | access to local variable x |
|
||||
| pre | Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:70:9:70:10 | exit M6 |
|
||||
| pre | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:9:83:17 | return ...; |
|
||||
| pre | Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:87:5:100:5 | {...} |
|
||||
| pre | Conditions.cs:87:5:100:5 | {...} | Conditions.cs:88:9:88:30 | ... ...; |
|
||||
| pre | Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:13:88:13 | access to local variable b |
|
||||
| pre | Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:17:88:18 | access to parameter ss |
|
||||
| pre | Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:89:9:89:18 | ... ...; |
|
||||
| pre | Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:25 | access to property Length |
|
||||
| pre | Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:29:88:29 | 0 |
|
||||
| pre | Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:13:88:29 | Boolean b = ... |
|
||||
| pre | Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:17:88:29 | ... > ... |
|
||||
| pre | Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:13:89:13 | access to local variable x |
|
||||
| pre | Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:17:89:17 | 0 |
|
||||
| pre | Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:90:27:90:28 | access to parameter ss |
|
||||
| pre | Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:13:89:17 | Int32 x = ... |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:91:9:98:9 | {...} |
|
||||
| pre | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:99:16:99:16 | access to local variable x |
|
||||
| pre | Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... |
|
||||
| pre | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:92:13:93:20 | if (...) ... |
|
||||
| pre | Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b |
|
||||
| pre | Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:93:17:93:20 | ...; |
|
||||
| pre | Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| pre | Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:19 | ...++ |
|
||||
| pre | Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:17 | access to local variable x |
|
||||
| pre | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:17 | access to local variable x |
|
||||
| pre | Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:21:94:21 | 0 |
|
||||
| pre | Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:95:17:95:26 | ...; |
|
||||
| pre | Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| pre | Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:17:94:21 | ... > ... |
|
||||
| pre | Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:21:95:25 | false |
|
||||
| pre | Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:17 | access to local variable b |
|
||||
| pre | Conditions.cs:95:21:95:25 | false | Conditions.cs:95:17:95:25 | ... = ... |
|
||||
| pre | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b |
|
||||
| pre | Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:97:17:97:20 | ...; |
|
||||
| pre | Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:19 | ...++ |
|
||||
| pre | Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:17 | access to local variable x |
|
||||
| pre | Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:86:9:86:10 | exit M7 |
|
||||
| pre | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:9:99:17 | return ...; |
|
||||
| pre | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:103:5:111:5 | {...} |
|
||||
| pre | Conditions.cs:103:5:111:5 | {...} | Conditions.cs:104:9:104:29 | ... ...; |
|
||||
| pre | Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:13:104:13 | access to local variable x |
|
||||
| pre | Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:17:104:17 | access to parameter b |
|
||||
| pre | Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:105:9:106:20 | if (...) ... |
|
||||
| pre | Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:28 | call to method ToString |
|
||||
| pre | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:13:104:28 | String x = ... |
|
||||
| pre | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b |
|
||||
| pre | Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; |
|
||||
| pre | Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... |
|
||||
| pre | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x |
|
||||
| pre | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:18:106:19 | [b (line 102): true] "" |
|
||||
| pre | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... |
|
||||
| pre | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... |
|
||||
| pre | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x |
|
||||
| pre | Conditions.cs:106:18:106:19 | [b (line 102): true] "" | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... |
|
||||
| pre | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x |
|
||||
| pre | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x |
|
||||
| pre | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length |
|
||||
| pre | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length |
|
||||
| pre | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 |
|
||||
| pre | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 |
|
||||
| pre | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... |
|
||||
| pre | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... |
|
||||
| pre | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... |
|
||||
| pre | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... |
|
||||
| pre | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:17:108:18 | [b (line 102): false] !... |
|
||||
| pre | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:17:108:18 | [b (line 102): true] !... |
|
||||
| pre | Conditions.cs:108:17:108:18 | [b (line 102): false] !... | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b |
|
||||
| pre | Conditions.cs:108:17:108:18 | [b (line 102): true] !... | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b |
|
||||
| pre | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | Conditions.cs:109:17:109:24 | ...; |
|
||||
| pre | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| pre | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" |
|
||||
| pre | Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:23 | ... = ... |
|
||||
| pre | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| pre | Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:17:109:23 | ... + ... |
|
||||
| pre | Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:102:12:102:13 | exit M8 |
|
||||
| pre | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:9:110:17 | return ...; |
|
||||
| pre | ExitMethods.cs:6:10:6:11 | enter M1 | ExitMethods.cs:7:5:10:5 | {...} |
|
||||
| pre | ExitMethods.cs:7:5:10:5 | {...} | ExitMethods.cs:8:9:8:25 | ...; |
|
||||
| pre | ExitMethods.cs:8:9:8:24 | call to method ErrorMaybe | ExitMethods.cs:9:9:9:15 | return ...; |
|
||||
|
||||
@@ -236,6 +236,244 @@
|
||||
| ConditionalAccess.cs:31:70:31:78 | ... + ... | ConditionalAccess.cs:31:82:31:83 | access to parameter s2 | semmle.label | successor |
|
||||
| ConditionalAccess.cs:31:75:31:78 | ", " | ConditionalAccess.cs:31:70:31:78 | ... + ... | semmle.label | successor |
|
||||
| ConditionalAccess.cs:31:82:31:83 | access to parameter s2 | ConditionalAccess.cs:31:70:31:83 | ... + ... | semmle.label | successor |
|
||||
| Conditions.cs:4:5:9:5 | {...} | Conditions.cs:5:9:6:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | semmle.label | successor |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:7:9:8:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:13 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | !... | semmle.label | successor |
|
||||
| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:14:7:16 | access to parameter inc | semmle.label | successor |
|
||||
| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:8:13:8:16 | ...; | semmle.label | false |
|
||||
| Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:15 | ...-- | semmle.label | successor |
|
||||
| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:13 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:12:5:20:5 | {...} | Conditions.cs:13:9:13:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:13:13:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:17:13:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:14:9:15:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:16:9:18:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:17:16:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:17:13:18:20 | if (...) ... | semmle.label | true |
|
||||
| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:13:16:17 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | !... | semmle.label | successor |
|
||||
| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:18:17:18 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:18:17:18:20 | ...; | semmle.label | false |
|
||||
| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:19:16:19:16 | access to local variable x | semmle.label | true |
|
||||
| Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- | semmle.label | successor |
|
||||
| Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:19:16:19:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:9:19:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:23:5:31:5 | {...} | Conditions.cs:24:9:24:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:13:24:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:17:24:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:25:9:27:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:13:24:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 | semmle.label | successor |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | semmle.label | true |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | semmle.label | successor |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:28:9:29:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | semmle.label | successor |
|
||||
| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:30:16:30:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:9:30:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:34:5:44:5 | {...} | Conditions.cs:35:9:35:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:13:35:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:17:35:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:36:9:36:23 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:13:35:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:13:36:14 | access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:18:36:22 | false | semmle.label | successor |
|
||||
| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:37:9:38:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:36:18:36:22 | false | Conditions.cs:36:13:36:22 | Boolean b2 = ... | semmle.label | successor |
|
||||
| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 | semmle.label | successor |
|
||||
| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:39:9:40:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:18:38:19 | access to parameter b1 | semmle.label | successor |
|
||||
| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:39:9:40:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:14 | access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:19 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:41:9:42:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:43:16:43:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:9:43:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:47:5:55:5 | {...} | Conditions.cs:48:9:48:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:13:48:13 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:17:48:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:49:9:53:9 | while (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:17 | Int32 y = ... | semmle.label | successor |
|
||||
| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:16 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:18 | ...-- | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:22:49:22 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | semmle.label | true |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | semmle.label | false |
|
||||
| Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:22 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:13:52:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | access to parameter x | semmle.label | false |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:49:16:49:16 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:17 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:9:54:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:58:5:68:5 | {...} | Conditions.cs:59:9:59:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:13:59:13 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:17:59:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:60:9:64:9 | while (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:17 | Int32 y = ... | semmle.label | successor |
|
||||
| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:16 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:18 | ...-- | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:22:60:22 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | semmle.label | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:22 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:13:63:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | access to parameter x | semmle.label | false |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:60:16:60:16 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:17 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:66:13:66:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | semmle.label | false |
|
||||
| Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:67:16:67:16 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:13 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:9:67:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:71:5:84:5 | {...} | Conditions.cs:72:9:72:30 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:13:72:13 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:17:72:18 | access to parameter ss | semmle.label | successor |
|
||||
| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:73:9:73:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:25 | access to property Length | semmle.label | successor |
|
||||
| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:29:72:29 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:13:72:29 | Boolean b = ... | semmle.label | successor |
|
||||
| Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:17:72:29 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:13:73:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:17:73:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:74:27:74:28 | access to parameter ss | semmle.label | successor |
|
||||
| Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:13:73:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:75:9:80:9 | {...} | semmle.label | non-empty |
|
||||
| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... | semmle.label | empty |
|
||||
| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Conditions.cs:75:9:80:9 | {...} | Conditions.cs:76:13:77:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:77:17:77:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:78:13:79:26 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:78:13:79:26 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:21:78:21 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | semmle.label | false |
|
||||
| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:79:17:79:26 | ...; | semmle.label | true |
|
||||
| Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:17:78:21 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:21:79:25 | false | semmle.label | successor |
|
||||
| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:79:21:79:25 | false | Conditions.cs:79:17:79:25 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:12:81:12 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:82:13:82:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:83:16:83:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:83:16:83:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:9:83:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:87:5:100:5 | {...} | Conditions.cs:88:9:88:30 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:13:88:13 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:17:88:18 | access to parameter ss | semmle.label | successor |
|
||||
| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:89:9:89:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:25 | access to property Length | semmle.label | successor |
|
||||
| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:29:88:29 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:13:88:29 | Boolean b = ... | semmle.label | successor |
|
||||
| Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:17:88:29 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:13:89:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:17:89:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:90:27:90:28 | access to parameter ss | semmle.label | successor |
|
||||
| Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:13:89:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:91:9:98:9 | {...} | semmle.label | non-empty |
|
||||
| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:99:16:99:16 | access to local variable x | semmle.label | empty |
|
||||
| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Conditions.cs:91:9:98:9 | {...} | Conditions.cs:92:13:93:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:93:17:93:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:94:13:95:26 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:94:13:95:26 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:21:94:21 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:95:17:95:26 | ...; | semmle.label | true |
|
||||
| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:96:13:97:20 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:17:94:21 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:21:95:25 | false | semmle.label | successor |
|
||||
| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:96:13:97:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:95:21:95:25 | false | Conditions.cs:95:17:95:25 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | semmle.label | false |
|
||||
| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:97:17:97:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:9:99:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:103:5:111:5 | {...} | Conditions.cs:104:9:104:29 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:13:104:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:17:104:17 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:105:9:106:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:28 | call to method ToString | semmle.label | successor |
|
||||
| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:13:104:28 | String x = ... | semmle.label | successor |
|
||||
| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:18:106:19 | "" | semmle.label | successor |
|
||||
| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:13:106:19 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:107:9:109:24 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:13:106:19 | ... + ... | semmle.label | successor |
|
||||
| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:20 | access to property Length | semmle.label | successor |
|
||||
| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:24:107:24 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:108:13:109:24 | if (...) ... | semmle.label | true |
|
||||
| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:13:107:24 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | !... | semmle.label | successor |
|
||||
| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:18:108:18 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:109:17:109:24 | ...; | semmle.label | false |
|
||||
| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:110:16:110:16 | access to local variable x | semmle.label | true |
|
||||
| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" | semmle.label | successor |
|
||||
| Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:23 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:110:16:110:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:17:109:23 | ... + ... | semmle.label | successor |
|
||||
| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:9:110:17 | return ...; | semmle.label | successor |
|
||||
| ExitMethods.cs:7:5:10:5 | {...} | ExitMethods.cs:8:9:8:25 | ...; | semmle.label | successor |
|
||||
| ExitMethods.cs:8:9:8:24 | call to method ErrorMaybe | ExitMethods.cs:9:9:9:15 | return ...; | semmle.label | successor |
|
||||
| ExitMethods.cs:8:9:8:25 | ...; | ExitMethods.cs:8:20:8:23 | true | semmle.label | successor |
|
||||
|
||||
@@ -255,6 +255,229 @@
|
||||
| ConditionalAccess.cs:31:70:31:83 | ... + ... | ConditionalAccess.cs:31:70:31:71 | access to parameter s1 |
|
||||
| ConditionalAccess.cs:31:75:31:78 | ", " | ConditionalAccess.cs:31:75:31:78 | ", " |
|
||||
| ConditionalAccess.cs:31:82:31:83 | access to parameter s2 | ConditionalAccess.cs:31:82:31:83 | access to parameter s2 |
|
||||
| Conditions.cs:4:5:9:5 | {...} | Conditions.cs:4:5:9:5 | {...} |
|
||||
| Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:9:6:16 | if (...) ... |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | access to parameter inc |
|
||||
| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:13 | access to parameter x |
|
||||
| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:6:13:6:13 | access to parameter x |
|
||||
| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:16 | ...; |
|
||||
| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:9:8:16 | if (...) ... |
|
||||
| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:13:7:16 | !... |
|
||||
| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | access to parameter inc |
|
||||
| Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:13 | access to parameter x |
|
||||
| Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:13 | access to parameter x |
|
||||
| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:16 | ...; |
|
||||
| Conditions.cs:12:5:20:5 | {...} | Conditions.cs:12:5:20:5 | {...} |
|
||||
| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:9:13:18 | ... ...; |
|
||||
| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:13:13:13 | access to local variable x |
|
||||
| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:13:13:13 | access to local variable x |
|
||||
| Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:17:13:17 | 0 |
|
||||
| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:9:15:16 | if (...) ... |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | access to parameter b |
|
||||
| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:13 | access to local variable x |
|
||||
| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:15:13:15:13 | access to local variable x |
|
||||
| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:16 | ...; |
|
||||
| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:9:18:20 | if (...) ... |
|
||||
| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:13:16:13 | access to local variable x |
|
||||
| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:13 | access to local variable x |
|
||||
| Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:17:16:17 | 0 |
|
||||
| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... |
|
||||
| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:17:17:18 | !... |
|
||||
| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | access to parameter b |
|
||||
| Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:17 | access to local variable x |
|
||||
| Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:17 | access to local variable x |
|
||||
| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:20 | ...; |
|
||||
| Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x |
|
||||
| Conditions.cs:23:5:31:5 | {...} | Conditions.cs:23:5:31:5 | {...} |
|
||||
| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:9:24:18 | ... ...; |
|
||||
| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:13:24:13 | access to local variable x |
|
||||
| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:13:24:13 | access to local variable x |
|
||||
| Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:17:24:17 | 0 |
|
||||
| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:9:27:20 | if (...) ... |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | access to parameter b1 |
|
||||
| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | access to parameter b2 |
|
||||
| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:17 | access to local variable x |
|
||||
| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:27:17:27:17 | access to local variable x |
|
||||
| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:20 | ...; |
|
||||
| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... |
|
||||
| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | access to parameter b2 |
|
||||
| Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:13 | access to local variable x |
|
||||
| Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:29:13:29:13 | access to local variable x |
|
||||
| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:16 | ...; |
|
||||
| Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:30:16:30:16 | access to local variable x |
|
||||
| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x |
|
||||
| Conditions.cs:34:5:44:5 | {...} | Conditions.cs:34:5:44:5 | {...} |
|
||||
| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:9:35:18 | ... ...; |
|
||||
| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:13:35:13 | access to local variable x |
|
||||
| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:13:35:13 | access to local variable x |
|
||||
| Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:17:35:17 | 0 |
|
||||
| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:9:36:23 | ... ...; |
|
||||
| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:13:36:14 | access to local variable b2 |
|
||||
| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:13:36:14 | access to local variable b2 |
|
||||
| Conditions.cs:36:18:36:22 | false | Conditions.cs:36:18:36:22 | false |
|
||||
| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:9:38:20 | if (...) ... |
|
||||
| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | access to parameter b1 |
|
||||
| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:13:38:14 | access to local variable b2 |
|
||||
| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:13:38:14 | access to local variable b2 |
|
||||
| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:20 | ...; |
|
||||
| Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:18:38:19 | access to parameter b1 |
|
||||
| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | access to local variable b2 |
|
||||
| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:13 | access to local variable x |
|
||||
| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:40:13:40:13 | access to local variable x |
|
||||
| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:16 | ...; |
|
||||
| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... |
|
||||
| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | access to local variable b2 |
|
||||
| Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:13 | access to local variable x |
|
||||
| Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:42:13:42:13 | access to local variable x |
|
||||
| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:16 | ...; |
|
||||
| Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:43:16:43:16 | access to local variable x |
|
||||
| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x |
|
||||
| Conditions.cs:47:5:55:5 | {...} | Conditions.cs:47:5:55:5 | {...} |
|
||||
| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:9:48:18 | ... ...; |
|
||||
| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:13:48:13 | access to local variable y |
|
||||
| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:13:48:13 | access to local variable y |
|
||||
| Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:17:48:17 | 0 |
|
||||
| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:9:53:9 | while (...) ... |
|
||||
| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:16 | access to parameter x |
|
||||
| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:16:49:16 | access to parameter x |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:16 | access to parameter x |
|
||||
| Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:22:49:22 | 0 |
|
||||
| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | {...} |
|
||||
| Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:13:52:20 | if (...) ... |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | access to parameter b |
|
||||
| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:17 | access to local variable y |
|
||||
| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:52:17:52:17 | access to local variable y |
|
||||
| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:20 | ...; |
|
||||
| Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y |
|
||||
| Conditions.cs:58:5:68:5 | {...} | Conditions.cs:58:5:68:5 | {...} |
|
||||
| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:9:59:18 | ... ...; |
|
||||
| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:13:59:13 | access to local variable y |
|
||||
| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:13:59:13 | access to local variable y |
|
||||
| Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:17:59:17 | 0 |
|
||||
| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:9:64:9 | while (...) ... |
|
||||
| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:16 | access to parameter x |
|
||||
| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:16:60:16 | access to parameter x |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:16 | access to parameter x |
|
||||
| Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:22:60:22 | 0 |
|
||||
| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | {...} |
|
||||
| Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:13:63:20 | if (...) ... |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | access to parameter b |
|
||||
| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:17 | access to local variable y |
|
||||
| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:63:17:63:17 | access to local variable y |
|
||||
| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:20 | ...; |
|
||||
| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:9:66:16 | if (...) ... |
|
||||
| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | access to parameter b |
|
||||
| Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:13 | access to local variable y |
|
||||
| Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:66:13:66:13 | access to local variable y |
|
||||
| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:16 | ...; |
|
||||
| Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:67:16:67:16 | access to local variable y |
|
||||
| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y |
|
||||
| Conditions.cs:71:5:84:5 | {...} | Conditions.cs:71:5:84:5 | {...} |
|
||||
| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:9:72:30 | ... ...; |
|
||||
| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:13:72:13 | access to local variable b |
|
||||
| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:13:72:13 | access to local variable b |
|
||||
| Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:18 | access to parameter ss |
|
||||
| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:17:72:18 | access to parameter ss |
|
||||
| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:17:72:18 | access to parameter ss |
|
||||
| Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:29:72:29 | 0 |
|
||||
| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:9:73:18 | ... ...; |
|
||||
| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:13:73:13 | access to local variable x |
|
||||
| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:13:73:13 | access to local variable x |
|
||||
| Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:17:73:17 | 0 |
|
||||
| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | access to parameter ss |
|
||||
| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:27:74:28 | access to parameter ss |
|
||||
| Conditions.cs:75:9:80:9 | {...} | Conditions.cs:75:9:80:9 | {...} |
|
||||
| Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:76:13:77:20 | if (...) ... |
|
||||
| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | access to local variable b |
|
||||
| Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:17 | access to local variable x |
|
||||
| Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:77:17:77:17 | access to local variable x |
|
||||
| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:20 | ...; |
|
||||
| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... |
|
||||
| Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:17:78:17 | access to local variable x |
|
||||
| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:17 | access to local variable x |
|
||||
| Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:21:78:21 | 0 |
|
||||
| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:17:79:17 | access to local variable b |
|
||||
| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:17:79:17 | access to local variable b |
|
||||
| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:26 | ...; |
|
||||
| Conditions.cs:79:21:79:25 | false | Conditions.cs:79:21:79:25 | false |
|
||||
| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:9:82:16 | if (...) ... |
|
||||
| Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:81:12:81:12 | access to local variable b |
|
||||
| Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:13 | access to local variable x |
|
||||
| Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:82:13:82:13 | access to local variable x |
|
||||
| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:16 | ...; |
|
||||
| Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:16:83:16 | access to local variable x |
|
||||
| Conditions.cs:87:5:100:5 | {...} | Conditions.cs:87:5:100:5 | {...} |
|
||||
| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:9:88:30 | ... ...; |
|
||||
| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:13:88:13 | access to local variable b |
|
||||
| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:13:88:13 | access to local variable b |
|
||||
| Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:18 | access to parameter ss |
|
||||
| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:17:88:18 | access to parameter ss |
|
||||
| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:17:88:18 | access to parameter ss |
|
||||
| Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:29:88:29 | 0 |
|
||||
| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:9:89:18 | ... ...; |
|
||||
| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:13:89:13 | access to local variable x |
|
||||
| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:13:89:13 | access to local variable x |
|
||||
| Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:17:89:17 | 0 |
|
||||
| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | access to parameter ss |
|
||||
| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:27:90:28 | access to parameter ss |
|
||||
| Conditions.cs:91:9:98:9 | {...} | Conditions.cs:91:9:98:9 | {...} |
|
||||
| Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:92:13:93:20 | if (...) ... |
|
||||
| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | access to local variable b |
|
||||
| Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:17 | access to local variable x |
|
||||
| Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:93:17:93:17 | access to local variable x |
|
||||
| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:20 | ...; |
|
||||
| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... |
|
||||
| Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:17:94:17 | access to local variable x |
|
||||
| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:17 | access to local variable x |
|
||||
| Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:21:94:21 | 0 |
|
||||
| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:17:95:17 | access to local variable b |
|
||||
| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:17:95:17 | access to local variable b |
|
||||
| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:26 | ...; |
|
||||
| Conditions.cs:95:21:95:25 | false | Conditions.cs:95:21:95:25 | false |
|
||||
| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... |
|
||||
| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | access to local variable b |
|
||||
| Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:17 | access to local variable x |
|
||||
| Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:97:17:97:17 | access to local variable x |
|
||||
| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:20 | ...; |
|
||||
| Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:99:16:99:16 | access to local variable x |
|
||||
| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x |
|
||||
| Conditions.cs:103:5:111:5 | {...} | Conditions.cs:103:5:111:5 | {...} |
|
||||
| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:9:104:29 | ... ...; |
|
||||
| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:13:104:13 | access to local variable x |
|
||||
| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:13:104:13 | access to local variable x |
|
||||
| Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:17 | access to parameter b |
|
||||
| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:17 | access to parameter b |
|
||||
| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:9:106:20 | if (...) ... |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | access to parameter b |
|
||||
| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:13 | access to local variable x |
|
||||
| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:13 | access to local variable x |
|
||||
| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:13:106:13 | access to local variable x |
|
||||
| Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:106:13:106:13 | access to local variable x |
|
||||
| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:106:13:106:13 | access to local variable x |
|
||||
| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:20 | ...; |
|
||||
| Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:18:106:19 | "" |
|
||||
| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:9:109:24 | if (...) ... |
|
||||
| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:13 | access to local variable x |
|
||||
| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:13:107:13 | access to local variable x |
|
||||
| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:13 | access to local variable x |
|
||||
| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:24:107:24 | 0 |
|
||||
| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... |
|
||||
| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:17:108:18 | !... |
|
||||
| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | access to parameter b |
|
||||
| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:109:17:109:17 | access to local variable x |
|
||||
| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:24 | ...; |
|
||||
| Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:22:109:23 | "" |
|
||||
| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:16:110:16 | access to local variable x |
|
||||
| ExitMethods.cs:7:5:10:5 | {...} | ExitMethods.cs:7:5:10:5 | {...} |
|
||||
| ExitMethods.cs:8:9:8:24 | call to method ErrorMaybe | ExitMethods.cs:8:20:8:23 | true |
|
||||
| ExitMethods.cs:8:9:8:25 | ...; | ExitMethods.cs:8:9:8:25 | ...; |
|
||||
|
||||
@@ -23,6 +23,15 @@
|
||||
| ConditionalAccess.cs:19:12:19:13 | M6 | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 |
|
||||
| ConditionalAccess.cs:21:10:21:11 | M7 | ConditionalAccess.cs:22:5:26:5 | {...} |
|
||||
| ConditionalAccess.cs:31:26:31:38 | CommaJoinWith | ConditionalAccess.cs:31:70:31:71 | access to parameter s1 |
|
||||
| Conditions.cs:3:10:3:19 | IncrOrDecr | Conditions.cs:4:5:9:5 | {...} |
|
||||
| Conditions.cs:11:9:11:10 | M1 | Conditions.cs:12:5:20:5 | {...} |
|
||||
| Conditions.cs:22:9:22:10 | M2 | Conditions.cs:23:5:31:5 | {...} |
|
||||
| Conditions.cs:33:9:33:10 | M3 | Conditions.cs:34:5:44:5 | {...} |
|
||||
| Conditions.cs:46:9:46:10 | M4 | Conditions.cs:47:5:55:5 | {...} |
|
||||
| Conditions.cs:57:9:57:10 | M5 | Conditions.cs:58:5:68:5 | {...} |
|
||||
| Conditions.cs:70:9:70:10 | M6 | Conditions.cs:71:5:84:5 | {...} |
|
||||
| Conditions.cs:86:9:86:10 | M7 | Conditions.cs:87:5:100:5 | {...} |
|
||||
| Conditions.cs:102:12:102:13 | M8 | Conditions.cs:103:5:111:5 | {...} |
|
||||
| ExitMethods.cs:6:10:6:11 | M1 | ExitMethods.cs:7:5:10:5 | {...} |
|
||||
| ExitMethods.cs:12:10:12:11 | M2 | ExitMethods.cs:13:5:16:5 | {...} |
|
||||
| ExitMethods.cs:18:10:18:11 | M3 | ExitMethods.cs:19:5:22:5 | {...} |
|
||||
|
||||
@@ -390,6 +390,288 @@
|
||||
| ConditionalAccess.cs:31:70:31:83 | ... + ... | ConditionalAccess.cs:31:70:31:83 | ... + ... | normal |
|
||||
| ConditionalAccess.cs:31:75:31:78 | ", " | ConditionalAccess.cs:31:75:31:78 | ", " | normal |
|
||||
| ConditionalAccess.cs:31:82:31:83 | access to parameter s2 | ConditionalAccess.cs:31:82:31:83 | access to parameter s2 | normal |
|
||||
| Conditions.cs:4:5:9:5 | {...} | Conditions.cs:7:14:7:16 | access to parameter inc | false/true |
|
||||
| Conditions.cs:4:5:9:5 | {...} | Conditions.cs:8:13:8:15 | ...-- | normal |
|
||||
| Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | false/false |
|
||||
| Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:6:13:6:15 | ...++ | normal |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | access to parameter inc | false/false |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | access to parameter inc | true/true |
|
||||
| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:13 | access to parameter x | normal |
|
||||
| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:6:13:6:15 | ...++ | normal |
|
||||
| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:15 | ...++ | normal |
|
||||
| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:14:7:16 | access to parameter inc | false/true |
|
||||
| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:8:13:8:15 | ...-- | normal |
|
||||
| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:14:7:16 | access to parameter inc | false/true |
|
||||
| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:14:7:16 | access to parameter inc | true/false |
|
||||
| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | access to parameter inc | false/false |
|
||||
| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | access to parameter inc | true/true |
|
||||
| Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:13 | access to parameter x | normal |
|
||||
| Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:15 | ...-- | normal |
|
||||
| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:15 | ...-- | normal |
|
||||
| Conditions.cs:12:5:20:5 | {...} | Conditions.cs:19:9:19:17 | return ...; | return |
|
||||
| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:13:13:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:13:13:13 | access to local variable x | normal |
|
||||
| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:13:13:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:17:13:17 | 0 | normal |
|
||||
| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | false/false |
|
||||
| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:15:13:15:15 | ...++ | normal |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | access to parameter b | false/false |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | access to parameter b | true/true |
|
||||
| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:13 | access to local variable x | normal |
|
||||
| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:15:13:15:15 | ...++ | normal |
|
||||
| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:15 | ...++ | normal |
|
||||
| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:17 | ... > ... | false/false |
|
||||
| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:18:17:18 | access to parameter b | false/true |
|
||||
| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:18:17:18:19 | ...-- | normal |
|
||||
| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:13:16:13 | access to local variable x | normal |
|
||||
| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | ... > ... | false/false |
|
||||
| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | ... > ... | true/true |
|
||||
| Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:17:16:17 | 0 | normal |
|
||||
| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:18:17:18 | access to parameter b | false/true |
|
||||
| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:18:17:18:19 | ...-- | normal |
|
||||
| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:18:17:18 | access to parameter b | false/true |
|
||||
| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:18:17:18 | access to parameter b | true/false |
|
||||
| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | access to parameter b | false/false |
|
||||
| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | access to parameter b | true/true |
|
||||
| Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:17 | access to local variable x | normal |
|
||||
| Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:19 | ...-- | normal |
|
||||
| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:19 | ...-- | normal |
|
||||
| Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:19:9:19:17 | return ...; | return |
|
||||
| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x | normal |
|
||||
| Conditions.cs:23:5:31:5 | {...} | Conditions.cs:30:9:30:17 | return ...; | return |
|
||||
| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:13:24:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:13:24:13 | access to local variable x | normal |
|
||||
| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:13:24:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:17:24:17 | 0 | normal |
|
||||
| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 | false/false |
|
||||
| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | false/false |
|
||||
| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:27:17:27:19 | ...++ | normal |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | access to parameter b1 | false/false |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | access to parameter b1 | true/true |
|
||||
| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | false/false |
|
||||
| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:19 | ...++ | normal |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | access to parameter b2 | false/false |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | access to parameter b2 | true/true |
|
||||
| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:17 | access to local variable x | normal |
|
||||
| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:27:17:27:19 | ...++ | normal |
|
||||
| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:19 | ...++ | normal |
|
||||
| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | false/false |
|
||||
| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:29:13:29:15 | ...++ | normal |
|
||||
| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | access to parameter b2 | false/false |
|
||||
| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | access to parameter b2 | true/true |
|
||||
| Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:13 | access to local variable x | normal |
|
||||
| Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:29:13:29:15 | ...++ | normal |
|
||||
| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:15 | ...++ | normal |
|
||||
| Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:30:9:30:17 | return ...; | return |
|
||||
| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x | normal |
|
||||
| Conditions.cs:34:5:44:5 | {...} | Conditions.cs:43:9:43:17 | return ...; | return |
|
||||
| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:13:35:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:13:35:13 | access to local variable x | normal |
|
||||
| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:13:35:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:17:35:17 | 0 | normal |
|
||||
| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:13:36:22 | Boolean b2 = ... | normal |
|
||||
| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:13:36:14 | access to local variable b2 | normal |
|
||||
| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:13:36:22 | Boolean b2 = ... | normal |
|
||||
| Conditions.cs:36:18:36:22 | false | Conditions.cs:36:18:36:22 | false | normal |
|
||||
| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 | false/false |
|
||||
| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:38:13:38:19 | ... = ... | normal |
|
||||
| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | access to parameter b1 | false/false |
|
||||
| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | access to parameter b1 | true/true |
|
||||
| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:13:38:14 | access to local variable b2 | normal |
|
||||
| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:13:38:19 | ... = ... | normal |
|
||||
| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:19 | ... = ... | normal |
|
||||
| Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:18:38:19 | access to parameter b1 | normal |
|
||||
| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | false/false |
|
||||
| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:15 | ...++ | normal |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | access to local variable b2 | false/false |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | access to local variable b2 | true/true |
|
||||
| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:13 | access to local variable x | normal |
|
||||
| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:40:13:40:15 | ...++ | normal |
|
||||
| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:15 | ...++ | normal |
|
||||
| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | false/false |
|
||||
| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:42:13:42:15 | ...++ | normal |
|
||||
| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | access to local variable b2 | false/false |
|
||||
| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | access to local variable b2 | true/true |
|
||||
| Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:13 | access to local variable x | normal |
|
||||
| Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:42:13:42:15 | ...++ | normal |
|
||||
| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:15 | ...++ | normal |
|
||||
| Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:43:9:43:17 | return ...; | return |
|
||||
| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x | normal |
|
||||
| Conditions.cs:47:5:55:5 | {...} | Conditions.cs:54:9:54:17 | return ...; | return |
|
||||
| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:13:48:17 | Int32 y = ... | normal |
|
||||
| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:13:48:13 | access to local variable y | normal |
|
||||
| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:13:48:17 | Int32 y = ... | normal |
|
||||
| Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:17:48:17 | 0 | normal |
|
||||
| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:22 | ... > ... | false/false |
|
||||
| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:16 | access to parameter x | normal |
|
||||
| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:16:49:18 | ...-- | normal |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | ... > ... | false/false |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | ... > ... | true/true |
|
||||
| Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:22:49:22 | 0 | normal |
|
||||
| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:17:51:17 | access to parameter b | false/false |
|
||||
| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:19 | ...++ | normal |
|
||||
| Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b | false/false |
|
||||
| Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:52:17:52:19 | ...++ | normal |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | access to parameter b | false/false |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | access to parameter b | true/true |
|
||||
| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:17 | access to local variable y | normal |
|
||||
| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:52:17:52:19 | ...++ | normal |
|
||||
| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:19 | ...++ | normal |
|
||||
| Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:54:9:54:17 | return ...; | return |
|
||||
| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y | normal |
|
||||
| Conditions.cs:58:5:68:5 | {...} | Conditions.cs:67:9:67:17 | return ...; | return |
|
||||
| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:13:59:17 | Int32 y = ... | normal |
|
||||
| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:13:59:13 | access to local variable y | normal |
|
||||
| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:13:59:17 | Int32 y = ... | normal |
|
||||
| Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:17:59:17 | 0 | normal |
|
||||
| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:22 | ... > ... | false/false |
|
||||
| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:16 | access to parameter x | normal |
|
||||
| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:16:60:18 | ...-- | normal |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | ... > ... | false/false |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | ... > ... | true/true |
|
||||
| Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:22:60:22 | 0 | normal |
|
||||
| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:17:62:17 | access to parameter b | false/false |
|
||||
| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:19 | ...++ | normal |
|
||||
| Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b | false/false |
|
||||
| Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:63:17:63:19 | ...++ | normal |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | access to parameter b | false/false |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | access to parameter b | true/true |
|
||||
| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:17 | access to local variable y | normal |
|
||||
| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:63:17:63:19 | ...++ | normal |
|
||||
| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:19 | ...++ | normal |
|
||||
| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | false/false |
|
||||
| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:66:13:66:15 | ...++ | normal |
|
||||
| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | access to parameter b | false/false |
|
||||
| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | access to parameter b | true/true |
|
||||
| Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:13 | access to local variable y | normal |
|
||||
| Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:66:13:66:15 | ...++ | normal |
|
||||
| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:15 | ...++ | normal |
|
||||
| Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:67:9:67:17 | return ...; | return |
|
||||
| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y | normal |
|
||||
| Conditions.cs:71:5:84:5 | {...} | Conditions.cs:83:9:83:17 | return ...; | return |
|
||||
| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:13:72:29 | Boolean b = ... | normal |
|
||||
| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:13:72:13 | access to local variable b | normal |
|
||||
| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:13:72:29 | Boolean b = ... | normal |
|
||||
| Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:18 | access to parameter ss | normal |
|
||||
| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:17:72:25 | access to property Length | normal |
|
||||
| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:17:72:29 | ... > ... | normal |
|
||||
| Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:29:72:29 | 0 | normal |
|
||||
| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:13:73:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:13:73:13 | access to local variable x | normal |
|
||||
| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:13:73:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:17:73:17 | 0 | normal |
|
||||
| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | empty |
|
||||
| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:27:74:28 | access to parameter ss | normal |
|
||||
| Conditions.cs:75:9:80:9 | {...} | Conditions.cs:78:17:78:21 | ... > ... | false/false |
|
||||
| Conditions.cs:75:9:80:9 | {...} | Conditions.cs:79:17:79:25 | ... = ... | normal |
|
||||
| Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b | false/false |
|
||||
| Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:77:17:77:19 | ...++ | normal |
|
||||
| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | access to local variable b | false/false |
|
||||
| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | access to local variable b | true/true |
|
||||
| Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:17 | access to local variable x | normal |
|
||||
| Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:77:17:77:19 | ...++ | normal |
|
||||
| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:19 | ...++ | normal |
|
||||
| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:21 | ... > ... | false/false |
|
||||
| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:79:17:79:25 | ... = ... | normal |
|
||||
| Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:17:78:17 | access to local variable x | normal |
|
||||
| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | ... > ... | false/false |
|
||||
| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | ... > ... | true/true |
|
||||
| Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:21:78:21 | 0 | normal |
|
||||
| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:17:79:17 | access to local variable b | normal |
|
||||
| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:17:79:25 | ... = ... | normal |
|
||||
| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:25 | ... = ... | normal |
|
||||
| Conditions.cs:79:21:79:25 | false | Conditions.cs:79:21:79:25 | false | normal |
|
||||
| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:12:81:12 | access to local variable b | false/false |
|
||||
| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:82:13:82:15 | ...++ | normal |
|
||||
| Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:81:12:81:12 | access to local variable b | false/false |
|
||||
| Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:81:12:81:12 | access to local variable b | true/true |
|
||||
| Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:13 | access to local variable x | normal |
|
||||
| Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:82:13:82:15 | ...++ | normal |
|
||||
| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:15 | ...++ | normal |
|
||||
| Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:83:9:83:17 | return ...; | return |
|
||||
| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:16:83:16 | access to local variable x | normal |
|
||||
| Conditions.cs:87:5:100:5 | {...} | Conditions.cs:99:9:99:17 | return ...; | return |
|
||||
| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:13:88:29 | Boolean b = ... | normal |
|
||||
| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:13:88:13 | access to local variable b | normal |
|
||||
| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:13:88:29 | Boolean b = ... | normal |
|
||||
| Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:18 | access to parameter ss | normal |
|
||||
| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:17:88:25 | access to property Length | normal |
|
||||
| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:17:88:29 | ... > ... | normal |
|
||||
| Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:29:88:29 | 0 | normal |
|
||||
| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:13:89:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:13:89:13 | access to local variable x | normal |
|
||||
| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:13:89:17 | Int32 x = ... | normal |
|
||||
| Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:17:89:17 | 0 | normal |
|
||||
| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | empty |
|
||||
| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:27:90:28 | access to parameter ss | normal |
|
||||
| Conditions.cs:91:9:98:9 | {...} | Conditions.cs:96:17:96:17 | access to local variable b | false/false |
|
||||
| Conditions.cs:91:9:98:9 | {...} | Conditions.cs:97:17:97:19 | ...++ | normal |
|
||||
| Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b | false/false |
|
||||
| Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:93:17:93:19 | ...++ | normal |
|
||||
| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | access to local variable b | false/false |
|
||||
| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | access to local variable b | true/true |
|
||||
| Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:17 | access to local variable x | normal |
|
||||
| Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:93:17:93:19 | ...++ | normal |
|
||||
| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:19 | ...++ | normal |
|
||||
| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:21 | ... > ... | false/false |
|
||||
| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:95:17:95:25 | ... = ... | normal |
|
||||
| Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:17:94:17 | access to local variable x | normal |
|
||||
| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | ... > ... | false/false |
|
||||
| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | ... > ... | true/true |
|
||||
| Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:21:94:21 | 0 | normal |
|
||||
| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:17:95:17 | access to local variable b | normal |
|
||||
| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:17:95:25 | ... = ... | normal |
|
||||
| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:25 | ... = ... | normal |
|
||||
| Conditions.cs:95:21:95:25 | false | Conditions.cs:95:21:95:25 | false | normal |
|
||||
| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | false/false |
|
||||
| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:97:17:97:19 | ...++ | normal |
|
||||
| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | access to local variable b | false/false |
|
||||
| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | access to local variable b | true/true |
|
||||
| Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:17 | access to local variable x | normal |
|
||||
| Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:97:17:97:19 | ...++ | normal |
|
||||
| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:19 | ...++ | normal |
|
||||
| Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:99:9:99:17 | return ...; | return |
|
||||
| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x | normal |
|
||||
| Conditions.cs:103:5:111:5 | {...} | Conditions.cs:110:9:110:17 | return ...; | return |
|
||||
| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:13:104:28 | String x = ... | normal |
|
||||
| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:13:104:13 | access to local variable x | normal |
|
||||
| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:13:104:28 | String x = ... | normal |
|
||||
| Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:17 | access to parameter b | normal |
|
||||
| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:28 | call to method ToString | normal |
|
||||
| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | false/false |
|
||||
| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:106:13:106:19 | ... = ... | normal |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | access to parameter b | false/false |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | access to parameter b | true/true |
|
||||
| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:13 | access to local variable x | normal |
|
||||
| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:13 | access to local variable x | normal |
|
||||
| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:13:106:19 | ... + ... | normal |
|
||||
| Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:106:13:106:19 | ... = ... | normal |
|
||||
| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:106:13:106:19 | ... = ... | normal |
|
||||
| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:19 | ... = ... | normal |
|
||||
| Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:18:106:19 | "" | normal |
|
||||
| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:24 | ... > ... | false/false |
|
||||
| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:18:108:18 | access to parameter b | false/true |
|
||||
| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:109:17:109:23 | ... = ... | normal |
|
||||
| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:13 | access to local variable x | normal |
|
||||
| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:13:107:20 | access to property Length | normal |
|
||||
| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | ... > ... | false/false |
|
||||
| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | ... > ... | true/true |
|
||||
| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:24:107:24 | 0 | normal |
|
||||
| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:18:108:18 | access to parameter b | false/true |
|
||||
| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:109:17:109:23 | ... = ... | normal |
|
||||
| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:18:108:18 | access to parameter b | false/true |
|
||||
| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:18:108:18 | access to parameter b | true/false |
|
||||
| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | access to parameter b | false/false |
|
||||
| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | access to parameter b | true/true |
|
||||
| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x | normal |
|
||||
| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x | normal |
|
||||
| Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:23 | ... + ... | normal |
|
||||
| Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:109:17:109:23 | ... = ... | normal |
|
||||
| Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:109:17:109:23 | ... = ... | normal |
|
||||
| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:23 | ... = ... | normal |
|
||||
| Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:22:109:23 | "" | normal |
|
||||
| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:110:9:110:17 | return ...; | return |
|
||||
| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:16:110:16 | access to local variable x | normal |
|
||||
| ExitMethods.cs:7:5:10:5 | {...} | ExitMethods.cs:9:9:9:15 | return ...; | return |
|
||||
| ExitMethods.cs:8:9:8:24 | call to method ErrorMaybe | ExitMethods.cs:8:9:8:24 | call to method ErrorMaybe | normal |
|
||||
| ExitMethods.cs:8:9:8:25 | ...; | ExitMethods.cs:8:9:8:24 | call to method ErrorMaybe | normal |
|
||||
|
||||
@@ -46,30 +46,30 @@
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(ArgumentNullException)] Exception e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(Exception)] Exception e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] Exception e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(Exception)] Exception e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(ArgumentNullException)] access to local variable e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(Exception)] access to local variable e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to local variable e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(Exception)] access to local variable e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(ArgumentNullException)] access to property Message |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(Exception)] access to property Message |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to property Message |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(Exception)] access to property Message |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(Exception)] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(Exception)] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: Exception] Exception e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: Exception] access to local variable e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: Exception] access to property Message |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: Exception] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: NullReferenceException] "1" |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} |
|
||||
| CatchInFinally.cs:7:9:27:9 | try {...} ... | CatchInFinally.cs:21:17:21:42 | [finally: exception(ArgumentNullException)] call to method WriteLine |
|
||||
|
||||
@@ -212,11 +212,11 @@
|
||||
| CatchInFinally.cs:16:21:16:24 | [finally: exception(Exception)] access to parameter args | CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | semmle.label | successor |
|
||||
| CatchInFinally.cs:16:21:16:24 | access to parameter args | CatchInFinally.cs:16:21:16:31 | access to property Length | semmle.label | successor |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:16:36:16:36 | [finally: exception(ArgumentNullException)] 1 | semmle.label | successor |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} | semmle.label | exception(NullReferenceException) |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(ArgumentNullException)] access to property Length | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | semmle.label | exception(NullReferenceException) |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:16:36:16:36 | [finally: exception(Exception)] 1 | semmle.label | successor |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} | semmle.label | exception(NullReferenceException) |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:16:21:16:31 | [finally: exception(Exception)] access to property Length | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | semmle.label | exception(NullReferenceException) |
|
||||
| CatchInFinally.cs:16:21:16:31 | access to property Length | CatchInFinally.cs:16:36:16:36 | 1 | semmle.label | successor |
|
||||
| CatchInFinally.cs:16:21:16:31 | access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:16:21:16:31 | access to property Length | CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} | semmle.label | exception(NullReferenceException) |
|
||||
@@ -229,60 +229,60 @@
|
||||
| CatchInFinally.cs:16:36:16:36 | 1 | CatchInFinally.cs:16:21:16:36 | ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:16:36:16:36 | [finally: exception(ArgumentNullException)] 1 | CatchInFinally.cs:16:21:16:36 | [finally: exception(ArgumentNullException)] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:16:36:16:36 | [finally: exception(Exception)] 1 | CatchInFinally.cs:16:21:16:36 | [finally: exception(Exception)] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:17:21:17:45 | [finally: exception(ArgumentNullException)] throw ...; | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:21:17:45 | [finally: exception(ArgumentNullException)] throw ...; | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:21:17:45 | throw ...; | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | CatchInFinally.cs:17:21:17:45 | [finally: exception(ArgumentNullException)] throw ...; | semmle.label | successor |
|
||||
| CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception | CatchInFinally.cs:17:21:17:45 | [finally: exception(Exception)] throw ...; | semmle.label | successor |
|
||||
| CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception | CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception | CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:27:17:44 | object creation of type Exception | CatchInFinally.cs:17:21:17:45 | throw ...; | semmle.label | successor |
|
||||
| CatchInFinally.cs:17:27:17:44 | object creation of type Exception | CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
|
||||
| CatchInFinally.cs:17:41:17:43 | "1" | CatchInFinally.cs:17:27:17:44 | object creation of type Exception | semmle.label | successor |
|
||||
| CatchInFinally.cs:17:41:17:43 | [finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:17:27:17:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | semmle.label | successor |
|
||||
| CatchInFinally.cs:17:41:17:43 | [finally: exception(Exception)] "1" | CatchInFinally.cs:17:27:17:44 | [finally: exception(Exception)] object creation of type Exception | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(ArgumentNullException)] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: Exception, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(Exception)] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: Exception] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: Exception] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException, finally: exception(Exception)] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(Exception)] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:13:22:13 | [exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(ArgumentNullException)] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(ArgumentNullException)] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:30:19:30 | [exception: Exception, finally: exception(Exception)] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(Exception)] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:13:22:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: Exception] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:13:22:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | semmle.label | match |
|
||||
| CatchInFinally.cs:19:30:19:30 | [exception: Exception] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: Exception] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException, finally: exception(Exception)] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(Exception)] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:30:19:30 | [exception: NullReferenceException] Exception e | CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(ArgumentNullException)] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(ArgumentNullException)] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [exception: Exception, finally: exception(Exception)] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(Exception)] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:30:19:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: Exception] Exception e | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: Exception] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:30:19:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [exception: Exception] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: Exception] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException, finally: exception(Exception)] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(Exception)] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(ArgumentNullException)] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [exception: Exception, finally: exception(Exception)] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(Exception)] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: Exception] access to local variable e | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: Exception] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [exception: Exception] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: Exception] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException, finally: exception(Exception)] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(Exception)] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: Exception] access to property Message | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: Exception] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: Exception] ... == ... | CatchInFinally.cs:20:13:22:13 | {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: Exception] ... == ... | CatchInFinally.cs:23:13:26:13 | catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException] ... == ... | CatchInFinally.cs:20:13:22:13 | {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException] ... == ... | CatchInFinally.cs:23:13:26:13 | catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(ArgumentNullException)] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:52:19:54 | [exception: Exception, finally: exception(Exception)] "1" | CatchInFinally.cs:19:39:19:54 | [exception: Exception, finally: exception(Exception)] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | CatchInFinally.cs:23:13:26:13 | [finally: exception(ArgumentNullException)] catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | semmle.label | true |
|
||||
| CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | CatchInFinally.cs:23:13:26:13 | [finally: exception(Exception)] catch {...} | semmle.label | false |
|
||||
| CatchInFinally.cs:19:52:19:54 | [exception: Exception] "1" | CatchInFinally.cs:19:39:19:54 | [exception: Exception] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] "1" | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(ArgumentNullException)] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException, finally: exception(Exception)] "1" | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException, finally: exception(Exception)] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:52:19:54 | [exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:54 | [exception: NullReferenceException] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:52:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: Exception] "1" | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: Exception] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:19:52:19:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | CatchInFinally.cs:19:39:19:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | semmle.label | successor |
|
||||
| CatchInFinally.cs:20:13:22:13 | [finally: exception(ArgumentNullException)] {...} | CatchInFinally.cs:21:17:21:43 | [finally: exception(ArgumentNullException)] ...; | semmle.label | successor |
|
||||
| CatchInFinally.cs:20:13:22:13 | [finally: exception(Exception)] {...} | CatchInFinally.cs:21:17:21:43 | [finally: exception(Exception)] ...; | semmle.label | successor |
|
||||
| CatchInFinally.cs:20:13:22:13 | {...} | CatchInFinally.cs:21:17:21:43 | ...; | semmle.label | successor |
|
||||
@@ -413,6 +413,321 @@
|
||||
| ConditionalAccess.cs:31:70:31:83 | ... + ... | ConditionalAccess.cs:31:26:31:38 | exit CommaJoinWith | semmle.label | successor |
|
||||
| ConditionalAccess.cs:31:75:31:78 | ", " | ConditionalAccess.cs:31:70:31:78 | ... + ... | semmle.label | successor |
|
||||
| ConditionalAccess.cs:31:82:31:83 | access to parameter s2 | ConditionalAccess.cs:31:70:31:83 | ... + ... | semmle.label | successor |
|
||||
| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:4:5:9:5 | {...} | Conditions.cs:5:9:6:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | semmle.label | successor |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | semmle.label | successor |
|
||||
| Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:13:7:16 | [inc (line 3): false] !... | semmle.label | successor |
|
||||
| Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | Conditions.cs:7:13:7:16 | [inc (line 3): true] !... | semmle.label | successor |
|
||||
| Conditions.cs:7:13:7:16 | [inc (line 3): false] !... | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | semmle.label | successor |
|
||||
| Conditions.cs:7:13:7:16 | [inc (line 3): true] !... | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | semmle.label | successor |
|
||||
| Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | Conditions.cs:8:13:8:16 | ...; | semmle.label | false |
|
||||
| Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | Conditions.cs:3:10:3:19 | exit IncrOrDecr | semmle.label | true |
|
||||
| Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:15 | ...-- | semmle.label | successor |
|
||||
| Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:3:10:3:19 | exit IncrOrDecr | semmle.label | successor |
|
||||
| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:13 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:12:5:20:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:12:5:20:5 | {...} | Conditions.cs:13:9:13:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:13:13:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:17:13:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:14:9:15:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | semmle.label | successor |
|
||||
| Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | semmle.label | successor |
|
||||
| Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | semmle.label | successor |
|
||||
| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | semmle.label | true |
|
||||
| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | semmle.label | true |
|
||||
| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:17:17:18 | [b (line 11): false] !... | semmle.label | successor |
|
||||
| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:17:17:18 | [b (line 11): true] !... | semmle.label | successor |
|
||||
| Conditions.cs:17:17:17:18 | [b (line 11): false] !... | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:17:17:17:18 | [b (line 11): true] !... | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | Conditions.cs:18:17:18:20 | ...; | semmle.label | false |
|
||||
| Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | Conditions.cs:19:16:19:16 | access to local variable x | semmle.label | true |
|
||||
| Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- | semmle.label | successor |
|
||||
| Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:19:16:19:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:11:9:11:10 | exit M1 | semmle.label | return |
|
||||
| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:9:19:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:23:5:31:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:23:5:31:5 | {...} | Conditions.cs:24:9:24:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:13:24:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:17:24:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:25:9:27:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:13:24:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 | semmle.label | successor |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | semmle.label | true |
|
||||
| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | semmle.label | successor |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | semmle.label | successor |
|
||||
| Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | semmle.label | successor |
|
||||
| Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | semmle.label | successor |
|
||||
| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | semmle.label | successor |
|
||||
| Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:30:16:30:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:22:9:22:10 | exit M2 | semmle.label | return |
|
||||
| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:9:30:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:34:5:44:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:34:5:44:5 | {...} | Conditions.cs:35:9:35:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:13:35:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:17:35:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:36:9:36:23 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:13:35:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:13:36:14 | access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:18:36:22 | false | semmle.label | successor |
|
||||
| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:37:9:38:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:36:18:36:22 | false | Conditions.cs:36:13:36:22 | Boolean b2 = ... | semmle.label | successor |
|
||||
| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 | semmle.label | successor |
|
||||
| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:39:9:40:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:18:38:19 | access to parameter b1 | semmle.label | successor |
|
||||
| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:39:9:40:16 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:14 | access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:19 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | semmle.label | successor |
|
||||
| Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | semmle.label | successor |
|
||||
| Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:43:16:43:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:33:9:33:10 | exit M3 | semmle.label | return |
|
||||
| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:9:43:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:47:5:55:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:47:5:55:5 | {...} | Conditions.cs:48:9:48:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:13:48:13 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:17:48:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:49:9:53:9 | while (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:17 | Int32 y = ... | semmle.label | successor |
|
||||
| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:16 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:18 | ...-- | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:22:49:22 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | semmle.label | successor |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | semmle.label | true |
|
||||
| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | semmle.label | false |
|
||||
| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | semmle.label | true |
|
||||
| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | semmle.label | false |
|
||||
| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | semmle.label | true |
|
||||
| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | semmle.label | false |
|
||||
| Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:22 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:13:52:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | semmle.label | false |
|
||||
| Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | semmle.label | false |
|
||||
| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | semmle.label | successor |
|
||||
| Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | exit M4 | semmle.label | return |
|
||||
| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:9:54:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:58:5:68:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:58:5:68:5 | {...} | Conditions.cs:59:9:59:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:13:59:13 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:17:59:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:60:9:64:9 | while (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:17 | Int32 y = ... | semmle.label | successor |
|
||||
| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:16 | access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:18 | ...-- | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:22:60:22 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | semmle.label | successor |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | semmle.label | true |
|
||||
| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | semmle.label | true |
|
||||
| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | semmle.label | true |
|
||||
| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:22 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:13:63:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | semmle.label | false |
|
||||
| Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | semmle.label | false |
|
||||
| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | semmle.label | successor |
|
||||
| Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | semmle.label | successor |
|
||||
| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | semmle.label | false |
|
||||
| Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | Conditions.cs:66:13:66:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:66:13:66:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | semmle.label | false |
|
||||
| Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:67:16:67:16 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:13 | access to local variable y | semmle.label | successor |
|
||||
| Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:57:9:57:10 | exit M5 | semmle.label | return |
|
||||
| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:9:67:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:71:5:84:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:71:5:84:5 | {...} | Conditions.cs:72:9:72:30 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:13:72:13 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:17:72:18 | access to parameter ss | semmle.label | successor |
|
||||
| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:73:9:73:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:25 | access to property Length | semmle.label | successor |
|
||||
| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:29:72:29 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:13:72:29 | Boolean b = ... | semmle.label | successor |
|
||||
| Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:17:72:29 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:13:73:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:17:73:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:74:27:74:28 | access to parameter ss | semmle.label | successor |
|
||||
| Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:13:73:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:75:9:80:9 | {...} | semmle.label | non-empty |
|
||||
| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... | semmle.label | empty |
|
||||
| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Conditions.cs:75:9:80:9 | {...} | Conditions.cs:76:13:77:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:77:17:77:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:78:13:79:26 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:78:13:79:26 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:21:78:21 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | semmle.label | false |
|
||||
| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:79:17:79:26 | ...; | semmle.label | true |
|
||||
| Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:17:78:21 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:21:79:25 | false | semmle.label | successor |
|
||||
| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:79:21:79:25 | false | Conditions.cs:79:17:79:25 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:12:81:12 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:82:13:82:16 | ...; | semmle.label | true |
|
||||
| Conditions.cs:81:12:81:12 | access to local variable b | Conditions.cs:83:16:83:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:15 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:83:16:83:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:70:9:70:10 | exit M6 | semmle.label | return |
|
||||
| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:9:83:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:87:5:100:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:87:5:100:5 | {...} | Conditions.cs:88:9:88:30 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:13:88:13 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:17:88:18 | access to parameter ss | semmle.label | successor |
|
||||
| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:89:9:89:18 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:25 | access to property Length | semmle.label | successor |
|
||||
| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:29:88:29 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:13:88:29 | Boolean b = ... | semmle.label | successor |
|
||||
| Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:17:88:29 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:13:89:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:17:89:17 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:90:27:90:28 | access to parameter ss | semmle.label | successor |
|
||||
| Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:13:89:17 | Int32 x = ... | semmle.label | successor |
|
||||
| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:91:9:98:9 | {...} | semmle.label | non-empty |
|
||||
| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:99:16:99:16 | access to local variable x | semmle.label | empty |
|
||||
| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Conditions.cs:91:9:98:9 | {...} | Conditions.cs:92:13:93:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:93:17:93:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:94:13:95:26 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:94:13:95:26 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:21:94:21 | 0 | semmle.label | successor |
|
||||
| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:95:17:95:26 | ...; | semmle.label | true |
|
||||
| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:96:13:97:20 | if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:17:94:21 | ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:21:95:25 | false | semmle.label | successor |
|
||||
| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:96:13:97:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:95:21:95:25 | false | Conditions.cs:95:17:95:25 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | semmle.label | successor |
|
||||
| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | semmle.label | false |
|
||||
| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:97:17:97:20 | ...; | semmle.label | true |
|
||||
| Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:19 | ...++ | semmle.label | successor |
|
||||
| Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:86:9:86:10 | exit M7 | semmle.label | return |
|
||||
| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:9:99:17 | return ...; | semmle.label | successor |
|
||||
| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:103:5:111:5 | {...} | semmle.label | successor |
|
||||
| Conditions.cs:103:5:111:5 | {...} | Conditions.cs:104:9:104:29 | ... ...; | semmle.label | successor |
|
||||
| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:13:104:13 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:17:104:17 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:105:9:106:20 | if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:28 | call to method ToString | semmle.label | successor |
|
||||
| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:13:104:28 | String x = ... | semmle.label | successor |
|
||||
| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | semmle.label | true |
|
||||
| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | semmle.label | false |
|
||||
| Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:18:106:19 | [b (line 102): true] "" | semmle.label | successor |
|
||||
| Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | semmle.label | successor |
|
||||
| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:106:18:106:19 | [b (line 102): true] "" | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | semmle.label | successor |
|
||||
| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | semmle.label | successor |
|
||||
| Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | semmle.label | successor |
|
||||
| Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | semmle.label | successor |
|
||||
| Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | semmle.label | successor |
|
||||
| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | semmle.label | true |
|
||||
| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | semmle.label | true |
|
||||
| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | semmle.label | false |
|
||||
| Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | semmle.label | successor |
|
||||
| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:17:108:18 | [b (line 102): false] !... | semmle.label | successor |
|
||||
| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:17:108:18 | [b (line 102): true] !... | semmle.label | successor |
|
||||
| Conditions.cs:108:17:108:18 | [b (line 102): false] !... | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:108:17:108:18 | [b (line 102): true] !... | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | semmle.label | successor |
|
||||
| Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | Conditions.cs:109:17:109:24 | ...; | semmle.label | false |
|
||||
| Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | Conditions.cs:110:16:110:16 | access to local variable x | semmle.label | true |
|
||||
| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" | semmle.label | successor |
|
||||
| Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:23 | ... = ... | semmle.label | successor |
|
||||
| Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:110:16:110:16 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:17 | access to local variable x | semmle.label | successor |
|
||||
| Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:17:109:23 | ... + ... | semmle.label | successor |
|
||||
| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:102:12:102:13 | exit M8 | semmle.label | return |
|
||||
| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:9:110:17 | return ...; | semmle.label | successor |
|
||||
| ExitMethods.cs:6:10:6:11 | enter M1 | ExitMethods.cs:7:5:10:5 | {...} | semmle.label | successor |
|
||||
| ExitMethods.cs:7:5:10:5 | {...} | ExitMethods.cs:8:9:8:25 | ...; | semmle.label | successor |
|
||||
| ExitMethods.cs:8:9:8:24 | call to method ErrorMaybe | ExitMethods.cs:9:9:9:15 | return ...; | semmle.label | successor |
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import csharp
|
||||
import ControlFlow::Internal::PreBasicBlocks
|
||||
|
||||
predicate bbStartInconsistency(ControlFlowElement cfe) {
|
||||
exists(ControlFlow::BasicBlock bb |
|
||||
bb.getFirstNode() = cfe.getAControlFlowNode()
|
||||
) and
|
||||
not cfe = any(PreBasicBlock bb).getFirstElement()
|
||||
}
|
||||
|
||||
predicate bbSuccInconsistency(ControlFlowElement pred, ControlFlowElement succ) {
|
||||
exists(ControlFlow::BasicBlock predBB, ControlFlow::BasicBlock succBB |
|
||||
predBB.getLastNode() = pred.getAControlFlowNode() and
|
||||
succBB = predBB.getASuccessor() and
|
||||
succBB.getFirstNode() = succ.getAControlFlowNode()
|
||||
) and
|
||||
not exists(PreBasicBlock predBB, PreBasicBlock succBB |
|
||||
predBB.getLastElement() = pred and
|
||||
succBB = predBB.getASuccessor() and
|
||||
succBB.getFirstElement() = succ
|
||||
)
|
||||
}
|
||||
|
||||
predicate bbIntraSuccInconsistency(ControlFlowElement pred, ControlFlowElement succ) {
|
||||
exists(ControlFlow::BasicBlock bb, int i |
|
||||
pred.getAControlFlowNode() = bb.getNode(i) and
|
||||
succ.getAControlFlowNode() = bb.getNode(i + 1)
|
||||
) and
|
||||
not exists(PreBasicBlock bb |
|
||||
bb.getLastElement() = pred and
|
||||
bb.getASuccessor().getFirstElement() = succ
|
||||
) and
|
||||
not exists(PreBasicBlock bb, int i |
|
||||
bb.getElement(i) = pred and
|
||||
bb.getElement(i + 1) = succ
|
||||
)
|
||||
}
|
||||
|
||||
from ControlFlowElement cfe1, ControlFlowElement cfe2, string s
|
||||
where
|
||||
bbStartInconsistency(cfe1) and
|
||||
cfe2 = cfe1 and
|
||||
s = "start inconsistency"
|
||||
or
|
||||
bbSuccInconsistency(cfe1, cfe2) and
|
||||
s = "succ inconsistency"
|
||||
or
|
||||
bbIntraSuccInconsistency(cfe1, cfe2) and
|
||||
s = "intra succ inconsistency"
|
||||
select cfe1, cfe2, s
|
||||
@@ -0,0 +1,48 @@
|
||||
import csharp
|
||||
import ControlFlow::Internal
|
||||
|
||||
predicate defReadInconsistency(AssignableRead ar, Expr e, boolean b) {
|
||||
exists(AssignableDefinition def |
|
||||
e = def.getExpr() |
|
||||
b = true and
|
||||
exists(PreSsa::Definition ssaDef |
|
||||
PreSsa::firstReadSameVar(ssaDef, ar) and
|
||||
ssaDef.getDefinition() = def and
|
||||
not exists(Ssa::ExplicitDefinition edef |
|
||||
edef.getADefinition() = def and
|
||||
edef.getAFirstRead() = ar
|
||||
)
|
||||
)
|
||||
or
|
||||
b = false and
|
||||
exists(Ssa::ExplicitDefinition edef |
|
||||
edef.getADefinition() = def and
|
||||
edef.getAFirstRead() = ar and
|
||||
def.getTarget() instanceof PreSsa::SimpleLocalScopeVariable and
|
||||
not exists(PreSsa::Definition ssaDef |
|
||||
PreSsa::firstReadSameVar(ssaDef, ar) and
|
||||
ssaDef.getDefinition() = def
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
predicate readReadInconsistency(LocalScopeVariableRead read1, LocalScopeVariableRead read2, boolean b) {
|
||||
b = true and
|
||||
PreSsa::adjacentReadPairSameVar(read1, read2) and
|
||||
not Ssa::Internal::adjacentReadPairSameVar(read1, read2)
|
||||
or
|
||||
b = false and
|
||||
Ssa::Internal::adjacentReadPairSameVar(read1, read2) and
|
||||
read1.getTarget() instanceof PreSsa::SimpleLocalScopeVariable and
|
||||
not PreSsa::adjacentReadPairSameVar(read1, read2)
|
||||
}
|
||||
|
||||
from Element e1, Element e2, boolean b, string s
|
||||
where
|
||||
defReadInconsistency(e1, e2, b) and
|
||||
s = "def-read inconsistency (" + b + ")"
|
||||
or
|
||||
readReadInconsistency(e1, e2, b) and
|
||||
s = "read-read inconsistency (" + b + ")"
|
||||
select e1, e2, s
|
||||
@@ -49,8 +49,8 @@ class Queries
|
||||
var list11 =
|
||||
from string a in list7
|
||||
select a;
|
||||
|
||||
var list12 =
|
||||
|
||||
var list12 =
|
||||
from a in list1
|
||||
join c in list2 on a equals c[0] into d
|
||||
select (a,d);
|
||||
|
||||
@@ -8,7 +8,7 @@ import semmle.code.csharp.controlflow.ControlFlowGraph
|
||||
*/
|
||||
class UnknownCall extends MethodCall {
|
||||
UnknownCall() { not exists(this.getTarget()) }
|
||||
|
||||
|
||||
override string toString() { result = "Call to unknown method" }
|
||||
}
|
||||
|
||||
|
||||
@@ -369,6 +369,26 @@ class Initializers
|
||||
s = "";
|
||||
return s;
|
||||
}
|
||||
|
||||
string M6(bool b)
|
||||
{
|
||||
var s = "";
|
||||
if (b)
|
||||
s = "abc"; // GOOD
|
||||
if (b)
|
||||
return s;
|
||||
return null;
|
||||
}
|
||||
|
||||
string M7(bool b)
|
||||
{
|
||||
var s = "";
|
||||
if (b)
|
||||
s = "abc"; // BAD
|
||||
if (!b)
|
||||
return s;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
class Anonymous
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
| DeadStoreOfLocal.cs:303:18:303:23 | Object v2 | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:303:22:303:23 | v2 | v2 |
|
||||
| DeadStoreOfLocal.cs:320:9:320:32 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:316:23:316:23 | b | b |
|
||||
| DeadStoreOfLocal.cs:361:13:361:20 | String s = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:361:13:361:13 | s | s |
|
||||
| DeadStoreOfLocal.cs:387:13:387:21 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:385:13:385:13 | s | s |
|
||||
| DeadStoreOfLocalBad.cs:7:13:7:48 | Boolean success = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocalBad.cs:7:13:7:19 | success | success |
|
||||
| DeadStoreOfLocalBad.cs:23:32:23:32 | FormatException e | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocalBad.cs:23:32:23:32 | e | e |
|
||||
| DeadStoreOfLocalBad.cs:32:22:32:22 | String s | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocalBad.cs:32:22:32:22 | s | s |
|
||||
|
||||
@@ -8,16 +8,13 @@
|
||||
* @id java/missing-override-annotation
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
class OverridingMethod extends Method {
|
||||
OverridingMethod() {
|
||||
exists(Method m | this.overrides(m))
|
||||
}
|
||||
OverridingMethod() { exists(Method m | this.overrides(m)) }
|
||||
|
||||
predicate isOverrideAnnotated() {
|
||||
this.getAnAnnotation() instanceof OverrideAnnotation
|
||||
}
|
||||
predicate isOverrideAnnotated() { this.getAnAnnotation() instanceof OverrideAnnotation }
|
||||
}
|
||||
|
||||
from OverridingMethod m, Method overridden
|
||||
@@ -26,5 +23,5 @@ where
|
||||
m.overrides(overridden) and
|
||||
not m.isOverrideAnnotated() and
|
||||
not exists(FunctionalExpr mref | mref.asMethod() = m)
|
||||
select m, "This method overrides $@; it is advisable to add an Override annotation.",
|
||||
overridden, overridden.getDeclaringType() + "." + overridden.getName()
|
||||
select m, "This method overrides $@; it is advisable to add an Override annotation.", overridden,
|
||||
overridden.getDeclaringType() + "." + overridden.getName()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* @id java/non-final-immutable-field
|
||||
* @tags reliability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
class Initialization extends Callable {
|
||||
@@ -41,7 +42,8 @@ class ImmutableField extends Field {
|
||||
forall(FieldAccess fw, AnyAssignment ae |
|
||||
fw.getField().getSourceDeclaration() = this and
|
||||
fw = ae.getDest()
|
||||
| ae.getEnclosingCallable().getDeclaringType() = this.getDeclaringType() and
|
||||
|
|
||||
ae.getEnclosingCallable().getDeclaringType() = this.getDeclaringType() and
|
||||
ae.getEnclosingCallable() instanceof Initialization
|
||||
)
|
||||
}
|
||||
@@ -49,4 +51,5 @@ class ImmutableField extends Field {
|
||||
|
||||
from ImmutableField f
|
||||
where not f.isFinal()
|
||||
select f, "This immutable field is not declared final but is only assigned to during initialization."
|
||||
select f,
|
||||
"This immutable field is not declared final but is only assigned to during initialization."
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/non-private-field
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.JDKAnnotations
|
||||
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
* non-attributable
|
||||
* external/cwe/cwe-477
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
private
|
||||
predicate isDeprecatedCallable(Callable c) {
|
||||
private predicate isDeprecatedCallable(Callable c) {
|
||||
c.getAnAnnotation() instanceof DeprecatedAnnotation or
|
||||
exists(c.getDoc().getJavadoc().getATag("@deprecated"))
|
||||
}
|
||||
@@ -24,5 +24,5 @@ where
|
||||
isDeprecatedCallable(c) and
|
||||
// Exclude deprecated calls from within deprecated code.
|
||||
not isDeprecatedCallable(ca.getCaller())
|
||||
select ca, "Invoking $@ should be avoided because it has been deprecated.",
|
||||
c, c.getDeclaringType() + "." + c.getName()
|
||||
select ca, "Invoking $@ should be avoided because it has been deprecated.", c,
|
||||
c.getDeclaringType() + "." + c.getName()
|
||||
|
||||
@@ -19,9 +19,10 @@ RefType getTaggedType(ThrowsTag tag) {
|
||||
predicate canThrow(Callable callable, RefType exception) {
|
||||
exists(string uncheckedException |
|
||||
uncheckedException = "RuntimeException" or uncheckedException = "Error"
|
||||
|
|
||||
|
|
||||
exception.getASupertype*().hasQualifiedName("java.lang", uncheckedException)
|
||||
) or
|
||||
)
|
||||
or
|
||||
callable.getAnException().getType().getASubtype*() = exception
|
||||
}
|
||||
|
||||
@@ -31,4 +32,5 @@ where
|
||||
docMethod.getDoc().getJavadoc().getAChild*() = throwsTag and
|
||||
not canThrow(docMethod, thrownType)
|
||||
select throwsTag,
|
||||
"Javadoc for " + docMethod + " claims to throw " + thrownType.getName() + " but this is impossible."
|
||||
"Javadoc for " + docMethod + " claims to throw " + thrownType.getName() +
|
||||
" but this is impossible."
|
||||
|
||||
@@ -1,25 +1,23 @@
|
||||
import java
|
||||
|
||||
/** Holds if the given `Javadoc` contains a minimum of a few characters of text. */
|
||||
private
|
||||
predicate acceptableDocText(Javadoc j) {
|
||||
private predicate acceptableDocText(Javadoc j) {
|
||||
// Require minimum combined length of all non-tag elements.
|
||||
sum(JavadocElement e, int toSum |
|
||||
e = j.getAChild() and
|
||||
not e = j.getATag(_) and
|
||||
toSum = e.toString().length()
|
||||
|
|
||||
|
|
||||
toSum
|
||||
) >= 5
|
||||
}
|
||||
|
||||
/** Holds if the given `JavadocTag` contains a minimum of a few characters of text. */
|
||||
private
|
||||
predicate acceptableTag(JavadocTag t) {
|
||||
private predicate acceptableTag(JavadocTag t) {
|
||||
sum(JavadocElement e, int toSum |
|
||||
e = t.getAChild() and
|
||||
toSum = e.toString().length()
|
||||
|
|
||||
|
|
||||
toSum
|
||||
) >= 5
|
||||
}
|
||||
@@ -31,9 +29,7 @@ class DocuRefType extends RefType {
|
||||
this.isPublic()
|
||||
}
|
||||
|
||||
predicate hasAcceptableDocText() {
|
||||
acceptableDocText(this.getDoc().getJavadoc())
|
||||
}
|
||||
predicate hasAcceptableDocText() { acceptableDocText(this.getDoc().getJavadoc()) }
|
||||
}
|
||||
|
||||
/** A public (non-getter, non-setter) `Callable` that does not override another method. */
|
||||
@@ -50,12 +46,11 @@ class DocuCallable extends Callable {
|
||||
not this.getLocation() = this.getDeclaringType().getLocation()
|
||||
}
|
||||
|
||||
predicate hasAcceptableDocText() {
|
||||
acceptableDocText(this.getDoc().getJavadoc())
|
||||
}
|
||||
predicate hasAcceptableDocText() { acceptableDocText(this.getDoc().getJavadoc()) }
|
||||
|
||||
string toMethodOrConstructorString() {
|
||||
(this instanceof Method and result = "method") or
|
||||
(this instanceof Method and result = "method")
|
||||
or
|
||||
(this instanceof Constructor and result = "constructor")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,11 @@
|
||||
* @id java/undocumented-function
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import JavadocCommon
|
||||
|
||||
from DocuCallable c
|
||||
where not c.hasAcceptableDocText()
|
||||
select c, "This " + c.toMethodOrConstructorString() + " does not have a non-trivial Javadoc comment."
|
||||
select c,
|
||||
"This " + c.toMethodOrConstructorString() + " does not have a non-trivial Javadoc comment."
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/undocumented-parameter
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import JavadocCommon
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/undocumented-return-value
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import JavadocCommon
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/undocumented-exception
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import JavadocCommon
|
||||
|
||||
@@ -18,5 +19,6 @@ where
|
||||
e.getType() = t and
|
||||
not c.hasAcceptableThrowsTag(e)
|
||||
)
|
||||
select c, "This " + c.toMethodOrConstructorString() + " throws $@ but does not have a corresponding Javadoc tag.",
|
||||
t, t.getName()
|
||||
select c,
|
||||
"This " + c.toMethodOrConstructorString() +
|
||||
" throws $@ but does not have a corresponding Javadoc tag.", t, t.getName()
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/undocumented-type
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import JavadocCommon
|
||||
|
||||
|
||||
@@ -13,20 +13,17 @@ import java
|
||||
from Callable callable, ParamTag paramTag, string what, string msg
|
||||
where
|
||||
callable.(Documentable).getJavadoc().getAChild() = paramTag and
|
||||
( if callable instanceof Constructor
|
||||
then what = "constructor"
|
||||
else what = "method"
|
||||
) and
|
||||
if exists(paramTag.getParamName()) then (
|
||||
(if callable instanceof Constructor then what = "constructor" else what = "method") and
|
||||
if exists(paramTag.getParamName())
|
||||
then (
|
||||
// The tag's value is neither matched by a callable parameter name ...
|
||||
not callable.getAParameter().getName() = paramTag.getParamName() and
|
||||
// ... nor by a type parameter name.
|
||||
not exists(TypeVariable tv | tv.getGenericCallable() = callable |
|
||||
"<" + tv.getName() + ">" = paramTag.getParamName()
|
||||
) and
|
||||
msg = "@param tag \"" + paramTag.getParamName()
|
||||
+ "\" does not match any actual parameter of " + what + " \""
|
||||
+ callable.getName() + "()\"."
|
||||
msg = "@param tag \"" + paramTag.getParamName() + "\" does not match any actual parameter of " +
|
||||
what + " \"" + callable.getName() + "()\"."
|
||||
) else
|
||||
// The tag has no value at all.
|
||||
msg = "This @param tag does not have a value."
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/use-of-clone-method
|
||||
* @tags reliability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
class ObjectCloneMethod extends Method {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/override-of-clone-method
|
||||
* @tags reliability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
class ObjectCloneMethod extends Method {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/use-of-cloneable-interface
|
||||
* @tags reliability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from RefType t
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* @id java/override-of-finalize-method
|
||||
* @tags reliability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
class ObjectFinalizeMethod extends Method {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* @id java/misnamed-constant
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import NamingConventionsCommon
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* @id java/misnamed-function
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from Method m
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* @id java/misnamed-package
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from RefType t, Package p
|
||||
@@ -14,4 +15,6 @@ where
|
||||
p = t.getPackage() and
|
||||
t.fromSource() and
|
||||
not p.getName().toLowerCase() = p.getName()
|
||||
select t, "This type belongs to the package " + p.getName() + ", which should not include uppercase letters."
|
||||
select t,
|
||||
"This type belongs to the package " + p.getName() +
|
||||
", which should not include uppercase letters."
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* @id java/misnamed-type
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from RefType t
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* @id java/misnamed-variable
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import NamingConventionsCommon
|
||||
|
||||
|
||||
@@ -7,12 +7,14 @@
|
||||
* @id java/multiple-statements-on-same-line
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
predicate lineDefinesEnum(File f, int line) {
|
||||
exists(Location l |
|
||||
exists(EnumType e | e.getLocation() = l) or
|
||||
exists(EnumConstant e | e.getLocation() = l) |
|
||||
exists(EnumConstant e | e.getLocation() = l)
|
||||
|
|
||||
f = l.getFile() and line = l.getStartLine()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/raw-constructor-invocation
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from ClassInstanceExpr cie
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/raw-return-type
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from Method m
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/raw-variable
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from Variable v
|
||||
|
||||
@@ -17,73 +17,61 @@ class SuppressionComment extends Javadoc {
|
||||
isEolComment(this) and
|
||||
exists(string text | text = getChild(0).getText() |
|
||||
// match `lgtm[...]` anywhere in the comment
|
||||
annotation = text.regexpFind("(?i)\\blgtm\\s*\\[[^\\]]*\\]", _, _)
|
||||
or
|
||||
annotation = text.regexpFind("(?i)\\blgtm\\s*\\[[^\\]]*\\]", _, _) or
|
||||
// match `lgtm` at the start of the comment and after semicolon
|
||||
annotation = text.regexpFind("(?i)(?<=^|;)\\s*lgtm(?!\\B|\\s*\\[)", _, _).trim()
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the text of this suppression comment.
|
||||
*/
|
||||
string getText() {
|
||||
result = getChild(0).getText()
|
||||
}
|
||||
* Gets the text of this suppression comment.
|
||||
*/
|
||||
string getText() { result = getChild(0).getText() }
|
||||
|
||||
/** Gets the suppression annotation in this comment. */
|
||||
string getAnnotation() {
|
||||
result = annotation
|
||||
}
|
||||
string getAnnotation() { result = annotation }
|
||||
|
||||
/**
|
||||
* Holds if this comment applies to the range from column `startcolumn` of line `startline`
|
||||
* to column `endcolumn` of line `endline` in file `filepath`.
|
||||
*/
|
||||
* Holds if this comment applies to the range from column `startcolumn` of line `startline`
|
||||
* to column `endcolumn` of line `endline` in file `filepath`.
|
||||
*/
|
||||
predicate covers(string filepath, int startline, int startcolumn, int endline, int endcolumn) {
|
||||
this.getLocation().hasLocationInfo(filepath, startline, _, endline, endcolumn) and
|
||||
startcolumn = 1
|
||||
}
|
||||
|
||||
/** Gets the scope of this suppression. */
|
||||
SuppressionScope getScope() {
|
||||
this = result.getSuppressionComment()
|
||||
}
|
||||
SuppressionScope getScope() { this = result.getSuppressionComment() }
|
||||
}
|
||||
|
||||
/**
|
||||
* The scope of an alert suppression comment.
|
||||
*/
|
||||
class SuppressionScope extends @javadoc {
|
||||
SuppressionScope() {
|
||||
this instanceof SuppressionComment
|
||||
}
|
||||
SuppressionScope() { this instanceof SuppressionComment }
|
||||
|
||||
/** Gets a suppression comment with this scope. */
|
||||
SuppressionComment getSuppressionComment() {
|
||||
result = this
|
||||
}
|
||||
SuppressionComment getSuppressionComment() { result = this }
|
||||
|
||||
/**
|
||||
* Holds if this element is at the specified location.
|
||||
* The location spans column `startcolumn` of line `startline` to
|
||||
* column `endcolumn` of line `endline` in file `filepath`.
|
||||
* For more information, see
|
||||
* [LGTM locations](https://lgtm.com/help/ql/locations).
|
||||
*/
|
||||
predicate hasLocationInfo(string filepath, int startline, int startcolumn, int endline, int endcolumn) {
|
||||
* Holds if this element is at the specified location.
|
||||
* The location spans column `startcolumn` of line `startline` to
|
||||
* column `endcolumn` of line `endline` in file `filepath`.
|
||||
* For more information, see
|
||||
* [LGTM locations](https://lgtm.com/help/ql/locations).
|
||||
*/
|
||||
predicate hasLocationInfo(
|
||||
string filepath, int startline, int startcolumn, int endline, int endcolumn
|
||||
) {
|
||||
this.(SuppressionComment).covers(filepath, startline, startcolumn, endline, endcolumn)
|
||||
}
|
||||
|
||||
/** Gets a textual representation of this element. */
|
||||
string toString() {
|
||||
result = "suppression range"
|
||||
}
|
||||
string toString() { result = "suppression range" }
|
||||
}
|
||||
|
||||
from SuppressionComment c
|
||||
select
|
||||
c, // suppression comment
|
||||
c.getText(), // text of suppression comment (excluding delimiters)
|
||||
select c, // suppression comment
|
||||
c.getText(), // text of suppression comment (excluding delimiters)
|
||||
c.getAnnotation(), // text of suppression annotation
|
||||
c.getScope() // scope of suppression
|
||||
c.getScope() // scope of suppression
|
||||
|
||||
@@ -32,5 +32,4 @@ where
|
||||
t2.getAMethod().getName().toLowerCase().matches("%visit%") or
|
||||
t1.getPackage() = t2.getPackage()
|
||||
)
|
||||
select t1, "This type and type $@ are mutually dependent.",
|
||||
t2, t2.getName()
|
||||
select t1, "This type and type $@ are mutually dependent.", t2, t2.getName()
|
||||
|
||||
@@ -6,11 +6,11 @@ import semmle.code.xml.MavenPom
|
||||
* within the given container (folder, jar file etc.).
|
||||
*/
|
||||
predicate pomDependsOnContainer(Pom f, Container g) {
|
||||
exists(RefType source, RefType target |
|
||||
source.getFile().getParentContainer*() = f.getFile().getParentContainer() and
|
||||
target.getFile().getParentContainer*() = g and
|
||||
depends(source, target)
|
||||
)
|
||||
exists(RefType source, RefType target |
|
||||
source.getFile().getParentContainer*() = f.getFile().getParentContainer() and
|
||||
target.getFile().getParentContainer*() = g and
|
||||
depends(source, target)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -18,9 +18,9 @@ predicate pomDependsOnContainer(Pom f, Container g) {
|
||||
* within the project represented by the targetPom.
|
||||
*/
|
||||
predicate pomDependsOnPom(Pom sourcePom, Pom targetPom) {
|
||||
exists(RefType source, RefType target |
|
||||
source.getFile().getParentContainer*() = sourcePom.getFile().getParentContainer() and
|
||||
target.getFile().getParentContainer*() = targetPom.getFile().getParentContainer() and
|
||||
depends(source, target)
|
||||
)
|
||||
exists(RefType source, RefType target |
|
||||
source.getFile().getParentContainer*() = sourcePom.getFile().getParentContainer() and
|
||||
target.getFile().getParentContainer*() = targetPom.getFile().getParentContainer() and
|
||||
depends(source, target)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -9,47 +9,35 @@
|
||||
|
||||
import UnusedMavenDependencies
|
||||
|
||||
/*
|
||||
/**
|
||||
* A whitelist of binary dependencies that should never be highlighted as unusued.
|
||||
*/
|
||||
predicate whitelist(Dependency d) {
|
||||
/*
|
||||
* jsr305 contains package annotations. If a project uses those exclusively, we will
|
||||
* consider it "unused".
|
||||
*/
|
||||
// jsr305 contains package annotations. If a project uses those exclusively, we will
|
||||
// consider it "unused".
|
||||
d.getShortCoordinate() = "com.google.code.findbugs:jsr305"
|
||||
}
|
||||
|
||||
from PomDependency d, Pom source
|
||||
where
|
||||
source.getADependency() = d and
|
||||
/*
|
||||
* There is not a Pom file for the target of this dependency, so we assume that it was resolved by
|
||||
* a binary file in the local maven repository.
|
||||
*/
|
||||
not exists(Pom target | target = d.getPom()) and
|
||||
/*
|
||||
* In order to accurately identify whether this binary dependency is required, we must have identified
|
||||
* a Maven repository. If we have not found a repository, it's likely that it has a custom path of
|
||||
* which we are unaware, so do not report any problems.
|
||||
*/
|
||||
exists(MavenRepo mr) and
|
||||
/*
|
||||
* We either haven't indexed a relevant jar file, which suggests that nothing statically depended upon
|
||||
* it, or we have indexed the relevant jar file, but no source code in the project defined by the pom
|
||||
* depends on any code within the detected jar.
|
||||
*/
|
||||
not pomDependsOnContainer(source, d.getJar()) and
|
||||
/*
|
||||
* If something that depends on us depends on the jar represented by this dependency, and it doesn't
|
||||
* depend directly on the jar itself, we don't consider it to be "unused".
|
||||
*/
|
||||
not exists(Pom pomThatDependsOnSource |
|
||||
pomThatDependsOnSource.getAnExportedPom+() = source
|
||||
|
|
||||
pomDependsOnContainer(pomThatDependsOnSource, d.getJar()) and
|
||||
not exists(File f | f = pomThatDependsOnSource.getADependency().getJar() and f = d.getJar())) and
|
||||
// Filter out those dependencies on the whitelist
|
||||
not whitelist(d)
|
||||
source.getADependency() = d and
|
||||
// There is not a Pom file for the target of this dependency, so we assume that it was resolved by
|
||||
// a binary file in the local maven repository.
|
||||
not exists(Pom target | target = d.getPom()) and
|
||||
// In order to accurately identify whether this binary dependency is required, we must have identified
|
||||
// a Maven repository. If we have not found a repository, it's likely that it has a custom path of
|
||||
// which we are unaware, so do not report any problems.
|
||||
exists(MavenRepo mr) and
|
||||
// We either haven't indexed a relevant jar file, which suggests that nothing statically depended upon
|
||||
// it, or we have indexed the relevant jar file, but no source code in the project defined by the pom
|
||||
// depends on any code within the detected jar.
|
||||
not pomDependsOnContainer(source, d.getJar()) and
|
||||
// If something that depends on us depends on the jar represented by this dependency, and it doesn't
|
||||
// depend directly on the jar itself, we don't consider it to be "unused".
|
||||
not exists(Pom pomThatDependsOnSource | pomThatDependsOnSource.getAnExportedPom+() = source |
|
||||
pomDependsOnContainer(pomThatDependsOnSource, d.getJar()) and
|
||||
not exists(File f | f = pomThatDependsOnSource.getADependency().getJar() and f = d.getJar())
|
||||
) and
|
||||
// Filter out those dependencies on the whitelist
|
||||
not whitelist(d)
|
||||
select d, "Maven dependency on the binary package " + d.getShortCoordinate() + " is unused."
|
||||
|
||||
|
||||
@@ -13,22 +13,16 @@ import UnusedMavenDependencies
|
||||
|
||||
from PomDependency d, Pom source, Pom target
|
||||
where
|
||||
source.getADependency() = d and
|
||||
/*
|
||||
* We have a targetPom file, so this is a "source" dependency, rather than a binary dependency
|
||||
* from the Maven repository. Note, although .pom files exist in the local maven repository, they
|
||||
* are usually not indexed because they are outside the source directory. We assume that they have
|
||||
* not been indexed.
|
||||
*/
|
||||
target = d.getPom() and
|
||||
/*
|
||||
* If we have a pom for the target of this dependency, then it is unused iff neither it, nor any
|
||||
* of its transitive dependencies are required.
|
||||
*/
|
||||
not exists(Pom exported |
|
||||
exported = target.getAnExportedPom*()
|
||||
|
|
||||
pomDependsOnContainer(source, exported.getAnExportedDependency().getJar()) or
|
||||
pomDependsOnPom(source, exported)
|
||||
)
|
||||
source.getADependency() = d and
|
||||
// We have a targetPom file, so this is a "source" dependency, rather than a binary dependency
|
||||
// from the Maven repository. Note, although .pom files exist in the local maven repository, they
|
||||
// are usually not indexed because they are outside the source directory. We assume that they have
|
||||
// not been indexed.
|
||||
target = d.getPom() and
|
||||
// If we have a pom for the target of this dependency, then it is unused iff neither it, nor any
|
||||
// of its transitive dependencies are required.
|
||||
not exists(Pom exported | exported = target.getAnExportedPom*() |
|
||||
pomDependsOnContainer(source, exported.getAnExportedDependency().getJar()) or
|
||||
pomDependsOnPom(source, exported)
|
||||
)
|
||||
select d, "Maven dependency onto " + d.getShortCoordinate() + " is unused."
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
* @tags maintainability
|
||||
* modularity
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
Member getAUsedMember(Method m) {
|
||||
@@ -21,9 +22,7 @@ int dependencyCount(Method source, RefType target) {
|
||||
result = strictcount(Member m | m = getAUsedMember(source) and m = target.getAMember())
|
||||
}
|
||||
|
||||
predicate methodDependsOn(Method m, RefType target) {
|
||||
exists(dependencyCount(m, target))
|
||||
}
|
||||
predicate methodDependsOn(Method m, RefType target) { exists(dependencyCount(m, target)) }
|
||||
|
||||
predicate dependsOn(RefType source, RefType target) {
|
||||
methodDependsOn(source.getACallable(), target)
|
||||
@@ -36,7 +35,7 @@ int selfDependencyCount(Method source) {
|
||||
predicate dependsHighlyOn(Method source, RefType target, int selfCount, int depCount) {
|
||||
depCount = dependencyCount(source, target) and
|
||||
selfCount = selfDependencyCount(source) and
|
||||
depCount > 2*selfCount and
|
||||
depCount > 2 * selfCount and
|
||||
depCount > 4
|
||||
}
|
||||
|
||||
@@ -69,6 +68,7 @@ where
|
||||
// Don't include types that are used from many different places - we only highlight
|
||||
// relatively local fixes that could reasonably be implemented.
|
||||
count(Method yetAnotherMethod | query(yetAnotherMethod, other, _, _)) < 10
|
||||
select m, "Method " + m.getName() + " is too closely tied to $@: " + depCount +
|
||||
" dependencies to it, but only " + selfCount + " dependencies to its own type.",
|
||||
other, other.getName()
|
||||
select m,
|
||||
"Method " + m.getName() + " is too closely tied to $@: " + depCount +
|
||||
" dependencies to it, but only " + selfCount + " dependencies to its own type.", other,
|
||||
other.getName()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* @tags maintainability
|
||||
* modularity
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from RefType t, int aff, int eff
|
||||
@@ -16,6 +17,8 @@ where
|
||||
t.fromSource() and
|
||||
aff = t.getMetrics().getAfferentCoupling() and
|
||||
eff = t.getMetrics().getEfferentSourceCoupling() and
|
||||
aff > 15 and eff > 15
|
||||
aff > 15 and
|
||||
eff > 15
|
||||
select t as Class,
|
||||
"Hub class: this class depends on " + eff.toString() + " classes and is used by " + aff.toString() + " classes."
|
||||
"Hub class: this class depends on " + eff.toString() + " classes and is used by " + aff.toString()
|
||||
+ " classes."
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* @tags maintainability
|
||||
* modularity
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
predicate enclosingRefType(Variable v, RefType type) {
|
||||
@@ -60,5 +61,6 @@ where
|
||||
cb > 20 and
|
||||
ca >= cb and
|
||||
not exists(CompilationUnit cu | cu = a.getCompilationUnit() and cu = b.getCompilationUnit())
|
||||
select a, "Type " + a.getName() + " is too closely tied to $@ (" + ca.toString() +
|
||||
" dependencies one way and " + cb.toString() + " the other).", b, b.getName()
|
||||
select a,
|
||||
"Type " + a.getName() + " is too closely tied to $@ (" + ca.toString() +
|
||||
" dependencies one way and " + cb.toString() + " the other).", b, b.getName()
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/jdk-internal-api-access
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
import JdkInternals
|
||||
import JdkInternalsReplacement
|
||||
@@ -24,72 +25,83 @@ predicate importedPackage(Import i, Package p) {
|
||||
}
|
||||
|
||||
predicate typeReplacement(RefType t, string repl) {
|
||||
exists(string old | jdkInternalReplacement(old, repl) |
|
||||
t.getQualifiedName() = old
|
||||
)
|
||||
exists(string old | jdkInternalReplacement(old, repl) | t.getQualifiedName() = old)
|
||||
}
|
||||
|
||||
predicate packageReplacementForType(RefType t, string repl) {
|
||||
exists(string old, string pkgName |
|
||||
jdkInternalReplacement(old, repl) and t.getPackage().getName() = pkgName
|
||||
|
|
||||
|
|
||||
pkgName = old or
|
||||
pkgName.prefix(old.length()+1) = old + "."
|
||||
pkgName.prefix(old.length() + 1) = old + "."
|
||||
)
|
||||
}
|
||||
|
||||
predicate packageReplacement(Package p, string repl) {
|
||||
exists(string old | jdkInternalReplacement(old, repl) |
|
||||
p.getName() = old or
|
||||
p.getName().prefix(old.length()+1) = old + "."
|
||||
p.getName().prefix(old.length() + 1) = old + "."
|
||||
)
|
||||
}
|
||||
|
||||
predicate replacement(RefType t, string repl) {
|
||||
typeReplacement(t, repl) or
|
||||
typeReplacement(t, repl)
|
||||
or
|
||||
not typeReplacement(t, _) and packageReplacementForType(t, repl)
|
||||
}
|
||||
|
||||
abstract class JdkInternalAccess extends Element {
|
||||
abstract string getAccessedApi();
|
||||
|
||||
abstract string getReplacement();
|
||||
}
|
||||
|
||||
class JdkInternalTypeAccess extends JdkInternalAccess, TypeAccess {
|
||||
JdkInternalTypeAccess() {
|
||||
jdkInternalApi(this.getType().(RefType).getPackage().getName())
|
||||
}
|
||||
override string getAccessedApi() {
|
||||
result = getType().(RefType).getQualifiedName()
|
||||
}
|
||||
JdkInternalTypeAccess() { jdkInternalApi(this.getType().(RefType).getPackage().getName()) }
|
||||
|
||||
override string getAccessedApi() { result = getType().(RefType).getQualifiedName() }
|
||||
|
||||
override string getReplacement() {
|
||||
exists(RefType t | this.getType() = t |
|
||||
(replacement(t, result) or not replacement(t, _) and result = "unknown")
|
||||
(
|
||||
replacement(t, result)
|
||||
or
|
||||
not replacement(t, _) and result = "unknown"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
class JdkInternalImport extends JdkInternalAccess, Import {
|
||||
JdkInternalImport() {
|
||||
exists(RefType t | importedType(this, t) |
|
||||
jdkInternalApi(t.getPackage().getName())
|
||||
) or
|
||||
exists(Package p | importedPackage(this, p) |
|
||||
jdkInternalApi(p.getName())
|
||||
)
|
||||
exists(RefType t | importedType(this, t) | jdkInternalApi(t.getPackage().getName()))
|
||||
or
|
||||
exists(Package p | importedPackage(this, p) | jdkInternalApi(p.getName()))
|
||||
}
|
||||
|
||||
override string getAccessedApi() {
|
||||
exists(RefType t | result = t.getQualifiedName() | importedType(this, t)) or
|
||||
exists(RefType t | result = t.getQualifiedName() | importedType(this, t))
|
||||
or
|
||||
exists(Package p | result = p.getName() | importedPackage(this, p))
|
||||
}
|
||||
|
||||
override string getReplacement() {
|
||||
exists(RefType t |
|
||||
importedType(this, t) and
|
||||
(replacement(t, result) or not replacement(t, _) and result = "unknown")
|
||||
) or
|
||||
(
|
||||
replacement(t, result)
|
||||
or
|
||||
not replacement(t, _) and result = "unknown"
|
||||
)
|
||||
)
|
||||
or
|
||||
exists(Package p |
|
||||
importedPackage(this, p) and
|
||||
(packageReplacement(p, result) or not packageReplacement(p, _) and result = "unknown")
|
||||
(
|
||||
packageReplacement(p, result)
|
||||
or
|
||||
not packageReplacement(p, _) and result = "unknown"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -97,8 +109,8 @@ class JdkInternalImport extends JdkInternalAccess, Import {
|
||||
predicate jdkPackage(Package p) {
|
||||
exists(string pkgName |
|
||||
p.getName() = pkgName or
|
||||
p.getName().prefix(pkgName.length()+1) = pkgName + "."
|
||||
|
|
||||
p.getName().prefix(pkgName.length() + 1) = pkgName + "."
|
||||
|
|
||||
pkgName = "com.sun" or
|
||||
pkgName = "sun" or
|
||||
pkgName = "java" or
|
||||
@@ -115,7 +127,7 @@ predicate jdkPackage(Package p) {
|
||||
from JdkInternalAccess ta, string repl, string msg
|
||||
where
|
||||
repl = ta.getReplacement() and
|
||||
(if (repl="unknown") then msg = "" else msg = " (" + repl + ")") and
|
||||
(if (repl = "unknown") then msg = "" else msg = " (" + repl + ")") and
|
||||
not jdkInternalApi(ta.getCompilationUnit().getPackage().getName()) and
|
||||
not jdkPackage(ta.getCompilationUnit().getPackage())
|
||||
select ta, "Access to unsupported JDK-internal API '" + ta.getAccessedApi() + "'." + msg
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
*
|
||||
* http://hg.openjdk.java.net/jdk9/jdk9/langtools/file/6ba2130e87bd/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdk8_internals.txt
|
||||
*/
|
||||
|
||||
predicate jdkInternalApi(string p) {
|
||||
p = "apple.applescript" or
|
||||
p = "apple.laf" or
|
||||
|
||||
@@ -3,16 +3,14 @@
|
||||
*
|
||||
* http://hg.openjdk.java.net/jdk9/jdk9/langtools/file/6ba2130e87bd/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdkinternals.properties
|
||||
*/
|
||||
|
||||
predicate jdkInternalReplacement(string old, string new) {
|
||||
exists(string r, int eqIdx | jdkInternalReplacement(r) and eqIdx = r.indexOf("=") |
|
||||
old = r.prefix(eqIdx) and
|
||||
new = r.suffix(eqIdx+1)
|
||||
new = r.suffix(eqIdx + 1)
|
||||
)
|
||||
}
|
||||
|
||||
private
|
||||
predicate jdkInternalReplacement(string r) {
|
||||
private predicate jdkInternalReplacement(string r) {
|
||||
r = "com.sun.crypto.provider.SunJCE=Use java.security.Security.getProvider(provider-name) @since 1.3" or
|
||||
r = "com.sun.org.apache.xml.internal.security=Use java.xml.crypto @since 1.6" or
|
||||
r = "com.sun.org.apache.xml.internal.security.utils.Base64=Use java.util.Base64 @since 1.8" or
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @id java/underscore-identifier
|
||||
* @tags maintainability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
class IdentifierElement extends Element {
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
* testability
|
||||
* complexity
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
class ComplexStmt extends Stmt {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @tags testability
|
||||
* readability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
predicate nontrivialLogicalOperator(BinaryExpr e) {
|
||||
|
||||
@@ -9,27 +9,28 @@
|
||||
* useless-code
|
||||
* external/cwe/cwe-561
|
||||
*/
|
||||
|
||||
import semmle.code.java.deadcode.DeadCode
|
||||
|
||||
from DeadClass c, Element origin, string reason
|
||||
where
|
||||
if exists(DeadRoot root | root = c.getADeadRoot() | not root = c.getACallable()) then (
|
||||
// Report a list of the dead roots.
|
||||
origin = c.getADeadRoot() and
|
||||
not origin = c.getACallable() and
|
||||
// There are uses of this class from outside the class.
|
||||
reason = " is only used from dead code originating at $@."
|
||||
if exists(DeadRoot root | root = c.getADeadRoot() | not root = c.getACallable())
|
||||
then (
|
||||
// Report a list of the dead roots.
|
||||
origin = c.getADeadRoot() and
|
||||
not origin = c.getACallable() and
|
||||
// There are uses of this class from outside the class.
|
||||
reason = " is only used from dead code originating at $@."
|
||||
) else (
|
||||
// There are no dead roots outside this class.
|
||||
origin = c and
|
||||
if c.isUnusedOutsideClass() then
|
||||
if c.isUnusedOutsideClass()
|
||||
then
|
||||
// Never accessed outside this class, so it's entirely unused.
|
||||
reason = " is entirely unused."
|
||||
else
|
||||
/*
|
||||
* There are no dead roots outside the class, but the class has a possible liveness cause
|
||||
* external to the class, so it must be accessed from at least one dead-code cycle.
|
||||
*/
|
||||
// There are no dead roots outside the class, but the class has a possible liveness cause
|
||||
// external to the class, so it must be accessed from at least one dead-code cycle.
|
||||
reason = " is only used from or in a dead-code cycle."
|
||||
)
|
||||
select c, "The class " + c.getName() + reason, origin, origin.getName()
|
||||
|
||||
@@ -16,8 +16,13 @@ import semmle.code.java.deadcode.DeadCode
|
||||
from DeadField f, Element origin, string reason
|
||||
where
|
||||
not f.isInDeadScope() and
|
||||
if exists(FieldRead read | read = f.getAnAccess()) then (
|
||||
if exists(DeadRoot root | root = getADeadRoot(f.getAnAccess().(FieldRead).getEnclosingCallable())) then (
|
||||
if exists(FieldRead read | read = f.getAnAccess())
|
||||
then (
|
||||
if
|
||||
exists(DeadRoot root |
|
||||
root = getADeadRoot(f.getAnAccess().(FieldRead).getEnclosingCallable())
|
||||
)
|
||||
then (
|
||||
origin = getADeadRoot(f.getAnAccess().(FieldRead).getEnclosingCallable()) and
|
||||
reason = " is only read from dead code originating at $@."
|
||||
) else (
|
||||
|
||||
@@ -9,25 +9,30 @@
|
||||
* useless-code
|
||||
* external/cwe/cwe-561
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.deadcode.DeadCode
|
||||
|
||||
from DeadMethod c, Callable origin, string reason
|
||||
where
|
||||
not c.isInDeadScope() and
|
||||
if exists(DeadRoot deadRoot | deadRoot = getADeadRoot(c) | deadRoot.getSourceDeclaration() != c) then (
|
||||
if exists(DeadRoot deadRoot | deadRoot = getADeadRoot(c) | deadRoot.getSourceDeclaration() != c)
|
||||
then (
|
||||
// We've found a dead root that is not this callable (or an instantiation thereof).
|
||||
origin = getADeadRoot(c).getSourceDeclaration() and
|
||||
reason = " is only used from dead code originating at $@."
|
||||
) else (
|
||||
origin = c and
|
||||
if exists(Callable cause | cause = possibleLivenessCause(c) and not cause instanceof DeadRoot |
|
||||
cause.getSourceDeclaration() = c implies possibleLivenessCause(cause).getSourceDeclaration() != c)
|
||||
if
|
||||
exists(Callable cause | cause = possibleLivenessCause(c) and not cause instanceof DeadRoot |
|
||||
cause.getSourceDeclaration() = c
|
||||
implies
|
||||
possibleLivenessCause(cause).getSourceDeclaration() != c
|
||||
)
|
||||
then
|
||||
// There are no dead roots that are not this callable (or an instantiation thereof), and at least one
|
||||
// liveness cause (ignoring trivial cycles between a parameterized callable and its source declaration).
|
||||
reason = " is only used from, or in, a dead-code cycle."
|
||||
else
|
||||
reason = " is entirely unused."
|
||||
else reason = " is entirely unused."
|
||||
)
|
||||
select c, "The method " + c.getName() + reason, origin, origin.getName()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* @tags maintainability
|
||||
* external/cwe/cwe-561
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.deadcode.DeadCode
|
||||
|
||||
@@ -16,35 +17,42 @@ from File f, int n
|
||||
where
|
||||
n =
|
||||
// Lines of code contributed by dead classes.
|
||||
sum(DeadClass deadClass | deadClass.getFile() = f |
|
||||
deadClass.getNumberOfLinesOfCode() -
|
||||
/*
|
||||
* Remove inner and local classes, as they are reported as separate dead classes. Do not
|
||||
* remove anonymous classes, because they aren't reported separately.
|
||||
*/
|
||||
sum(NestedClass innerClass | innerClass.getEnclosingType() = deadClass and not innerClass.isAnonymous() |
|
||||
innerClass.getNumberOfLinesOfCode()
|
||||
sum(DeadClass deadClass |
|
||||
deadClass.getFile() = f
|
||||
|
|
||||
deadClass.getNumberOfLinesOfCode() -
|
||||
// Remove inner and local classes, as they are reported as separate dead classes. Do not
|
||||
// remove anonymous classes, because they aren't reported separately.
|
||||
sum(NestedClass innerClass |
|
||||
innerClass.getEnclosingType() = deadClass and not innerClass.isAnonymous()
|
||||
|
|
||||
innerClass.getNumberOfLinesOfCode()
|
||||
)
|
||||
) +
|
||||
// Lines of code contributed by dead methods, not in dead classes.
|
||||
sum(DeadMethod deadMethod |
|
||||
deadMethod.getFile() = f and not deadMethod.isInDeadScope()
|
||||
|
|
||||
deadMethod.getNumberOfLinesOfCode() -
|
||||
// Remove local classes defined in the dead method - they are reported separately as a dead
|
||||
// class. We keep anonymous class counts, because anonymous classes are not reported
|
||||
// separately.
|
||||
sum(LocalClass localClass |
|
||||
localClass.getLocalClassDeclStmt().getEnclosingCallable() = deadMethod
|
||||
|
|
||||
localClass.getNumberOfLinesOfCode()
|
||||
)
|
||||
) +
|
||||
// Lines of code contributed by dead fields, not in dead classes.
|
||||
sum(DeadField deadField |
|
||||
deadField.getFile() = f and not deadField.isInDeadScope()
|
||||
|
|
||||
deadField.getNumberOfLinesOfCode()
|
||||
) +
|
||||
// Lines of code contributed by unused enum constants.
|
||||
sum(UnusedEnumConstant deadEnumConstant |
|
||||
deadEnumConstant.getFile() = f
|
||||
|
|
||||
deadEnumConstant.getNumberOfLinesOfCode()
|
||||
)
|
||||
) +
|
||||
// Lines of code contributed by dead methods, not in dead classes.
|
||||
sum(DeadMethod deadMethod | deadMethod.getFile() = f and not deadMethod.isInDeadScope() |
|
||||
deadMethod.getNumberOfLinesOfCode() -
|
||||
/*
|
||||
* Remove local classes defined in the dead method - they are reported separately as a dead
|
||||
* class. We keep anonymous class counts, because anonymous classes are not reported
|
||||
* separately.
|
||||
*/
|
||||
sum(LocalClass localClass | localClass.getLocalClassDeclStmt().getEnclosingCallable() = deadMethod |
|
||||
localClass.getNumberOfLinesOfCode()
|
||||
)
|
||||
) +
|
||||
// Lines of code contributed by dead fields, not in dead classes.
|
||||
sum(DeadField deadField | deadField.getFile() = f and not deadField.isInDeadScope() |
|
||||
deadField.getNumberOfLinesOfCode()
|
||||
) +
|
||||
// Lines of code contributed by unused enum constants.
|
||||
sum(UnusedEnumConstant deadEnumConstant | deadEnumConstant.getFile() = f |
|
||||
deadEnumConstant.getNumberOfLinesOfCode()
|
||||
)
|
||||
select f, n
|
||||
order by n desc
|
||||
select f, n order by n desc
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* useless-code
|
||||
* external/cwe/cwe-561
|
||||
*/
|
||||
|
||||
import semmle.code.java.deadcode.DeadCode
|
||||
|
||||
from RootdefCallable c
|
||||
|
||||
@@ -13,25 +13,26 @@
|
||||
* external/cwe/cwe-578
|
||||
* external/cwe/cwe-382
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- The enterprise bean must not attempt to create a class loader; obtain the current class loader;
|
||||
set the context class loader; set security manager; create a new security manager; stop the
|
||||
JVM; or change the input, output, and error streams.
|
||||
|
||||
These functions are reserved for the EJB container. Allowing the enterprise bean to use these functions
|
||||
could compromise security and decrease the container's ability to properly manage the runtime envi-
|
||||
ronment.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - The enterprise bean must not attempt to create a class loader; obtain the current class loader;
|
||||
* set the context class loader; set security manager; create a new security manager; stop the
|
||||
* JVM; or change the input, output, and error streams.
|
||||
*
|
||||
* These functions are reserved for the EJB container. Allowing the enterprise bean to use these functions
|
||||
* could compromise security and decrease the container's ability to properly manage the runtime envi-
|
||||
* ronment.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenContainerInterferenceCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not interfere with its container's operation by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not interfere with its container's operation by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -10,27 +10,28 @@
|
||||
* @tags reliability
|
||||
* external/cwe/cwe-576
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- An enterprise bean must not use the java.io package to attempt to access files and directo-
|
||||
ries in the file system.
|
||||
|
||||
The file system APIs are not well-suited for business components to access data. Business components
|
||||
should use a resource manager API, such as JDBC, to store data.
|
||||
|
||||
- The enterprise bean must not attempt to directly read or write a file descriptor.
|
||||
|
||||
Allowing the enterprise bean to read and write file descriptors directly could compromise security.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - An enterprise bean must not use the java.io package to attempt to access files and directo-
|
||||
* ries in the file system.
|
||||
*
|
||||
* The file system APIs are not well-suited for business components to access data. Business components
|
||||
* should use a resource manager API, such as JDBC, to store data.
|
||||
*
|
||||
* - The enterprise bean must not attempt to directly read or write a file descriptor.
|
||||
*
|
||||
* Allowing the enterprise bean to read and write file descriptors directly could compromise security.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenFileCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not access the file system by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not access the file system by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -10,23 +10,24 @@
|
||||
* @tags reliability
|
||||
* external/cwe/cwe-575
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- An enterprise bean must not use the AWT functionality to attempt to output information to a
|
||||
display, or to input information from a keyboard.
|
||||
|
||||
Most servers do not allow direct interaction between an application program and a keyboard/display
|
||||
attached to the server system.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - An enterprise bean must not use the AWT functionality to attempt to output information to a
|
||||
* display, or to input information from a keyboard.
|
||||
*
|
||||
* Most servers do not allow direct interaction between an application program and a keyboard/display
|
||||
* attached to the server system.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenGraphicsCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not use AWT or other graphics functionality by $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not use AWT or other graphics functionality by $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -9,22 +9,23 @@
|
||||
* @tags reliability
|
||||
* external/cwe/cwe-573
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- The enterprise bean must not attempt to load a native library.
|
||||
|
||||
This function is reserved for the EJB container. Allowing the enterprise bean to load native code would
|
||||
create a security hole.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - The enterprise bean must not attempt to load a native library.
|
||||
*
|
||||
* This function is reserved for the EJB container. Allowing the enterprise bean to load native code would
|
||||
* create a security hole.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenNativeCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not use native code by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not use native code by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -8,25 +8,26 @@
|
||||
* @id java/ejb/reflection
|
||||
* @tags external/cwe/cwe-573
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- The enterprise bean must not attempt to query a class to obtain information about the declared
|
||||
members that are not otherwise accessible to the enterprise bean because of the security rules
|
||||
of the Java language. The enterprise bean must not attempt to use the Reflection API to access
|
||||
information that the security rules of the Java programming language make unavailable.
|
||||
|
||||
Allowing the enterprise bean to access information about other classes and to access the classes in a
|
||||
manner that is normally disallowed by the Java programming language could compromise security.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - The enterprise bean must not attempt to query a class to obtain information about the declared
|
||||
* members that are not otherwise accessible to the enterprise bean because of the security rules
|
||||
* of the Java language. The enterprise bean must not attempt to use the Reflection API to access
|
||||
* information that the security rules of the Java programming language make unavailable.
|
||||
*
|
||||
* Allowing the enterprise bean to access information about other classes and to access the classes in a
|
||||
* manner that is normally disallowed by the Java programming language could compromise security.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenReflectionCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not use reflection by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not use reflection by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -9,28 +9,29 @@
|
||||
* @id java/ejb/security-configuration-access
|
||||
* @tags external/cwe/cwe-573
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- The enterprise bean must not attempt to obtain the security policy information for a particular
|
||||
code source.
|
||||
|
||||
Allowing the enterprise bean to access the security policy information would create a security hole.
|
||||
|
||||
- The enterprise bean must not attempt to access or modify the security configuration objects
|
||||
(Policy, Security, Provider, Signer, and Identity).
|
||||
|
||||
These functions are reserved for the EJB container. Allowing the enterprise bean to use these functions
|
||||
could compromise security.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - The enterprise bean must not attempt to obtain the security policy information for a particular
|
||||
* code source.
|
||||
*
|
||||
* Allowing the enterprise bean to access the security policy information would create a security hole.
|
||||
*
|
||||
* - The enterprise bean must not attempt to access or modify the security configuration objects
|
||||
* (Policy, Security, Provider, Signer, and Identity).
|
||||
*
|
||||
* These functions are reserved for the EJB container. Allowing the enterprise bean to use these functions
|
||||
* could compromise security.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenSecurityConfigurationCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not access a security configuration by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not access a security configuration by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -8,22 +8,23 @@
|
||||
* @id java/ejb/substitution-in-serialization
|
||||
* @tags external/cwe/cwe-573
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- The enterprise bean must not attempt to use the subclass and object substitution features of the
|
||||
Java Serialization Protocol.
|
||||
|
||||
Allowing the enterprise bean to use these functions could compromise security.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - The enterprise bean must not attempt to use the subclass and object substitution features of the
|
||||
* Java Serialization Protocol.
|
||||
*
|
||||
* Allowing the enterprise bean to use these functions could compromise security.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenSerializationCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not use a substitution feature of serialization by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName() + " $@"
|
||||
select origin, "EJB should not use a substitution feature of serialization by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName() + " $@"
|
||||
|
||||
@@ -10,24 +10,25 @@
|
||||
* @tags reliability
|
||||
* external/cwe/cwe-577
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- The enterprise bean must not attempt to set the socket factory used by ServerSocket, Socket, or
|
||||
the stream handler factory used by URL.
|
||||
|
||||
These networking functions are reserved for the EJB container. Allowing the enterprise bean to use
|
||||
these functions could compromise security and decrease the container's ability to properly manage the
|
||||
runtime environment.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - The enterprise bean must not attempt to set the socket factory used by ServerSocket, Socket, or
|
||||
* the stream handler factory used by URL.
|
||||
*
|
||||
* These networking functions are reserved for the EJB container. Allowing the enterprise bean to use
|
||||
* these functions could compromise security and decrease the container's ability to properly manage the
|
||||
* runtime environment.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenSetFactoryCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not set a factory by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not set a factory by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -10,24 +10,25 @@
|
||||
* @tags reliability
|
||||
* external/cwe/cwe-577
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- An enterprise bean must not attempt to listen on a socket, accept connections on a socket, or
|
||||
use a socket for multicast.
|
||||
|
||||
The EJB architecture allows an enterprise bean instance to be a network socket client, but it does not
|
||||
allow it to be a network server. Allowing the instance to become a network server would conflict with
|
||||
the basic function of the enterprise bean -- to serve the EJB clients.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - An enterprise bean must not attempt to listen on a socket, accept connections on a socket, or
|
||||
* use a socket for multicast.
|
||||
*
|
||||
* The EJB architecture allows an enterprise bean instance to be a network socket client, but it does not
|
||||
* allow it to be a network server. Allowing the instance to become a network server would conflict with
|
||||
* the basic function of the enterprise bean -- to serve the EJB clients.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenServerSocketCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not use a socket as a server by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not use a socket as a server by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -10,29 +10,29 @@
|
||||
* @tags reliability
|
||||
* external/cwe/cwe-573
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- An enterprise bean must not use read/write static fields. Using read-only static fields is
|
||||
allowed. Therefore, it is recommended that all static fields in the enterprise bean class be
|
||||
declared as final.
|
||||
|
||||
This rule is required to ensure consistent runtime semantics because while some EJB containers may
|
||||
use a single JVM to execute all enterprise bean's instances, others may distribute the instances across
|
||||
multiple JVMs.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - An enterprise bean must not use read/write static fields. Using read-only static fields is
|
||||
* allowed. Therefore, it is recommended that all static fields in the enterprise bean class be
|
||||
* declared as final.
|
||||
*
|
||||
* This rule is required to ensure consistent runtime semantics because while some EJB containers may
|
||||
* use a single JVM to execute all enterprise bean's instances, others may distribute the instances across
|
||||
* multiple JVMs.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenStaticFieldCallable target, Call call, FieldAccess fa, Field f
|
||||
where
|
||||
ejbCalls(origin, target, call) and
|
||||
fa = forbiddenStaticFieldUse(target) and
|
||||
fa.getField() = f
|
||||
select origin, "EJB should not access non-final static field $@ $@.",
|
||||
f, f.getDeclaringType().getName() + "." + f.getName(),
|
||||
fa, "here"
|
||||
select origin, "EJB should not access non-final static field $@ $@.", f,
|
||||
f.getDeclaringType().getName() + "." + f.getName(), fa, "here"
|
||||
|
||||
@@ -9,23 +9,24 @@
|
||||
* @tags reliability
|
||||
* external/cwe/cwe-574
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- An enterprise bean must not use thread synchronization primitives to synchronize execution of
|
||||
multiple instances.
|
||||
|
||||
This is for the same reason as above. Synchronization would not work if the EJB container distributed
|
||||
enterprise bean's instances across multiple JVMs.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - An enterprise bean must not use thread synchronization primitives to synchronize execution of
|
||||
* multiple instances.
|
||||
*
|
||||
* This is for the same reason as above. Synchronization would not work if the EJB container distributed
|
||||
* enterprise bean's instances across multiple JVMs.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenSynchronizationCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not use synchronization by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not use synchronization by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -11,24 +11,24 @@
|
||||
* @tags portability
|
||||
* external/cwe/cwe-573
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- The enterprise bean must not attempt to pass this as an argument or method result. The
|
||||
enterprise bean must pass the result of SessionContext.getBusinessObject,
|
||||
SessionContext.getEJBObject, SessionContext.getEJBLocalObject,
|
||||
EntityContext.getEJBObject, or EntityContext.getEJBLocalObject instead.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - The enterprise bean must not attempt to pass this as an argument or method result. The
|
||||
* enterprise bean must pass the result of SessionContext.getBusinessObject,
|
||||
* SessionContext.getEJBObject, SessionContext.getEJBLocalObject,
|
||||
* EntityContext.getEJBObject, or EntityContext.getEJBLocalObject instead.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenThisCallable target, Call call, ThisAccess ta
|
||||
where
|
||||
ejbCalls(origin, target, call) and
|
||||
ta = forbiddenThisUse(target)
|
||||
select origin, "EJB should not use 'this' as a method argument or result $@.",
|
||||
ta, "here"
|
||||
select origin, "EJB should not use 'this' as a method argument or result $@.", ta, "here"
|
||||
|
||||
@@ -10,24 +10,25 @@
|
||||
* external/cwe/cwe-383
|
||||
* external/cwe/cwe-573
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJB
|
||||
import semmle.code.java.frameworks.javaee.ejb.EJBRestrictions
|
||||
|
||||
/*
|
||||
JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
EJB Core Contracts and Requirements
|
||||
Section 21.1.2 Programming Restrictions
|
||||
|
||||
- The enterprise bean must not attempt to manage threads. The enterprise bean must not attempt
|
||||
to start, stop, suspend, or resume a thread, or to change a thread's priority or name. The enter-
|
||||
prise bean must not attempt to manage thread groups.
|
||||
|
||||
These functions are reserved for the EJB container. Allowing the enterprise bean to manage threads
|
||||
would decrease the container's ability to properly manage the runtime environment.
|
||||
*/
|
||||
* JSR 220: Enterprise JavaBeansTM,Version 3.0
|
||||
* EJB Core Contracts and Requirements
|
||||
* Section 21.1.2 Programming Restrictions
|
||||
*
|
||||
* - The enterprise bean must not attempt to manage threads. The enterprise bean must not attempt
|
||||
* to start, stop, suspend, or resume a thread, or to change a thread's priority or name. The enter-
|
||||
* prise bean must not attempt to manage thread groups.
|
||||
*
|
||||
* These functions are reserved for the EJB container. Allowing the enterprise bean to manage threads
|
||||
* would decrease the container's ability to properly manage the runtime environment.
|
||||
*/
|
||||
|
||||
from Callable origin, ForbiddenThreadingCallable target, Call call
|
||||
where ejbCalls(origin, target, call)
|
||||
select origin, "EJB should not attempt to manage threads by calling $@.",
|
||||
call, target.getDeclaringType().getName() + "." + target.getName()
|
||||
select origin, "EJB should not attempt to manage threads by calling $@.", call,
|
||||
target.getDeclaringType().getName() + "." + target.getName()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* @tags maintainability
|
||||
* frameworks/spring
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.spring.Spring
|
||||
|
||||
@@ -35,5 +36,4 @@ where
|
||||
select bean1,
|
||||
"Bean $@ has " + similarProps.toString() +
|
||||
" properties similar to $@. Consider introducing a common parent bean for these two beans.",
|
||||
bean1, bean1.getBeanIdentifier(),
|
||||
bean2, bean2.getBeanIdentifier()
|
||||
bean1, bean1.getBeanIdentifier(), bean2, bean2.getBeanIdentifier()
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* @tags maintainability
|
||||
* frameworks/spring
|
||||
*/
|
||||
|
||||
import java
|
||||
import semmle.code.java.frameworks.spring.Spring
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user