mirror of
https://github.com/github/codeql.git
synced 2026-05-26 17:11:24 +02:00
Compare commits
4 Commits
revert-ext
...
copilot/ad
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
52a6f5d626 | ||
|
|
36dc27c3e7 | ||
|
|
a00e31c572 | ||
|
|
27fcd97ed1 |
@@ -1,4 +0,0 @@
|
||||
---
|
||||
category: deprecated
|
||||
---
|
||||
* The class `AbstractValue` in the `Guards` library has been deprecated and replaced with the class `GuardValue`.
|
||||
@@ -10,6 +10,7 @@ module Stages {
|
||||
cached
|
||||
module ControlFlowStage {
|
||||
private import semmle.code.csharp.controlflow.internal.Splitting
|
||||
private import semmle.code.csharp.controlflow.Guards as Guards
|
||||
|
||||
cached
|
||||
predicate forceCachingInSameStage() { any() }
|
||||
@@ -20,6 +21,8 @@ module Stages {
|
||||
or
|
||||
exists(ControlFlow::Node n)
|
||||
or
|
||||
Guards::Internal::isCustomNullCheck(_, _, _, _)
|
||||
or
|
||||
forceCachingInSameStageRev()
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -390,6 +390,11 @@ private predicate invalidCastCandidate(CastExpr ce) {
|
||||
ce.getExpr().getType() = getACastExprBaseType(ce)
|
||||
}
|
||||
|
||||
private predicate assertion(Assertion a, int i, AssertMethod am, Expr e) {
|
||||
e = a.getExpr(i) and
|
||||
am = a.getAssertMethod()
|
||||
}
|
||||
|
||||
/** Gets a valid completion when argument `i` fails in assertion `a`. */
|
||||
Completion assertionCompletion(Assertion a, int i) {
|
||||
exists(AssertMethod am | am = a.getAssertMethod() |
|
||||
@@ -424,6 +429,11 @@ private predicate inBooleanContext(Expr e) {
|
||||
or
|
||||
e = any(SpecificCatchClause scc).getFilterClause()
|
||||
or
|
||||
exists(BooleanAssertMethod m, int i |
|
||||
assertion(_, i, m, e) and
|
||||
i = m.getAnAssertionIndex(_)
|
||||
)
|
||||
or
|
||||
e = any(LogicalNotExpr lne | inBooleanContext(lne)).getAnOperand()
|
||||
or
|
||||
exists(LogicalAndExpr lae |
|
||||
@@ -471,6 +481,11 @@ private predicate inNullnessContext(Expr e) {
|
||||
or
|
||||
exists(QualifiableExpr qe | qe.isConditional() | e = qe.getChildExpr(-1))
|
||||
or
|
||||
exists(NullnessAssertMethod m, int i |
|
||||
assertion(_, i, m, e) and
|
||||
i = m.getAnAssertionIndex(_)
|
||||
)
|
||||
or
|
||||
exists(ConditionalExpr ce | inNullnessContext(ce) | (e = ce.getThen() or e = ce.getElse()))
|
||||
or
|
||||
exists(NullCoalescingExpr nce | inNullnessContext(nce) | e = nce.getRightOperand())
|
||||
|
||||
@@ -24,12 +24,17 @@ private module Cached {
|
||||
cached
|
||||
newtype TSplitKind =
|
||||
TInitializerSplitKind() or
|
||||
TConditionalCompletionSplitKind()
|
||||
TConditionalCompletionSplitKind() or
|
||||
TAssertionSplitKind()
|
||||
|
||||
cached
|
||||
newtype TSplit =
|
||||
TInitializerSplit(Constructor c) { InitializerSplitting::constructorInitializes(c, _) } or
|
||||
TConditionalCompletionSplit(ConditionalCompletion c)
|
||||
TConditionalCompletionSplit(ConditionalCompletion c) or
|
||||
TAssertionSplit(AssertionSplitting::Assertion a, int i, boolean success) {
|
||||
exists(a.getExpr(i)) and
|
||||
success in [false, true]
|
||||
}
|
||||
}
|
||||
|
||||
import Cached
|
||||
@@ -315,3 +320,130 @@ module ConditionalCompletionSplitting {
|
||||
|
||||
int getNextListOrder() { result = InitializerSplitting::getNextListOrder() + 1 }
|
||||
}
|
||||
|
||||
module AssertionSplitting {
|
||||
import semmle.code.csharp.commons.Assertions
|
||||
private import semmle.code.csharp.ExprOrStmtParent
|
||||
|
||||
private AstNode getAnAssertionDescendant(Assertion a) {
|
||||
result = a
|
||||
or
|
||||
result = getAnAssertionDescendant(a).getAChild()
|
||||
}
|
||||
|
||||
/**
|
||||
* A split for assertions. For example, in
|
||||
*
|
||||
* ```csharp
|
||||
* void M(int i)
|
||||
* {
|
||||
* Debug.Assert(i >= 0);
|
||||
* System.Console.WriteLine("i is positive")
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* we record whether `i >= 0` evaluates to `true` or `false`, and restrict the
|
||||
* edges out of the assertion accordingly.
|
||||
*/
|
||||
class AssertionSplit extends Split, TAssertionSplit {
|
||||
Assertion a;
|
||||
boolean success;
|
||||
int i;
|
||||
|
||||
AssertionSplit() { this = TAssertionSplit(a, i, success) }
|
||||
|
||||
/** Gets the assertion. */
|
||||
Assertion getAssertion() { result = a }
|
||||
|
||||
/** Holds if this split represents a successful assertion. */
|
||||
predicate isSuccess() { success = true }
|
||||
|
||||
override string toString() {
|
||||
success = true and result = "assertion success"
|
||||
or
|
||||
success = false and result = "assertion failure"
|
||||
}
|
||||
}
|
||||
|
||||
private class AssertionSplitKind extends SplitKind, TAssertionSplitKind {
|
||||
override int getListOrder() { result = ConditionalCompletionSplitting::getNextListOrder() }
|
||||
|
||||
override predicate isEnabled(AstNode cfe) { this.appliesTo(cfe) }
|
||||
|
||||
override string toString() { result = "Assertion" }
|
||||
}
|
||||
|
||||
int getNextListOrder() { result = ConditionalCompletionSplitting::getNextListOrder() + 1 }
|
||||
|
||||
private class AssertionSplitImpl extends SplitImpl instanceof AssertionSplit {
|
||||
Assertion a;
|
||||
boolean success;
|
||||
int i;
|
||||
|
||||
AssertionSplitImpl() { this = TAssertionSplit(a, i, success) }
|
||||
|
||||
override AssertionSplitKind getKind() { any() }
|
||||
|
||||
override predicate hasEntry(AstNode pred, AstNode succ, Completion c) {
|
||||
exists(AssertMethod m |
|
||||
last(a.getExpr(i), pred, c) and
|
||||
succ(pred, succ, c) and
|
||||
m = a.getAssertMethod() and
|
||||
// The assertion only succeeds when all asserted arguments succeeded, so
|
||||
// we only enter a "success" state after the last argument has succeeded.
|
||||
//
|
||||
// The split is only entered if we are not already in a "failing" state
|
||||
// for one of the previous arguments, which ensures that the "success"
|
||||
// state is only entered when all arguments succeed. This also means
|
||||
// that if multiple arguments fail, then the first failing argument
|
||||
// will determine the exception being thrown by the assertion.
|
||||
if success = true then i = max(int j | exists(a.getExpr(j))) else any()
|
||||
|
|
||||
exists(boolean b | i = m.(BooleanAssertMethod).getAnAssertionIndex(b) |
|
||||
c instanceof TrueCompletion and success = b
|
||||
or
|
||||
c instanceof FalseCompletion and success = b.booleanNot()
|
||||
)
|
||||
or
|
||||
exists(boolean b | i = m.(NullnessAssertMethod).getAnAssertionIndex(b) |
|
||||
c.(NullnessCompletion).isNull() and success = b
|
||||
or
|
||||
c.(NullnessCompletion).isNonNull() and success = b.booleanNot()
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
override predicate hasEntryScope(CfgScope scope, AstNode first) { none() }
|
||||
|
||||
override predicate hasExit(AstNode pred, AstNode succ, Completion c) {
|
||||
this.appliesTo(pred) and
|
||||
pred = a and
|
||||
succ(pred, succ, c) and
|
||||
(
|
||||
success = true and
|
||||
c instanceof NormalCompletion
|
||||
or
|
||||
success = false and
|
||||
c = assertionCompletion(a, i)
|
||||
)
|
||||
}
|
||||
|
||||
override predicate hasExitScope(CfgScope scope, AstNode last, Completion c) {
|
||||
this.appliesTo(last) and
|
||||
last = a and
|
||||
scopeLast(scope, last, c) and
|
||||
(
|
||||
success = true and
|
||||
c instanceof NormalCompletion
|
||||
or
|
||||
success = false and
|
||||
c = assertionCompletion(a, i)
|
||||
)
|
||||
}
|
||||
|
||||
override predicate hasSuccessor(AstNode pred, AstNode succ, Completion c) {
|
||||
this.appliesSucc(pred, succ, c) and
|
||||
succ = getAnAssertionDescendant(a)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import csharp
|
||||
private import ControlFlow
|
||||
private import internal.CallableReturns
|
||||
private import semmle.code.csharp.controlflow.Guards as G
|
||||
private import semmle.code.csharp.controlflow.Guards::AbstractValues
|
||||
private import semmle.code.csharp.dataflow.internal.SsaImpl as SsaImpl
|
||||
private import semmle.code.csharp.frameworks.System
|
||||
private import semmle.code.csharp.frameworks.Test
|
||||
@@ -192,10 +193,11 @@ private predicate defMaybeNull(
|
||||
(
|
||||
// A variable compared to `null` might be `null`
|
||||
exists(G::DereferenceableExpr de | de = def.getARead() |
|
||||
de.guardSuggestsMaybeNull(reason) and
|
||||
reason = de.getANullCheck(_, true) and
|
||||
msg = "as suggested by $@ null check" and
|
||||
node = def.getControlFlowNode() and
|
||||
not de = any(Ssa::PhiNode phi).getARead() and
|
||||
strictcount(Element e | e = any(Ssa::Definition def0 | de = def0.getARead()).getElement()) = 1 and
|
||||
// Don't use a check as reason if there is a `null` assignment
|
||||
// or argument
|
||||
not def.(Ssa::ExplicitDefinition).getADefinition().getSource() instanceof MaybeNullExpr and
|
||||
@@ -366,9 +368,9 @@ class Dereference extends G::DereferenceableExpr {
|
||||
(
|
||||
forex(Ssa::Definition def0 | this = def0.getARead() | this.isAlwaysNull0(def0))
|
||||
or
|
||||
exists(G::GuardValue nv |
|
||||
exists(NullValue nv |
|
||||
this.(G::GuardedExpr).mustHaveValue(nv) and
|
||||
nv.isNullValue()
|
||||
nv.isNull()
|
||||
)
|
||||
) and
|
||||
not this instanceof G::NullGuardedExpr
|
||||
|
||||
@@ -2906,8 +2906,7 @@ class DataFlowExpr = Expr;
|
||||
|
||||
/** Holds if `e` is an expression that always has the same Boolean value `val`. */
|
||||
private predicate constantBooleanExpr(Expr e, boolean val) {
|
||||
e.getType() instanceof BoolType and
|
||||
e.getValue() = val.toString()
|
||||
e = any(AbstractValues::BooleanValue bv | val = bv.getValue()).getAnExpr()
|
||||
or
|
||||
exists(Ssa::ExplicitDefinition def, Expr src |
|
||||
e = def.getARead() and
|
||||
|
||||
@@ -173,7 +173,7 @@ abstract class NonLocalJumpNode extends Node {
|
||||
* For example, the guard `g` might be a call `isSafe(x)` and the expression `e`
|
||||
* the argument `x`.
|
||||
*/
|
||||
signature predicate guardChecksSig(Guard g, Expr e, GuardValue v);
|
||||
signature predicate guardChecksSig(Guard g, Expr e, AbstractValue v);
|
||||
|
||||
/**
|
||||
* Provides a set of barrier nodes for a guard that validates an expression.
|
||||
@@ -190,7 +190,7 @@ module BarrierGuard<guardChecksSig/3 guardChecks> {
|
||||
SsaFlow::asNode(result) =
|
||||
SsaImpl::DataFlowIntegration::BarrierGuard<guardChecks/3>::getABarrierNode()
|
||||
or
|
||||
exists(Guard g, Expr e, GuardValue v |
|
||||
exists(Guard g, Expr e, AbstractValue v |
|
||||
guardChecks(g, e, v) and
|
||||
g.controlsNode(result.getControlFlowNode(), e, v)
|
||||
)
|
||||
|
||||
@@ -963,7 +963,7 @@ private module Cached {
|
||||
DataFlowIntegrationImpl::localMustFlowStep(v, nodeFrom, nodeTo)
|
||||
}
|
||||
|
||||
signature predicate guardChecksSig(Guards::Guard g, Expr e, Guards::GuardValue v);
|
||||
signature predicate guardChecksSig(Guards::Guard g, Expr e, Guards::AbstractValue v);
|
||||
|
||||
cached // nothing is actually cached
|
||||
module BarrierGuard<guardChecksSig/3 guardChecks> {
|
||||
@@ -971,9 +971,9 @@ private module Cached {
|
||||
DataFlowIntegrationInput::Guard g, DataFlowIntegrationInput::Expr e,
|
||||
DataFlowIntegrationInput::GuardValue branch
|
||||
) {
|
||||
exists(Guards::GuardValue v |
|
||||
exists(Guards::AbstractValues::BooleanValue v |
|
||||
guardChecks(g, e.getAstNode(), v) and
|
||||
branch = v.asBooleanValue()
|
||||
branch = v.getValue()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ private module Impl {
|
||||
private import semmle.code.csharp.controlflow.Guards as G
|
||||
private import ControlFlowReachability
|
||||
|
||||
private class BooleanValue = G::AbstractValues::BooleanValue;
|
||||
|
||||
private class ExprNode = ControlFlow::Nodes::ExprNode;
|
||||
|
||||
private class ExprChildReachability extends ControlFlowReachabilityConfiguration {
|
||||
@@ -91,7 +93,7 @@ private module Impl {
|
||||
/**
|
||||
* Holds if basic block `bb` is guarded by this guard having value `v`.
|
||||
*/
|
||||
predicate controlsBasicBlock(ControlFlow::BasicBlock bb, G::GuardValue v) {
|
||||
predicate controlsBasicBlock(ControlFlow::BasicBlock bb, G::AbstractValue v) {
|
||||
super.controlsBasicBlock(bb, v)
|
||||
}
|
||||
|
||||
@@ -109,6 +111,19 @@ private module Impl {
|
||||
}
|
||||
}
|
||||
|
||||
private Guard eqFlowCondAbs(
|
||||
Definition def, ExprNode e, int delta, boolean isEq, G::AbstractValue v
|
||||
) {
|
||||
exists(boolean eqpolarity |
|
||||
result.isEquality(ssaRead(def, delta), e, eqpolarity) and
|
||||
eqpolarity.booleanXor(v.(BooleanValue).getValue()).booleanNot() = isEq
|
||||
)
|
||||
or
|
||||
exists(G::AbstractValue v0 |
|
||||
G::Internal::impliesStep(result, v, eqFlowCondAbs(def, e, delta, isEq, v0), v0)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a condition that tests whether `def` equals `e + delta`.
|
||||
*
|
||||
@@ -117,10 +132,9 @@ private module Impl {
|
||||
* - `isEq = false` : `def != e + delta`
|
||||
*/
|
||||
Guard eqFlowCond(Definition def, ExprNode e, int delta, boolean isEq, boolean testIsTrue) {
|
||||
exists(boolean eqpolarity |
|
||||
result.isEquality(ssaRead(def, delta), e, eqpolarity) and
|
||||
testIsTrue = [false, true] and
|
||||
eqpolarity.booleanXor(testIsTrue).booleanNot() = isEq
|
||||
exists(BooleanValue v |
|
||||
result = eqFlowCondAbs(def, e, delta, isEq, v) and
|
||||
testIsTrue = v.getValue()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -128,7 +142,7 @@ private module Impl {
|
||||
* Holds if `guard` controls the position `controlled` with the value `testIsTrue`.
|
||||
*/
|
||||
predicate guardControlsSsaRead(Guard guard, SsaReadPosition controlled, boolean testIsTrue) {
|
||||
exists(G::GuardValue b | b.asBooleanValue() = testIsTrue |
|
||||
exists(BooleanValue b | b.getValue() = testIsTrue |
|
||||
guard.controlsBasicBlock(controlled.(SsaReadPositionBlock).getBlock(), b)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ private class WeakGuard extends Guard {
|
||||
)
|
||||
or
|
||||
// Checking against `null` has no bearing on path traversal.
|
||||
this.controlsNode(_, _, any(GuardValue nv | nv.isNullness(_)))
|
||||
this.controlsNode(_, _, any(AbstractValues::NullValue nv))
|
||||
or
|
||||
this.(LogicalOperation).getAnOperand() instanceof WeakGuard
|
||||
}
|
||||
@@ -130,9 +130,8 @@ private class WeakGuard extends Guard {
|
||||
class PathCheck extends Sanitizer {
|
||||
PathCheck() {
|
||||
// This expression is structurally replicated in a dominating guard which is not a "weak" check
|
||||
exists(Guard g, GuardValue v |
|
||||
exists(Guard g, AbstractValues::BooleanValue v |
|
||||
g = this.(GuardedDataFlowNode).getAGuard(_, v) and
|
||||
exists(v.asBooleanValue()) and
|
||||
not g instanceof WeakGuard
|
||||
)
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ class HttpServerTransferSink extends Sink {
|
||||
}
|
||||
}
|
||||
|
||||
private predicate isLocalUrlSanitizerMethodCall(MethodCall guard, Expr e, GuardValue v) {
|
||||
private predicate isLocalUrlSanitizerMethodCall(MethodCall guard, Expr e, AbstractValue v) {
|
||||
exists(Method m | m = guard.getTarget() |
|
||||
m.hasName("IsLocalUrl") and
|
||||
e = guard.getArgument(0)
|
||||
@@ -119,10 +119,10 @@ private predicate isLocalUrlSanitizerMethodCall(MethodCall guard, Expr e, GuardV
|
||||
m.hasName("IsUrlLocalToHost") and
|
||||
e = guard.getArgument(1)
|
||||
) and
|
||||
v.asBooleanValue() = true
|
||||
v.(AbstractValues::BooleanValue).getValue() = true
|
||||
}
|
||||
|
||||
private predicate isLocalUrlSanitizer(Guard g, Expr e, GuardValue v) {
|
||||
private predicate isLocalUrlSanitizer(Guard g, Expr e, AbstractValue v) {
|
||||
isLocalUrlSanitizerMethodCall(g, e, v)
|
||||
}
|
||||
|
||||
@@ -137,14 +137,14 @@ class LocalUrlSanitizer extends Sanitizer {
|
||||
/**
|
||||
* An argument to a call to `List.Contains()` that is a sanitizer for URL redirects.
|
||||
*/
|
||||
private predicate isContainsUrlSanitizer(Guard guard, Expr e, GuardValue v) {
|
||||
private predicate isContainsUrlSanitizer(Guard guard, Expr e, AbstractValue v) {
|
||||
guard =
|
||||
any(MethodCall method |
|
||||
exists(Method m | m = method.getTarget() |
|
||||
m.hasName("Contains") and
|
||||
e = method.getArgument(0)
|
||||
) and
|
||||
v.asBooleanValue() = true
|
||||
v.(AbstractValues::BooleanValue).getValue() = true
|
||||
)
|
||||
}
|
||||
|
||||
@@ -163,12 +163,12 @@ class ContainsUrlSanitizer extends Sanitizer {
|
||||
/**
|
||||
* A check that the URL is relative, and therefore safe for URL redirects.
|
||||
*/
|
||||
private predicate isRelativeUrlSanitizer(Guard guard, Expr e, GuardValue v) {
|
||||
private predicate isRelativeUrlSanitizer(Guard guard, Expr e, AbstractValue v) {
|
||||
guard =
|
||||
any(PropertyAccess access |
|
||||
access.getProperty().hasFullyQualifiedName("System", "Uri", "IsAbsoluteUri") and
|
||||
e = access.getQualifier() and
|
||||
v.asBooleanValue() = false
|
||||
v.(AbstractValues::BooleanValue).getValue() = false
|
||||
)
|
||||
}
|
||||
|
||||
@@ -185,14 +185,16 @@ class RelativeUrlSanitizer extends Sanitizer {
|
||||
* A comparison on the `Host` property of a url, that is a sanitizer for URL redirects.
|
||||
* E.g. `url.Host == "example.org"`
|
||||
*/
|
||||
private predicate isHostComparisonSanitizer(Guard guard, Expr e, GuardValue v) {
|
||||
private predicate isHostComparisonSanitizer(Guard guard, Expr e, AbstractValue v) {
|
||||
guard =
|
||||
any(EqualityOperation comparison |
|
||||
exists(PropertyAccess access | access = comparison.getAnOperand() |
|
||||
access.getProperty().hasFullyQualifiedName("System", "Uri", "Host") and
|
||||
e = access.getQualifier()
|
||||
) and
|
||||
if comparison instanceof EQExpr then v.asBooleanValue() = true else v.asBooleanValue() = false
|
||||
if comparison instanceof EQExpr
|
||||
then v.(AbstractValues::BooleanValue).getValue() = true
|
||||
else v.(AbstractValues::BooleanValue).getValue() = false
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ class SubstringSanitizer extends Sanitizer {
|
||||
}
|
||||
}
|
||||
|
||||
private predicate stringCheckGuard(Guard g, Expr e, GuardValue v) {
|
||||
private predicate stringCheckGuard(Guard g, Expr e, AbstractValue v) {
|
||||
g.(MethodCall).getTarget().hasFullyQualifiedName("System", "String", "StartsWith") and
|
||||
g.(MethodCall).getQualifier() = e and
|
||||
// A StartsWith check against Path.Combine is not sufficient, because the ".." elements have
|
||||
@@ -139,7 +139,7 @@ private predicate stringCheckGuard(Guard g, Expr e, GuardValue v) {
|
||||
combineCall.getTarget().hasFullyQualifiedName("System.IO", "Path", "Combine") and
|
||||
DataFlow::localExprFlow(combineCall, e)
|
||||
) and
|
||||
v.asBooleanValue() = true
|
||||
v.(AbstractValues::BooleanValue).getValue() = true
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -133,14 +133,14 @@ module RequestForgery {
|
||||
* to be a guard for Server Side Request Forgery(SSRF) Vulnerabilities.
|
||||
* This guard considers all checks as valid.
|
||||
*/
|
||||
private predicate baseUriGuard(Guard g, Expr e, GuardValue v) {
|
||||
private predicate baseUriGuard(Guard g, Expr e, AbstractValue v) {
|
||||
g.(MethodCall).getTarget().hasFullyQualifiedName("System", "Uri", "IsBaseOf") and
|
||||
// we consider any checks against the tainted value to sainitize the taint.
|
||||
// This implies any check such as shown below block the taint flow.
|
||||
// Uri url = new Uri("whitelist.com")
|
||||
// if (url.isBaseOf(`taint1))
|
||||
(e = g.(MethodCall).getArgument(0) or e = g.(MethodCall).getQualifier()) and
|
||||
v.asBooleanValue() = true
|
||||
v.(AbstractValues::BooleanValue).getValue() = true
|
||||
}
|
||||
|
||||
private class BaseUriBarrier extends Barrier {
|
||||
@@ -152,14 +152,14 @@ module RequestForgery {
|
||||
* to be a guard for Server Side Request Forgery(SSRF) Vulnerabilities.
|
||||
* This guard considers all checks as valid.
|
||||
*/
|
||||
private predicate stringStartsWithGuard(Guard g, Expr e, GuardValue v) {
|
||||
private predicate stringStartsWithGuard(Guard g, Expr e, AbstractValue v) {
|
||||
g.(MethodCall).getTarget().hasFullyQualifiedName("System", "String", "StartsWith") and
|
||||
// Any check such as the ones shown below
|
||||
// "https://myurl.com/".startsWith(`taint`)
|
||||
// `taint`.startsWith("https://myurl.com/")
|
||||
// are assumed to sainitize the taint
|
||||
(e = g.(MethodCall).getQualifier() or g.(MethodCall).getArgument(0) = e) and
|
||||
v.asBooleanValue() = true
|
||||
v.(AbstractValues::BooleanValue).getValue() = true
|
||||
}
|
||||
|
||||
private class StringStartsWithBarrier extends Barrier {
|
||||
|
||||
@@ -20,149 +20,176 @@
|
||||
| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | exit AssertTests | 5 |
|
||||
| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:20:9:20 | access to parameter b | 4 |
|
||||
| Assert.cs:7:10:7:11 | exit M1 | Assert.cs:7:10:7:11 | exit M1 | 1 |
|
||||
| Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | exit M1 (abnormal) | 1 |
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:10:9:10:31 | call to method Assert | 7 |
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:10:22:10:30 | ... != ... | 6 |
|
||||
| Assert.cs:9:24:9:27 | null | Assert.cs:9:24:9:27 | null | 1 |
|
||||
| Assert.cs:9:31:9:32 | "" | Assert.cs:9:31:9:32 | "" | 1 |
|
||||
| Assert.cs:11:9:11:36 | ...; | Assert.cs:7:10:7:11 | exit M1 (normal) | 5 |
|
||||
| Assert.cs:10:9:10:31 | [assertion failure] call to method Assert | Assert.cs:7:10:7:11 | exit M1 (abnormal) | 2 |
|
||||
| Assert.cs:10:9:10:31 | [assertion success] call to method Assert | Assert.cs:7:10:7:11 | exit M1 (normal) | 6 |
|
||||
| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:20:16:20 | access to parameter b | 4 |
|
||||
| Assert.cs:14:10:14:11 | exit M2 | Assert.cs:14:10:14:11 | exit M2 | 1 |
|
||||
| Assert.cs:14:10:14:11 | exit M2 (abnormal) | Assert.cs:14:10:14:11 | exit M2 (abnormal) | 1 |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:17:9:17:24 | call to method IsNull | 5 |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:17:23:17:23 | access to local variable s | 4 |
|
||||
| Assert.cs:16:24:16:27 | null | Assert.cs:16:24:16:27 | null | 1 |
|
||||
| Assert.cs:16:31:16:32 | "" | Assert.cs:16:31:16:32 | "" | 1 |
|
||||
| Assert.cs:18:9:18:36 | ...; | Assert.cs:14:10:14:11 | exit M2 (normal) | 5 |
|
||||
| Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | 2 |
|
||||
| Assert.cs:17:9:17:24 | [assertion success] call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (normal) | 6 |
|
||||
| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:20:23:20 | access to parameter b | 4 |
|
||||
| Assert.cs:21:10:21:11 | exit M3 | Assert.cs:21:10:21:11 | exit M3 | 1 |
|
||||
| Assert.cs:21:10:21:11 | exit M3 (abnormal) | Assert.cs:21:10:21:11 | exit M3 (abnormal) | 1 |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:24:9:24:27 | call to method IsNotNull | 5 |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:24:26:24:26 | access to local variable s | 4 |
|
||||
| Assert.cs:23:24:23:27 | null | Assert.cs:23:24:23:27 | null | 1 |
|
||||
| Assert.cs:23:31:23:32 | "" | Assert.cs:23:31:23:32 | "" | 1 |
|
||||
| Assert.cs:25:9:25:36 | ...; | Assert.cs:21:10:21:11 | exit M3 (normal) | 5 |
|
||||
| Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | 2 |
|
||||
| Assert.cs:24:9:24:27 | [assertion success] call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (normal) | 6 |
|
||||
| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:20:30:20 | access to parameter b | 4 |
|
||||
| Assert.cs:28:10:28:11 | exit M4 | Assert.cs:28:10:28:11 | exit M4 | 1 |
|
||||
| Assert.cs:28:10:28:11 | exit M4 (abnormal) | Assert.cs:28:10:28:11 | exit M4 (abnormal) | 1 |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:31:9:31:32 | call to method IsTrue | 7 |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:31:23:31:31 | ... == ... | 6 |
|
||||
| Assert.cs:30:24:30:27 | null | Assert.cs:30:24:30:27 | null | 1 |
|
||||
| Assert.cs:30:31:30:32 | "" | Assert.cs:30:31:30:32 | "" | 1 |
|
||||
| Assert.cs:32:9:32:36 | ...; | Assert.cs:28:10:28:11 | exit M4 (normal) | 5 |
|
||||
| Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | 2 |
|
||||
| Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (normal) | 6 |
|
||||
| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:20:37:20 | access to parameter b | 4 |
|
||||
| Assert.cs:35:10:35:11 | exit M5 | Assert.cs:35:10:35:11 | exit M5 | 1 |
|
||||
| Assert.cs:35:10:35:11 | exit M5 (abnormal) | Assert.cs:35:10:35:11 | exit M5 (abnormal) | 1 |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:38:9:38:32 | call to method IsTrue | 7 |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:38:23:38:31 | ... != ... | 6 |
|
||||
| Assert.cs:37:24:37:27 | null | Assert.cs:37:24:37:27 | null | 1 |
|
||||
| Assert.cs:37:31:37:32 | "" | Assert.cs:37:31:37:32 | "" | 1 |
|
||||
| Assert.cs:39:9:39:36 | ...; | Assert.cs:35:10:35:11 | exit M5 (normal) | 5 |
|
||||
| Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | 2 |
|
||||
| Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (normal) | 6 |
|
||||
| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:20:44:20 | access to parameter b | 4 |
|
||||
| Assert.cs:42:10:42:11 | exit M6 | Assert.cs:42:10:42:11 | exit M6 | 1 |
|
||||
| Assert.cs:42:10:42:11 | exit M6 (abnormal) | Assert.cs:42:10:42:11 | exit M6 (abnormal) | 1 |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:45:9:45:33 | call to method IsFalse | 7 |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:45:24:45:32 | ... != ... | 6 |
|
||||
| Assert.cs:44:24:44:27 | null | Assert.cs:44:24:44:27 | null | 1 |
|
||||
| Assert.cs:44:31:44:32 | "" | Assert.cs:44:31:44:32 | "" | 1 |
|
||||
| Assert.cs:46:9:46:36 | ...; | Assert.cs:42:10:42:11 | exit M6 (normal) | 5 |
|
||||
| Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | 2 |
|
||||
| Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (normal) | 6 |
|
||||
| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:20:51:20 | access to parameter b | 4 |
|
||||
| Assert.cs:49:10:49:11 | exit M7 | Assert.cs:49:10:49:11 | exit M7 | 1 |
|
||||
| Assert.cs:49:10:49:11 | exit M7 (abnormal) | Assert.cs:49:10:49:11 | exit M7 (abnormal) | 1 |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:52:9:52:33 | call to method IsFalse | 7 |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:52:24:52:32 | ... == ... | 6 |
|
||||
| Assert.cs:51:24:51:27 | null | Assert.cs:51:24:51:27 | null | 1 |
|
||||
| Assert.cs:51:31:51:32 | "" | Assert.cs:51:31:51:32 | "" | 1 |
|
||||
| Assert.cs:53:9:53:36 | ...; | Assert.cs:49:10:49:11 | exit M7 (normal) | 5 |
|
||||
| Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | 2 |
|
||||
| Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (normal) | 6 |
|
||||
| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:20:58:20 | access to parameter b | 4 |
|
||||
| Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | exit M8 | 1 |
|
||||
| Assert.cs:56:10:56:11 | exit M8 (abnormal) | Assert.cs:56:10:56:11 | exit M8 (abnormal) | 1 |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:23:59:31 | ... != ... | 6 |
|
||||
| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | 1 |
|
||||
| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | 1 |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:9:59:37 | call to method IsTrue | 2 |
|
||||
| Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | 2 |
|
||||
| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (normal) | 6 |
|
||||
| Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:23:59:36 | [false] ... && ... | 1 |
|
||||
| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:23:59:36 | [true] ... && ... | 1 |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | 1 |
|
||||
| Assert.cs:60:9:60:36 | ...; | Assert.cs:56:10:56:11 | exit M8 (normal) | 5 |
|
||||
| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:20:65:20 | access to parameter b | 4 |
|
||||
| Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | exit M9 | 1 |
|
||||
| Assert.cs:63:10:63:11 | exit M9 (abnormal) | Assert.cs:63:10:63:11 | exit M9 (abnormal) | 1 |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:24:66:32 | ... == ... | 6 |
|
||||
| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | 1 |
|
||||
| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | 1 |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:9:66:38 | call to method IsFalse | 2 |
|
||||
| Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | 2 |
|
||||
| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (normal) | 6 |
|
||||
| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:24:66:37 | [false] ... \|\| ... | 1 |
|
||||
| Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | 1 |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | 1 |
|
||||
| Assert.cs:67:9:67:36 | ...; | Assert.cs:63:10:63:11 | exit M9 (normal) | 5 |
|
||||
| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:20:72:20 | access to parameter b | 4 |
|
||||
| Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | exit M10 | 1 |
|
||||
| Assert.cs:70:10:70:12 | exit M10 (abnormal) | Assert.cs:70:10:70:12 | exit M10 (abnormal) | 1 |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:23:73:31 | ... == ... | 6 |
|
||||
| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | 1 |
|
||||
| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | 1 |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:9:73:37 | call to method IsTrue | 2 |
|
||||
| Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | 2 |
|
||||
| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (normal) | 6 |
|
||||
| Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:23:73:36 | [false] ... && ... | 1 |
|
||||
| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:23:73:36 | [true] ... && ... | 1 |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | 1 |
|
||||
| Assert.cs:74:9:74:36 | ...; | Assert.cs:70:10:70:12 | exit M10 (normal) | 5 |
|
||||
| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:20:79:20 | access to parameter b | 4 |
|
||||
| Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | exit M11 | 1 |
|
||||
| Assert.cs:77:10:77:12 | exit M11 (abnormal) | Assert.cs:77:10:77:12 | exit M11 (abnormal) | 1 |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:24:80:32 | ... != ... | 6 |
|
||||
| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | 1 |
|
||||
| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | 1 |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:9:80:38 | call to method IsFalse | 2 |
|
||||
| Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | 2 |
|
||||
| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (normal) | 6 |
|
||||
| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:24:80:37 | [false] ... \|\| ... | 1 |
|
||||
| Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | 1 |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | 1 |
|
||||
| Assert.cs:81:9:81:36 | ...; | Assert.cs:77:10:77:12 | exit M11 (normal) | 5 |
|
||||
| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:20:86:20 | access to parameter b | 4 |
|
||||
| Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | exit M12 | 1 |
|
||||
| Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | exit M12 (abnormal) | 1 |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:9:87:31 | call to method Assert | 7 |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:22:87:30 | ... != ... | 6 |
|
||||
| Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | 1 |
|
||||
| Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | 1 |
|
||||
| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:13:90:13 | access to parameter b | 6 |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | call to method IsNull | 5 |
|
||||
| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | 1 |
|
||||
| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:13:90:13 | access to parameter b | 7 |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:23:91:23 | access to local variable s | 4 |
|
||||
| Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | 1 |
|
||||
| Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | 1 |
|
||||
| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:13:94:13 | access to parameter b | 6 |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | call to method IsNotNull | 5 |
|
||||
| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | 1 |
|
||||
| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:13:94:13 | access to parameter b | 7 |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:26:95:26 | access to local variable s | 4 |
|
||||
| Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | 1 |
|
||||
| Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | 1 |
|
||||
| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:13:98:13 | access to parameter b | 6 |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | call to method IsTrue | 7 |
|
||||
| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | 1 |
|
||||
| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:13:98:13 | access to parameter b | 7 |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:23:99:31 | ... == ... | 6 |
|
||||
| Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | 1 |
|
||||
| Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | 1 |
|
||||
| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:13:102:13 | access to parameter b | 6 |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | call to method IsTrue | 7 |
|
||||
| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | 1 |
|
||||
| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:13:102:13 | access to parameter b | 7 |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:23:103:31 | ... != ... | 6 |
|
||||
| Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | 1 |
|
||||
| Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | 1 |
|
||||
| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:13:106:13 | access to parameter b | 6 |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | call to method IsFalse | 7 |
|
||||
| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | 1 |
|
||||
| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:13:106:13 | access to parameter b | 7 |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:24:107:32 | ... != ... | 6 |
|
||||
| Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | 1 |
|
||||
| Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | 1 |
|
||||
| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:13:110:13 | access to parameter b | 6 |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | call to method IsFalse | 7 |
|
||||
| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | 1 |
|
||||
| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:13:110:13 | access to parameter b | 7 |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:24:111:32 | ... == ... | 6 |
|
||||
| Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | 1 |
|
||||
| Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | 1 |
|
||||
| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:13:114:13 | access to parameter b | 6 |
|
||||
| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | 1 |
|
||||
| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:13:114:13 | access to parameter b | 7 |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:23:115:31 | ... != ... | 6 |
|
||||
| Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | 1 |
|
||||
| Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | 1 |
|
||||
| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:9:115:37 | call to method IsTrue | 2 |
|
||||
| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | 1 |
|
||||
| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:13:118:13 | access to parameter b | 7 |
|
||||
| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:23:115:36 | [false] ... && ... | 1 |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:23:115:36 | [true] ... && ... | 1 |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | 1 |
|
||||
| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:13:118:13 | access to parameter b | 6 |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:24:119:32 | ... == ... | 6 |
|
||||
| Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | 1 |
|
||||
| Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | 1 |
|
||||
| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:9:119:39 | call to method IsFalse | 2 |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | !... | 2 |
|
||||
| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:13:122:13 | access to parameter b | 6 |
|
||||
| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | 1 |
|
||||
| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:13:122:13 | access to parameter b | 7 |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | 1 |
|
||||
| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | 1 |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:37:119:38 | [false] !... | 1 |
|
||||
| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:119:37:119:38 | [true] !... | 1 |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | 1 |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:23:123:31 | ... == ... | 6 |
|
||||
| Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | 1 |
|
||||
| Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | 1 |
|
||||
| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:9:123:37 | call to method IsTrue | 2 |
|
||||
| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | 1 |
|
||||
| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:13:126:13 | access to parameter b | 7 |
|
||||
| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:23:123:36 | [false] ... && ... | 1 |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [true] ... && ... | 1 |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | 1 |
|
||||
| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:13:126:13 | access to parameter b | 6 |
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:24:127:32 | ... != ... | 6 |
|
||||
| Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | 1 |
|
||||
| Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | 1 |
|
||||
| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:9:127:39 | call to method IsFalse | 2 |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | !... | 2 |
|
||||
| Assert.cs:128:9:128:36 | ...; | Assert.cs:84:10:84:12 | exit M12 (normal) | 5 |
|
||||
| Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | 1 |
|
||||
| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (normal) | 6 |
|
||||
| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | 1 |
|
||||
| Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | 1 |
|
||||
| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:37:127:38 | [false] !... | 1 |
|
||||
| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:127:37:127:38 | [true] !... | 1 |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | 1 |
|
||||
| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | exit AssertTrueFalse | 4 |
|
||||
| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | 8 |
|
||||
| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:25:140:26 | access to parameter b1 | 5 |
|
||||
| Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | exit M13 | 1 |
|
||||
| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 (abnormal) | 1 |
|
||||
| Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | exit M13 (normal) | 2 |
|
||||
| Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | 1 |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:29:140:30 | access to parameter b2 | 1 |
|
||||
| Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | 2 |
|
||||
| Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | 2 |
|
||||
| Assert.cs:140:33:140:34 | [assertion success] access to parameter b3 | Assert.cs:138:10:138:12 | exit M13 (normal) | 4 |
|
||||
| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | exit Assignments | 5 |
|
||||
| Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | exit M | 34 |
|
||||
| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | exit (...) => ... | 4 |
|
||||
@@ -368,13 +395,15 @@
|
||||
| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall | 4 |
|
||||
| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:34:117:34 | 0 | 1 |
|
||||
| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:38:117:38 | 1 | 1 |
|
||||
| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:120:17:120:32 | exit FailingAssertion | 7 |
|
||||
| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:122:23:122:27 | false | 4 |
|
||||
| ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion | 3 |
|
||||
| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | 7 |
|
||||
| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:33:132:49 | call to method IsFalse | 3 |
|
||||
| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | 2 |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse | 1 |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | 1 |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | 1 |
|
||||
| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | 8 |
|
||||
| ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | 2 |
|
||||
| ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | 2 |
|
||||
| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:136:21:136:24 | true | 5 |
|
||||
| ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | 3 |
|
||||
| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:142:13:142:13 | access to parameter b | 4 |
|
||||
| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow | 2 |
|
||||
| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:13:143:42 | call to method Throw | 3 |
|
||||
|
||||
@@ -1,56 +1,696 @@
|
||||
conditionBlock
|
||||
| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:24:9:27 | null | true |
|
||||
| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:31:9:32 | "" | false |
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:10:9:10:31 | [assertion failure] call to method Assert | false |
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:10:9:10:31 | [assertion success] call to method Assert | true |
|
||||
| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:24:16:27 | null | true |
|
||||
| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:31:16:32 | "" | false |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | false |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:17:9:17:24 | [assertion success] call to method IsNull | true |
|
||||
| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:24:23:27 | null | true |
|
||||
| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:31:23:32 | "" | false |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | true |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:24:9:24:27 | [assertion success] call to method IsNotNull | false |
|
||||
| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:24:30:27 | null | true |
|
||||
| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:31:30:32 | "" | false |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:24:37:27 | null | true |
|
||||
| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:31:37:32 | "" | false |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:24:44:27 | null | true |
|
||||
| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:31:44:32 | "" | false |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:24:51:27 | null | true |
|
||||
| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:31:51:32 | "" | false |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:24:58:27 | null | true |
|
||||
| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:31:58:32 | "" | false |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:23:59:36 | [true] ... && ... | true |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:36:59:36 | access to parameter b | true |
|
||||
| Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true |
|
||||
| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:24:65:27 | null | true |
|
||||
| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:31:65:32 | "" | false |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:37:66:37 | access to parameter b | false |
|
||||
| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:24:72:27 | null | true |
|
||||
| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:31:72:32 | "" | false |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:23:73:36 | [true] ... && ... | true |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:36:73:36 | access to parameter b | true |
|
||||
| Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true |
|
||||
| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:24:79:27 | null | true |
|
||||
| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:31:79:32 | "" | false |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:37:80:37 | access to parameter b | false |
|
||||
| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:24:86:27 | null | true |
|
||||
| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:31:86:32 | "" | false |
|
||||
| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:17:90:20 | null | true |
|
||||
| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:24:90:25 | "" | false |
|
||||
| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:17:94:20 | null | true |
|
||||
| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:24:94:25 | "" | false |
|
||||
| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:17:98:20 | null | true |
|
||||
| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:24:98:25 | "" | false |
|
||||
| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:17:102:20 | null | true |
|
||||
| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:24:102:25 | "" | false |
|
||||
| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:17:106:20 | null | true |
|
||||
| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:24:106:25 | "" | false |
|
||||
| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:17:110:20 | null | true |
|
||||
| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:24:110:25 | "" | false |
|
||||
| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:17:114:20 | null | true |
|
||||
| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:24:114:25 | "" | false |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | false |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:17:90:20 | null | true |
|
||||
| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:24:90:25 | "" | false |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | false |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:17:94:20 | null | true |
|
||||
| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:24:94:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | true |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:17:98:20 | null | true |
|
||||
| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:24:98:25 | "" | false |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:17:102:20 | null | true |
|
||||
| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:24:102:25 | "" | false |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:17:106:20 | null | true |
|
||||
| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:24:106:25 | "" | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:17:110:20 | null | true |
|
||||
| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:24:110:25 | "" | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:17:114:20 | null | true |
|
||||
| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:24:114:25 | "" | false |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true |
|
||||
| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:24:118:25 | "" | false |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:24:118:25 | "" | false |
|
||||
| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:24:118:25 | "" | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:37:119:38 | [true] !... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:38:119:38 | access to parameter b | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:24:122:25 | "" | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [false] ... && ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:13:118:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:24:118:25 | "" | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:24:122:25 | "" | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false |
|
||||
| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:17:122:20 | null | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:23:123:36 | [true] ... && ... | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:36:123:36 | access to parameter b | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:17:126:20 | null | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:37:127:38 | [false] !... | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:13:122:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:17:122:20 | null | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:23:123:36 | [true] ... && ... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:36:123:36 | access to parameter b | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:13:126:25 | ... ? ... : ... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:17:126:20 | null | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:37:127:38 | [false] !... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | false |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:24:122:25 | "" | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:24:126:25 | "" | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false |
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | false |
|
||||
| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:29:140:30 | access to parameter b2 | true |
|
||||
| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | false |
|
||||
| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | true |
|
||||
| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:33:140:34 | [assertion success] access to parameter b3 | true |
|
||||
| Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | false |
|
||||
| Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | true |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | true |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | [assertion success] access to parameter b3 | false |
|
||||
| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:26:7:28 | String arg | false |
|
||||
| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:10:21:10:26 | break; | false |
|
||||
| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:10:21:10:26 | break; | true |
|
||||
@@ -187,6 +827,10 @@ conditionBlock
|
||||
| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:112:69:112:75 | "input" | false |
|
||||
| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:117:34:117:34 | 0 | true |
|
||||
| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:117:38:117:38 | 1 | false |
|
||||
| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | false |
|
||||
| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | true |
|
||||
| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | false |
|
||||
| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | true |
|
||||
| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:143:13:143:43 | ...; | true |
|
||||
| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:145:13:145:53 | ...; | false |
|
||||
| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | true |
|
||||
@@ -1044,64 +1688,126 @@ conditionBlock
|
||||
conditionFlow
|
||||
| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:24:9:27 | null | true |
|
||||
| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:31:9:32 | "" | false |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:9:10:31 | [assertion failure] call to method Assert | false |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:9:10:31 | [assertion success] call to method Assert | true |
|
||||
| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:24:16:27 | null | true |
|
||||
| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:31:16:32 | "" | false |
|
||||
| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:24:23:27 | null | true |
|
||||
| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:31:23:32 | "" | false |
|
||||
| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:24:30:27 | null | true |
|
||||
| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:31:30:32 | "" | false |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:24:37:27 | null | true |
|
||||
| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:31:37:32 | "" | false |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:24:44:27 | null | true |
|
||||
| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:31:44:32 | "" | false |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:24:51:27 | null | true |
|
||||
| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:31:51:32 | "" | false |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | null | true |
|
||||
| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | "" | false |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | ... && ... | false |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | false |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:36:59:36 | access to parameter b | true |
|
||||
| Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [false] ... && ... | false |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true |
|
||||
| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | null | true |
|
||||
| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | "" | false |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | ... \|\| ... | true |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:37:66:37 | access to parameter b | false |
|
||||
| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | null | true |
|
||||
| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | "" | false |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | ... && ... | false |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | false |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:36:73:36 | access to parameter b | true |
|
||||
| Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [false] ... && ... | false |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true |
|
||||
| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | null | true |
|
||||
| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | "" | false |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | ... \|\| ... | true |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:37:80:37 | access to parameter b | false |
|
||||
| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | null | true |
|
||||
| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | "" | false |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | false |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | true |
|
||||
| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:17:90:20 | null | true |
|
||||
| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:24:90:25 | "" | false |
|
||||
| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:17:94:20 | null | true |
|
||||
| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:24:94:25 | "" | false |
|
||||
| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:17:98:20 | null | true |
|
||||
| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:24:98:25 | "" | false |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:17:102:20 | null | true |
|
||||
| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:24:102:25 | "" | false |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:17:106:20 | null | true |
|
||||
| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:24:106:25 | "" | false |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:17:110:20 | null | true |
|
||||
| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:24:110:25 | "" | false |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:17:114:20 | null | true |
|
||||
| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:24:114:25 | "" | false |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | ... && ... | false |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | [false] ... && ... | false |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:36:115:36 | access to parameter b | true |
|
||||
| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [false] ... && ... | false |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | true |
|
||||
| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:17:118:20 | null | true |
|
||||
| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:24:118:25 | "" | false |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | ... \|\| ... | true |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:38:119:38 | access to parameter b | false |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | false |
|
||||
| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:17:122:20 | null | true |
|
||||
| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:24:122:25 | "" | false |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | ... && ... | false |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:17:126:20 | null | true |
|
||||
| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:24:126:25 | "" | false |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | ... \|\| ... | true |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | false |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | access to parameter b2 | true |
|
||||
| Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | false |
|
||||
| Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | true |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | true |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | [assertion success] access to parameter b3 | false |
|
||||
| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | false |
|
||||
| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:10:21:10:26 | break; | true |
|
||||
| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | false |
|
||||
@@ -1202,6 +1908,10 @@ conditionFlow
|
||||
| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:69:112:75 | "input" | false |
|
||||
| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:34:117:34 | 0 | true |
|
||||
| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:38:117:38 | 1 | false |
|
||||
| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | false |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | true |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | false |
|
||||
| ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | true |
|
||||
| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:143:13:143:43 | ...; | true |
|
||||
| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:145:13:145:53 | ...; | false |
|
||||
| Finally.cs:26:48:26:51 | true | Finally.cs:27:9:29:9 | {...} | true |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -371,7 +371,8 @@ nodeEnclosing
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:9:24:9:27 | null | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:9:31:9:32 | "" | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:10:9:10:31 | [assertion failure] call to method Assert | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:10:9:10:31 | [assertion success] call to method Assert | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:10:9:10:32 | ...; | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:7:10:7:11 | M1 |
|
||||
@@ -391,7 +392,8 @@ nodeEnclosing
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:16:24:16:27 | null | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:16:31:16:32 | "" | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:17:9:17:24 | [assertion success] call to method IsNull | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:17:9:17:25 | ...; | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:14:10:14:11 | M2 |
|
||||
@@ -409,7 +411,8 @@ nodeEnclosing
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:23:24:23:27 | null | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:23:31:23:32 | "" | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:24:9:24:27 | [assertion success] call to method IsNotNull | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:24:9:24:28 | ...; | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:21:10:21:11 | M3 |
|
||||
@@ -427,7 +430,8 @@ nodeEnclosing
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:30:24:30:27 | null | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:30:31:30:32 | "" | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:31:9:31:33 | ...; | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:28:10:28:11 | M4 |
|
||||
@@ -447,7 +451,8 @@ nodeEnclosing
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:37:24:37:27 | null | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:37:31:37:32 | "" | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:38:9:38:33 | ...; | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:35:10:35:11 | M5 |
|
||||
@@ -467,7 +472,8 @@ nodeEnclosing
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:44:24:44:27 | null | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:44:31:44:32 | "" | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:45:9:45:34 | ...; | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:42:10:42:11 | M6 |
|
||||
@@ -487,7 +493,8 @@ nodeEnclosing
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:51:24:51:27 | null | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:51:31:51:32 | "" | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:52:9:52:34 | ...; | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:49:10:49:11 | M7 |
|
||||
@@ -507,11 +514,13 @@ nodeEnclosing
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:58:24:58:27 | null | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:58:31:58:32 | "" | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:9:59:38 | ...; | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:28:59:31 | null | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:56:10:56:11 | M8 |
|
||||
@@ -529,11 +538,13 @@ nodeEnclosing
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:65:24:65:27 | null | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:65:31:65:32 | "" | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:9:66:39 | ...; | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:29:66:32 | null | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:63:10:63:11 | M9 |
|
||||
@@ -551,11 +562,13 @@ nodeEnclosing
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:72:24:72:27 | null | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:72:31:72:32 | "" | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:9:73:38 | ...; | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:28:73:31 | null | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:70:10:70:12 | M10 |
|
||||
@@ -573,11 +586,13 @@ nodeEnclosing
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:79:24:79:27 | null | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:79:31:79:32 | "" | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:9:80:39 | ...; | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:29:80:32 | null | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:77:10:77:12 | M11 |
|
||||
@@ -595,7 +610,8 @@ nodeEnclosing
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:86:24:86:27 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:86:31:86:32 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:87:9:87:32 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -610,7 +626,8 @@ nodeEnclosing
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:90:17:90:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:90:24:90:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:91:9:91:25 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -623,7 +640,8 @@ nodeEnclosing
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:94:17:94:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:94:24:94:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:95:9:95:28 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -636,7 +654,8 @@ nodeEnclosing
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:98:17:98:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:98:24:98:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:99:9:99:33 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -651,7 +670,8 @@ nodeEnclosing
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:102:17:102:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:102:24:102:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:103:9:103:33 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -666,7 +686,8 @@ nodeEnclosing
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:106:17:106:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:106:24:106:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:107:9:107:34 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -681,7 +702,8 @@ nodeEnclosing
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:110:17:110:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:110:24:110:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:111:9:111:34 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -696,11 +718,13 @@ nodeEnclosing
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:114:17:114:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:114:24:114:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:9:115:38 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:28:115:31 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -713,13 +737,16 @@ nodeEnclosing
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:118:17:118:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:118:24:118:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:9:119:40 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:29:119:32 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:37:119:38 | !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:120:9:120:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -731,11 +758,13 @@ nodeEnclosing
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:122:17:122:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:122:24:122:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:9:123:38 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:28:123:31 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -748,13 +777,16 @@ nodeEnclosing
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:126:17:126:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:126:24:126:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:9:127:40 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:29:127:32 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:37:127:38 | !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:128:9:128:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
@@ -769,12 +801,17 @@ nodeEnclosing
|
||||
| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:138:10:138:12 | exit M13 (normal) | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:139:5:142:5 | {...} | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:9:140:35 | [assertion success] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:9:140:35 | this access | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:9:140:36 | ...; | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:33:140:34 | [assertion success] access to parameter b3 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | Assignments |
|
||||
| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | Assignments |
|
||||
@@ -1538,7 +1575,7 @@ nodeEnclosing
|
||||
| ExitMethods.cs:120:17:120:32 | exit FailingAssertion | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:126:17:126:33 | FailingAssertion2 |
|
||||
@@ -1552,13 +1589,14 @@ nodeEnclosing
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
@@ -4212,149 +4250,176 @@ blockEnclosing
|
||||
| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | AssertTests |
|
||||
| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:7:10:7:11 | exit M1 | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:9:24:9:27 | null | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:9:31:9:32 | "" | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:11:9:11:36 | ...; | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:10:9:10:31 | [assertion failure] call to method Assert | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:10:9:10:31 | [assertion success] call to method Assert | Assert.cs:7:10:7:11 | M1 |
|
||||
| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:14:10:14:11 | exit M2 | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:14:10:14:11 | exit M2 (abnormal) | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:16:24:16:27 | null | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:16:31:16:32 | "" | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:18:9:18:36 | ...; | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:17:9:17:24 | [assertion success] call to method IsNull | Assert.cs:14:10:14:11 | M2 |
|
||||
| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:21:10:21:11 | exit M3 | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:21:10:21:11 | exit M3 (abnormal) | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:23:24:23:27 | null | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:23:31:23:32 | "" | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:25:9:25:36 | ...; | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:24:9:24:27 | [assertion success] call to method IsNotNull | Assert.cs:21:10:21:11 | M3 |
|
||||
| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:28:10:28:11 | exit M4 | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:28:10:28:11 | exit M4 (abnormal) | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:30:24:30:27 | null | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:30:31:30:32 | "" | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:32:9:32:36 | ...; | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | Assert.cs:28:10:28:11 | M4 |
|
||||
| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:35:10:35:11 | exit M5 | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:35:10:35:11 | exit M5 (abnormal) | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:37:24:37:27 | null | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:37:31:37:32 | "" | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:39:9:39:36 | ...; | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | Assert.cs:35:10:35:11 | M5 |
|
||||
| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:42:10:42:11 | exit M6 | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:42:10:42:11 | exit M6 (abnormal) | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:44:24:44:27 | null | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:44:31:44:32 | "" | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:46:9:46:36 | ...; | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | Assert.cs:42:10:42:11 | M6 |
|
||||
| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:49:10:49:11 | exit M7 | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:49:10:49:11 | exit M7 (abnormal) | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:51:24:51:27 | null | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:51:31:51:32 | "" | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:53:9:53:36 | ...; | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:49:10:49:11 | M7 |
|
||||
| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:56:10:56:11 | exit M8 (abnormal) | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:58:24:58:27 | null | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:58:31:58:32 | "" | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:60:9:60:36 | ...; | Assert.cs:56:10:56:11 | M8 |
|
||||
| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:63:10:63:11 | exit M9 (abnormal) | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:65:24:65:27 | null | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:65:31:65:32 | "" | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:67:9:67:36 | ...; | Assert.cs:63:10:63:11 | M9 |
|
||||
| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:70:10:70:12 | exit M10 (abnormal) | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:72:24:72:27 | null | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:72:31:72:32 | "" | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:74:9:74:36 | ...; | Assert.cs:70:10:70:12 | M10 |
|
||||
| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:77:10:77:12 | exit M11 (abnormal) | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:79:24:79:27 | null | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:79:31:79:32 | "" | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:81:9:81:36 | ...; | Assert.cs:77:10:77:12 | M11 |
|
||||
| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:86:24:86:27 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:86:31:86:32 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:88:9:88:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:90:17:90:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:90:24:90:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:92:9:92:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:94:17:94:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:94:24:94:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:96:9:96:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:98:17:98:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:98:24:98:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:100:9:100:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:102:17:102:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:102:24:102:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:104:9:104:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:106:17:106:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:106:24:106:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:108:9:108:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:110:17:110:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:110:24:110:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:112:9:112:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:114:17:114:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:114:24:114:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:116:9:116:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:118:17:118:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:118:24:118:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:120:9:120:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:122:17:122:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:122:24:122:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:124:9:124:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:126:17:126:20 | null | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:126:24:126:25 | "" | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:128:9:128:36 | ...; | Assert.cs:84:10:84:12 | M12 |
|
||||
| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | AssertTrueFalse |
|
||||
| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assert.cs:140:33:140:34 | [assertion success] access to parameter b3 | Assert.cs:138:10:138:12 | M13 |
|
||||
| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | Assignments |
|
||||
| Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | M |
|
||||
| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | (...) => ... |
|
||||
@@ -4561,12 +4626,14 @@ blockEnclosing
|
||||
| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall |
|
||||
| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall |
|
||||
| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | ExitMethods.cs:120:17:120:32 | FailingAssertion |
|
||||
| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:126:17:126:33 | FailingAssertion2 |
|
||||
| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse |
|
||||
| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | ExitMethods.cs:134:17:134:33 | FailingAssertion3 |
|
||||
| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow |
|
||||
| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow |
|
||||
| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow |
|
||||
|
||||
@@ -327,7 +327,8 @@
|
||||
| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:9:10:31 | call to method Assert | exit |
|
||||
| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:9:10:31 | call to method Assert | normal |
|
||||
| Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | normal |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:30 | ... != ... | normal |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:30 | ... != ... | false |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:30 | ... != ... | true |
|
||||
| Assert.cs:10:27:10:30 | null | Assert.cs:10:27:10:30 | null | normal |
|
||||
| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:11:9:11:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:9:11:35 | call to method WriteLine | normal |
|
||||
@@ -346,7 +347,8 @@
|
||||
| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:9:17:24 | call to method IsNull | throw(AssertFailedException) |
|
||||
| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:9:17:24 | call to method IsNull | normal |
|
||||
| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:9:17:24 | call to method IsNull | throw(AssertFailedException) |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:23:17:23 | access to local variable s | normal |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:23:17:23 | access to local variable s | non-null |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:23:17:23 | access to local variable s | null |
|
||||
| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:18:9:18:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:9:18:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:18:27:18:27 | access to local variable s | normal |
|
||||
@@ -364,7 +366,8 @@
|
||||
| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:9:24:27 | call to method IsNotNull | throw(AssertFailedException) |
|
||||
| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:9:24:27 | call to method IsNotNull | normal |
|
||||
| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:9:24:27 | call to method IsNotNull | throw(AssertFailedException) |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | normal |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | non-null |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | null |
|
||||
| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:25:9:25:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:9:25:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:25:27:25:27 | access to local variable s | normal |
|
||||
@@ -383,7 +386,8 @@
|
||||
| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:9:31:32 | call to method IsTrue | normal |
|
||||
| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:9:31:32 | call to method IsTrue | throw(AssertFailedException) |
|
||||
| Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:23:31:23 | access to local variable s | normal |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:23:31:31 | ... == ... | normal |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:23:31:31 | ... == ... | false |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:23:31:31 | ... == ... | true |
|
||||
| Assert.cs:31:28:31:31 | null | Assert.cs:31:28:31:31 | null | normal |
|
||||
| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:32:9:32:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:9:32:35 | call to method WriteLine | normal |
|
||||
@@ -403,7 +407,8 @@
|
||||
| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:9:38:32 | call to method IsTrue | normal |
|
||||
| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:9:38:32 | call to method IsTrue | throw(AssertFailedException) |
|
||||
| Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | normal |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:31 | ... != ... | normal |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:31 | ... != ... | false |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:31 | ... != ... | true |
|
||||
| Assert.cs:38:28:38:31 | null | Assert.cs:38:28:38:31 | null | normal |
|
||||
| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:39:9:39:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:9:39:35 | call to method WriteLine | normal |
|
||||
@@ -423,7 +428,8 @@
|
||||
| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:9:45:33 | call to method IsFalse | normal |
|
||||
| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:9:45:33 | call to method IsFalse | throw(AssertFailedException) |
|
||||
| Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:24:45:24 | access to local variable s | normal |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:32 | ... != ... | normal |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:32 | ... != ... | false |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:32 | ... != ... | true |
|
||||
| Assert.cs:45:29:45:32 | null | Assert.cs:45:29:45:32 | null | normal |
|
||||
| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:46:9:46:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:9:46:35 | call to method WriteLine | normal |
|
||||
@@ -443,7 +449,8 @@
|
||||
| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:9:52:33 | call to method IsFalse | normal |
|
||||
| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:9:52:33 | call to method IsFalse | throw(AssertFailedException) |
|
||||
| Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | normal |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:32 | ... == ... | normal |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:32 | ... == ... | false |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:32 | ... == ... | true |
|
||||
| Assert.cs:52:29:52:32 | null | Assert.cs:52:29:52:32 | null | normal |
|
||||
| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:53:9:53:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:9:53:35 | call to method WriteLine | normal |
|
||||
@@ -465,9 +472,11 @@
|
||||
| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | normal |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | ... != ... | false |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | ... != ... | true |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:36 | ... && ... | normal |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:36 | ... && ... | false |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:36 | ... && ... | true |
|
||||
| Assert.cs:59:28:59:31 | null | Assert.cs:59:28:59:31 | null | normal |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | normal |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | false |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | true |
|
||||
| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:60:9:60:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:9:60:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:27:60:27 | access to local variable s | normal |
|
||||
@@ -488,9 +497,11 @@
|
||||
| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | normal |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | ... == ... | false |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | ... == ... | true |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:37 | ... \|\| ... | normal |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:37 | ... \|\| ... | false |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:37 | ... \|\| ... | true |
|
||||
| Assert.cs:66:29:66:32 | null | Assert.cs:66:29:66:32 | null | normal |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | normal |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | false |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | true |
|
||||
| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:67:9:67:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:9:67:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:27:67:27 | access to local variable s | normal |
|
||||
@@ -511,9 +522,11 @@
|
||||
| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:23:73:23 | access to local variable s | normal |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | ... == ... | false |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | ... == ... | true |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:36 | ... && ... | normal |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:36 | ... && ... | false |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:36 | ... && ... | true |
|
||||
| Assert.cs:73:28:73:31 | null | Assert.cs:73:28:73:31 | null | normal |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | normal |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | false |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | true |
|
||||
| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:74:9:74:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:9:74:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:27:74:27 | access to local variable s | normal |
|
||||
@@ -534,9 +547,11 @@
|
||||
| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | normal |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | ... != ... | false |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | ... != ... | true |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:37 | ... \|\| ... | normal |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:37 | ... \|\| ... | false |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:37 | ... \|\| ... | true |
|
||||
| Assert.cs:80:29:80:32 | null | Assert.cs:80:29:80:32 | null | normal |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | normal |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | false |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | true |
|
||||
| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:81:9:81:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:9:81:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:27:81:27 | access to local variable s | normal |
|
||||
@@ -565,7 +580,8 @@
|
||||
| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:9:87:31 | call to method Assert | exit |
|
||||
| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:9:87:31 | call to method Assert | normal |
|
||||
| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:22:87:22 | access to local variable s | normal |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:22:87:30 | ... != ... | normal |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:22:87:30 | ... != ... | false |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:22:87:30 | ... != ... | true |
|
||||
| Assert.cs:87:27:87:30 | null | Assert.cs:87:27:87:30 | null | normal |
|
||||
| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:88:9:88:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:9:88:35 | call to method WriteLine | normal |
|
||||
@@ -582,7 +598,8 @@
|
||||
| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:91:9:91:24 | call to method IsNull | throw(AssertFailedException) |
|
||||
| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:9:91:24 | call to method IsNull | normal |
|
||||
| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:9:91:24 | call to method IsNull | throw(AssertFailedException) |
|
||||
| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:23:91:23 | access to local variable s | normal |
|
||||
| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:23:91:23 | access to local variable s | non-null |
|
||||
| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:23:91:23 | access to local variable s | null |
|
||||
| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:92:9:92:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:9:92:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:27 | access to local variable s | normal |
|
||||
@@ -598,7 +615,8 @@
|
||||
| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:95:9:95:27 | call to method IsNotNull | throw(AssertFailedException) |
|
||||
| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:9:95:27 | call to method IsNotNull | normal |
|
||||
| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:9:95:27 | call to method IsNotNull | throw(AssertFailedException) |
|
||||
| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:26:95:26 | access to local variable s | normal |
|
||||
| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:26:95:26 | access to local variable s | non-null |
|
||||
| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:26:95:26 | access to local variable s | null |
|
||||
| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:96:9:96:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:9:96:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:27 | access to local variable s | normal |
|
||||
@@ -615,7 +633,8 @@
|
||||
| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:9:99:32 | call to method IsTrue | normal |
|
||||
| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:9:99:32 | call to method IsTrue | throw(AssertFailedException) |
|
||||
| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:23:99:23 | access to local variable s | normal |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:23:99:31 | ... == ... | normal |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:23:99:31 | ... == ... | false |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:23:99:31 | ... == ... | true |
|
||||
| Assert.cs:99:28:99:31 | null | Assert.cs:99:28:99:31 | null | normal |
|
||||
| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:100:9:100:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:9:100:35 | call to method WriteLine | normal |
|
||||
@@ -633,7 +652,8 @@
|
||||
| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:9:103:32 | call to method IsTrue | normal |
|
||||
| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:9:103:32 | call to method IsTrue | throw(AssertFailedException) |
|
||||
| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:23:103:23 | access to local variable s | normal |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:23:103:31 | ... != ... | normal |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:23:103:31 | ... != ... | false |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:23:103:31 | ... != ... | true |
|
||||
| Assert.cs:103:28:103:31 | null | Assert.cs:103:28:103:31 | null | normal |
|
||||
| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:104:9:104:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:9:104:35 | call to method WriteLine | normal |
|
||||
@@ -651,7 +671,8 @@
|
||||
| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:9:107:33 | call to method IsFalse | normal |
|
||||
| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:9:107:33 | call to method IsFalse | throw(AssertFailedException) |
|
||||
| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:24:107:24 | access to local variable s | normal |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:24:107:32 | ... != ... | normal |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:24:107:32 | ... != ... | false |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:24:107:32 | ... != ... | true |
|
||||
| Assert.cs:107:29:107:32 | null | Assert.cs:107:29:107:32 | null | normal |
|
||||
| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:108:9:108:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:9:108:35 | call to method WriteLine | normal |
|
||||
@@ -669,7 +690,8 @@
|
||||
| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:9:111:33 | call to method IsFalse | normal |
|
||||
| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:9:111:33 | call to method IsFalse | throw(AssertFailedException) |
|
||||
| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:24:111:24 | access to local variable s | normal |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:24:111:32 | ... == ... | normal |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:24:111:32 | ... == ... | false |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:24:111:32 | ... == ... | true |
|
||||
| Assert.cs:111:29:111:32 | null | Assert.cs:111:29:111:32 | null | normal |
|
||||
| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:112:9:112:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:9:112:35 | call to method WriteLine | normal |
|
||||
@@ -689,9 +711,11 @@
|
||||
| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:23:115:23 | access to local variable s | normal |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | ... != ... | false |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | ... != ... | true |
|
||||
| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:36 | ... && ... | normal |
|
||||
| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:36 | ... && ... | false |
|
||||
| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:36 | ... && ... | true |
|
||||
| Assert.cs:115:28:115:31 | null | Assert.cs:115:28:115:31 | null | normal |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | normal |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | false |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | true |
|
||||
| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:116:9:116:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:9:116:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:27 | access to local variable s | normal |
|
||||
@@ -710,10 +734,13 @@
|
||||
| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:24:119:24 | access to local variable s | normal |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | ... == ... | false |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | ... == ... | true |
|
||||
| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:38 | ... \|\| ... | normal |
|
||||
| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:38 | ... \|\| ... | false |
|
||||
| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:38 | ... \|\| ... | true |
|
||||
| Assert.cs:119:29:119:32 | null | Assert.cs:119:29:119:32 | null | normal |
|
||||
| Assert.cs:119:37:119:38 | !... | Assert.cs:119:37:119:38 | !... | normal |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | normal |
|
||||
| Assert.cs:119:37:119:38 | !... | Assert.cs:119:37:119:38 | !... | false |
|
||||
| Assert.cs:119:37:119:38 | !... | Assert.cs:119:37:119:38 | !... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | false |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | true |
|
||||
| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:120:9:120:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:9:120:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:27 | access to local variable s | normal |
|
||||
@@ -732,9 +759,11 @@
|
||||
| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:23:123:23 | access to local variable s | normal |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | ... == ... | false |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | ... == ... | true |
|
||||
| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:36 | ... && ... | normal |
|
||||
| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:36 | ... && ... | false |
|
||||
| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:36 | ... && ... | true |
|
||||
| Assert.cs:123:28:123:31 | null | Assert.cs:123:28:123:31 | null | normal |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | normal |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | false |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:124:9:124:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:9:124:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:27 | access to local variable s | normal |
|
||||
@@ -753,10 +782,13 @@
|
||||
| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:24:127:24 | access to local variable s | normal |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | ... != ... | false |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | ... != ... | true |
|
||||
| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:38 | ... \|\| ... | normal |
|
||||
| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:38 | ... \|\| ... | false |
|
||||
| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:38 | ... \|\| ... | true |
|
||||
| Assert.cs:127:29:127:32 | null | Assert.cs:127:29:127:32 | null | normal |
|
||||
| Assert.cs:127:37:127:38 | !... | Assert.cs:127:37:127:38 | !... | normal |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | normal |
|
||||
| Assert.cs:127:37:127:38 | !... | Assert.cs:127:37:127:38 | !... | false |
|
||||
| Assert.cs:127:37:127:38 | !... | Assert.cs:127:37:127:38 | !... | true |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | true |
|
||||
| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:128:9:128:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:9:128:35 | call to method WriteLine | normal |
|
||||
| Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:27:128:27 | access to local variable s | normal |
|
||||
@@ -769,8 +801,10 @@
|
||||
| Assert.cs:140:9:140:35 | this access | Assert.cs:140:9:140:35 | this access | normal |
|
||||
| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | normal |
|
||||
| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | throw(Exception) |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:25:140:26 | access to parameter b1 | normal |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:29:140:30 | access to parameter b2 | normal |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:25:140:26 | access to parameter b1 | false |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:25:140:26 | access to parameter b1 | true |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:29:140:30 | access to parameter b2 | false |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:29:140:30 | access to parameter b2 | true |
|
||||
| Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:33:140:34 | access to parameter b3 | normal |
|
||||
| Assert.cs:141:9:141:15 | return ...; | Assert.cs:141:9:141:15 | return ...; | return |
|
||||
| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | call to constructor Object | normal |
|
||||
@@ -1559,7 +1593,7 @@
|
||||
| ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:123:13:123:17 | Int32 x = ... | normal |
|
||||
| ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:122:9:122:28 | call to method IsTrue | throw(AssertFailedException) |
|
||||
| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:9:122:28 | call to method IsTrue | throw(AssertFailedException) |
|
||||
| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:23:122:27 | false | normal |
|
||||
| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:23:122:27 | false | false |
|
||||
| ExitMethods.cs:123:9:123:18 | ... ...; | ExitMethods.cs:123:13:123:17 | Int32 x = ... | normal |
|
||||
| ExitMethods.cs:123:13:123:17 | Int32 x = ... | ExitMethods.cs:123:13:123:17 | Int32 x = ... | normal |
|
||||
| ExitMethods.cs:123:17:123:17 | 0 | ExitMethods.cs:123:17:123:17 | 0 | normal |
|
||||
@@ -1573,13 +1607,14 @@
|
||||
| ExitMethods.cs:129:17:129:17 | 0 | ExitMethods.cs:129:17:129:17 | 0 | normal |
|
||||
| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:33:132:49 | call to method IsFalse | normal |
|
||||
| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:33:132:49 | call to method IsFalse | throw(AssertFailedException) |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:48:132:48 | access to parameter b | normal |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:48:132:48 | access to parameter b | false |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:48:132:48 | access to parameter b | true |
|
||||
| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | throw(AssertFailedException) |
|
||||
| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:137:13:137:17 | Int32 x = ... | normal |
|
||||
| ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | throw(AssertFailedException) |
|
||||
| ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:9:136:25 | this access | normal |
|
||||
| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | throw(AssertFailedException) |
|
||||
| ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:21:136:24 | true | normal |
|
||||
| ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:21:136:24 | true | true |
|
||||
| ExitMethods.cs:137:9:137:18 | ... ...; | ExitMethods.cs:137:13:137:17 | Int32 x = ... | normal |
|
||||
| ExitMethods.cs:137:13:137:17 | Int32 x = ... | ExitMethods.cs:137:13:137:17 | Int32 x = ... | normal |
|
||||
| ExitMethods.cs:137:17:137:17 | 0 | ExitMethods.cs:137:17:137:17 | 0 | normal |
|
||||
|
||||
@@ -350,11 +350,12 @@
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:16:9:32 | String s = ... | |
|
||||
| Assert.cs:9:24:9:27 | null | Assert.cs:9:20:9:32 | ... ? ... : ... | |
|
||||
| Assert.cs:9:31:9:32 | "" | Assert.cs:9:20:9:32 | ... ? ... : ... | |
|
||||
| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:7:10:7:11 | exit M1 (abnormal) | exit |
|
||||
| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:11:9:11:36 | ...; | |
|
||||
| Assert.cs:10:9:10:31 | [assertion failure] call to method Assert | Assert.cs:7:10:7:11 | exit M1 (abnormal) | exit |
|
||||
| Assert.cs:10:9:10:31 | [assertion success] call to method Assert | Assert.cs:11:9:11:36 | ...; | |
|
||||
| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:22:10:22 | access to local variable s | |
|
||||
| Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:27:10:30 | null | |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:9:10:31 | call to method Assert | |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:9:10:31 | [assertion failure] call to method Assert | false |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:9:10:31 | [assertion success] call to method Assert | true |
|
||||
| Assert.cs:10:27:10:30 | null | Assert.cs:10:22:10:30 | ... != ... | |
|
||||
| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:7:10:7:11 | exit M1 (normal) | |
|
||||
| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:27:11:27 | access to local variable s | |
|
||||
@@ -371,10 +372,11 @@
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:16:16:32 | String s = ... | |
|
||||
| Assert.cs:16:24:16:27 | null | Assert.cs:16:20:16:32 | ... ? ... : ... | |
|
||||
| Assert.cs:16:31:16:32 | "" | Assert.cs:16:20:16:32 | ... ? ... : ... | |
|
||||
| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | exception |
|
||||
| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:18:9:18:36 | ...; | |
|
||||
| Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | exception |
|
||||
| Assert.cs:17:9:17:24 | [assertion success] call to method IsNull | Assert.cs:18:9:18:36 | ...; | |
|
||||
| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:23:17:23 | access to local variable s | |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:24 | call to method IsNull | |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | non-null |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:24 | [assertion success] call to method IsNull | null |
|
||||
| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:14:10:14:11 | exit M2 (normal) | |
|
||||
| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:27:18:27 | access to local variable s | |
|
||||
| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:18:27:18:34 | access to property Length | |
|
||||
@@ -390,10 +392,11 @@
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:16:23:32 | String s = ... | |
|
||||
| Assert.cs:23:24:23:27 | null | Assert.cs:23:20:23:32 | ... ? ... : ... | |
|
||||
| Assert.cs:23:31:23:32 | "" | Assert.cs:23:20:23:32 | ... ? ... : ... | |
|
||||
| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | exception |
|
||||
| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:25:9:25:36 | ...; | |
|
||||
| Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | exception |
|
||||
| Assert.cs:24:9:24:27 | [assertion success] call to method IsNotNull | Assert.cs:25:9:25:36 | ...; | |
|
||||
| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:26:24:26 | access to local variable s | |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:27 | call to method IsNotNull | |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | null |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:27 | [assertion success] call to method IsNotNull | non-null |
|
||||
| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:21:10:21:11 | exit M3 (normal) | |
|
||||
| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:27:25:27 | access to local variable s | |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:25:27:25:34 | access to property Length | |
|
||||
@@ -409,11 +412,12 @@
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:16:30:32 | String s = ... | |
|
||||
| Assert.cs:30:24:30:27 | null | Assert.cs:30:20:30:32 | ... ? ... : ... | |
|
||||
| Assert.cs:30:31:30:32 | "" | Assert.cs:30:20:30:32 | ... ? ... : ... | |
|
||||
| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | exception |
|
||||
| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:32:9:32:36 | ...; | |
|
||||
| Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | exception |
|
||||
| Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | Assert.cs:32:9:32:36 | ...; | |
|
||||
| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:23:31:23 | access to local variable s | |
|
||||
| Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:28:31:31 | null | |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:9:31:32 | call to method IsTrue | |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:31:28:31:31 | null | Assert.cs:31:23:31:31 | ... == ... | |
|
||||
| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:28:10:28:11 | exit M4 (normal) | |
|
||||
| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:27:32:27 | access to local variable s | |
|
||||
@@ -430,11 +434,12 @@
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:16:37:32 | String s = ... | |
|
||||
| Assert.cs:37:24:37:27 | null | Assert.cs:37:20:37:32 | ... ? ... : ... | |
|
||||
| Assert.cs:37:31:37:32 | "" | Assert.cs:37:20:37:32 | ... ? ... : ... | |
|
||||
| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | exception |
|
||||
| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:39:9:39:36 | ...; | |
|
||||
| Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | exception |
|
||||
| Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | Assert.cs:39:9:39:36 | ...; | |
|
||||
| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:23:38:23 | access to local variable s | |
|
||||
| Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:28:38:31 | null | |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:9:38:32 | call to method IsTrue | |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:38:28:38:31 | null | Assert.cs:38:23:38:31 | ... != ... | |
|
||||
| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:35:10:35:11 | exit M5 (normal) | |
|
||||
| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:27:39:27 | access to local variable s | |
|
||||
@@ -451,11 +456,12 @@
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:16:44:32 | String s = ... | |
|
||||
| Assert.cs:44:24:44:27 | null | Assert.cs:44:20:44:32 | ... ? ... : ... | |
|
||||
| Assert.cs:44:31:44:32 | "" | Assert.cs:44:20:44:32 | ... ? ... : ... | |
|
||||
| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | exception |
|
||||
| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:46:9:46:36 | ...; | |
|
||||
| Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | exception |
|
||||
| Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | Assert.cs:46:9:46:36 | ...; | |
|
||||
| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:24:45:24 | access to local variable s | |
|
||||
| Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:29:45:32 | null | |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:9:45:33 | call to method IsFalse | |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:45:29:45:32 | null | Assert.cs:45:24:45:32 | ... != ... | |
|
||||
| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:42:10:42:11 | exit M6 (normal) | |
|
||||
| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:27:46:27 | access to local variable s | |
|
||||
@@ -472,11 +478,12 @@
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:16:51:32 | String s = ... | |
|
||||
| Assert.cs:51:24:51:27 | null | Assert.cs:51:20:51:32 | ... ? ... : ... | |
|
||||
| Assert.cs:51:31:51:32 | "" | Assert.cs:51:20:51:32 | ... ? ... : ... | |
|
||||
| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | exception |
|
||||
| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:53:9:53:36 | ...; | |
|
||||
| Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | exception |
|
||||
| Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:53:9:53:36 | ...; | |
|
||||
| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:24:52:24 | access to local variable s | |
|
||||
| Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:29:52:32 | null | |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | call to method IsFalse | |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:52:29:52:32 | null | Assert.cs:52:24:52:32 | ... == ... | |
|
||||
| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:49:10:49:11 | exit M7 (normal) | |
|
||||
| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:27:53:27 | access to local variable s | |
|
||||
@@ -493,15 +500,17 @@
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:16:58:32 | String s = ... | |
|
||||
| Assert.cs:58:24:58:27 | null | Assert.cs:58:20:58:32 | ... ? ... : ... | |
|
||||
| Assert.cs:58:31:58:32 | "" | Assert.cs:58:20:58:32 | ... ? ... : ... | |
|
||||
| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | exception |
|
||||
| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:60:9:60:36 | ...; | |
|
||||
| Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | exception |
|
||||
| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:60:9:60:36 | ...; | |
|
||||
| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:23:59:23 | access to local variable s | |
|
||||
| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:28:59:31 | null | |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | ... && ... | false |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | false |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:36:59:36 | access to parameter b | true |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:9:59:37 | call to method IsTrue | |
|
||||
| Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:59:28:59:31 | null | Assert.cs:59:23:59:31 | ... != ... | |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | ... && ... | |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [false] ... && ... | false |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true |
|
||||
| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:56:10:56:11 | exit M8 (normal) | |
|
||||
| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:27:60:27 | access to local variable s | |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:27:60:34 | access to property Length | |
|
||||
@@ -517,15 +526,17 @@
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:16:65:32 | String s = ... | |
|
||||
| Assert.cs:65:24:65:27 | null | Assert.cs:65:20:65:32 | ... ? ... : ... | |
|
||||
| Assert.cs:65:31:65:32 | "" | Assert.cs:65:20:65:32 | ... ? ... : ... | |
|
||||
| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | exception |
|
||||
| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:67:9:67:36 | ...; | |
|
||||
| Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | exception |
|
||||
| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:67:9:67:36 | ...; | |
|
||||
| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:24:66:24 | access to local variable s | |
|
||||
| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:29:66:32 | null | |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | ... \|\| ... | true |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:37:66:37 | access to parameter b | false |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:9:66:38 | call to method IsFalse | |
|
||||
| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:66:29:66:32 | null | Assert.cs:66:24:66:32 | ... == ... | |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | ... \|\| ... | |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:63:10:63:11 | exit M9 (normal) | |
|
||||
| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:27:67:27 | access to local variable s | |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:27:67:34 | access to property Length | |
|
||||
@@ -541,15 +552,17 @@
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:16:72:32 | String s = ... | |
|
||||
| Assert.cs:72:24:72:27 | null | Assert.cs:72:20:72:32 | ... ? ... : ... | |
|
||||
| Assert.cs:72:31:72:32 | "" | Assert.cs:72:20:72:32 | ... ? ... : ... | |
|
||||
| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | exception |
|
||||
| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:74:9:74:36 | ...; | |
|
||||
| Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | exception |
|
||||
| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:74:9:74:36 | ...; | |
|
||||
| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:23:73:23 | access to local variable s | |
|
||||
| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:28:73:31 | null | |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | ... && ... | false |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | false |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:36:73:36 | access to parameter b | true |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:9:73:37 | call to method IsTrue | |
|
||||
| Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:73:28:73:31 | null | Assert.cs:73:23:73:31 | ... == ... | |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | ... && ... | |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [false] ... && ... | false |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true |
|
||||
| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:70:10:70:12 | exit M10 (normal) | |
|
||||
| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:27:74:27 | access to local variable s | |
|
||||
| Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:27:74:34 | access to property Length | |
|
||||
@@ -565,15 +578,17 @@
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:16:79:32 | String s = ... | |
|
||||
| Assert.cs:79:24:79:27 | null | Assert.cs:79:20:79:32 | ... ? ... : ... | |
|
||||
| Assert.cs:79:31:79:32 | "" | Assert.cs:79:20:79:32 | ... ? ... : ... | |
|
||||
| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | exception |
|
||||
| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:81:9:81:36 | ...; | |
|
||||
| Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | exception |
|
||||
| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:81:9:81:36 | ...; | |
|
||||
| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:24:80:24 | access to local variable s | |
|
||||
| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:29:80:32 | null | |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | ... \|\| ... | true |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:37:80:37 | access to parameter b | false |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:9:80:38 | call to method IsFalse | |
|
||||
| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:80:29:80:32 | null | Assert.cs:80:24:80:32 | ... != ... | |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | ... \|\| ... | |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:77:10:77:12 | exit M11 (normal) | |
|
||||
| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:27:81:27 | access to local variable s | |
|
||||
| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:27:81:34 | access to property Length | |
|
||||
@@ -589,11 +604,12 @@
|
||||
| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:16:86:32 | String s = ... | |
|
||||
| Assert.cs:86:24:86:27 | null | Assert.cs:86:20:86:32 | ... ? ... : ... | |
|
||||
| Assert.cs:86:31:86:32 | "" | Assert.cs:86:20:86:32 | ... ? ... : ... | |
|
||||
| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exit |
|
||||
| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:88:9:88:36 | ...; | |
|
||||
| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exit |
|
||||
| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:88:9:88:36 | ...; | |
|
||||
| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:22:87:22 | access to local variable s | |
|
||||
| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:27:87:30 | null | |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | call to method Assert | |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | false |
|
||||
| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | true |
|
||||
| Assert.cs:87:27:87:30 | null | Assert.cs:87:22:87:30 | ... != ... | |
|
||||
| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:90:9:90:26 | ...; | |
|
||||
| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:27:88:27 | access to local variable s | |
|
||||
@@ -606,10 +622,11 @@
|
||||
| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:9:90:25 | ... = ... | |
|
||||
| Assert.cs:90:17:90:20 | null | Assert.cs:90:13:90:25 | ... ? ... : ... | |
|
||||
| Assert.cs:90:24:90:25 | "" | Assert.cs:90:13:90:25 | ... ? ... : ... | |
|
||||
| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:92:9:92:36 | ...; | |
|
||||
| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:92:9:92:36 | ...; | |
|
||||
| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:23:91:23 | access to local variable s | |
|
||||
| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | call to method IsNull | |
|
||||
| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | non-null |
|
||||
| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | null |
|
||||
| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:94:9:94:26 | ...; | |
|
||||
| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:27:92:27 | access to local variable s | |
|
||||
| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:34 | access to property Length | |
|
||||
@@ -621,10 +638,11 @@
|
||||
| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:9:94:25 | ... = ... | |
|
||||
| Assert.cs:94:17:94:20 | null | Assert.cs:94:13:94:25 | ... ? ... : ... | |
|
||||
| Assert.cs:94:24:94:25 | "" | Assert.cs:94:13:94:25 | ... ? ... : ... | |
|
||||
| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:96:9:96:36 | ...; | |
|
||||
| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:96:9:96:36 | ...; | |
|
||||
| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:26:95:26 | access to local variable s | |
|
||||
| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | call to method IsNotNull | |
|
||||
| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | null |
|
||||
| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | non-null |
|
||||
| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:98:9:98:26 | ...; | |
|
||||
| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:27:96:27 | access to local variable s | |
|
||||
| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:34 | access to property Length | |
|
||||
@@ -636,11 +654,12 @@
|
||||
| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:9:98:25 | ... = ... | |
|
||||
| Assert.cs:98:17:98:20 | null | Assert.cs:98:13:98:25 | ... ? ... : ... | |
|
||||
| Assert.cs:98:24:98:25 | "" | Assert.cs:98:13:98:25 | ... ? ... : ... | |
|
||||
| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:100:9:100:36 | ...; | |
|
||||
| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:100:9:100:36 | ...; | |
|
||||
| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:23:99:23 | access to local variable s | |
|
||||
| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:28:99:31 | null | |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | call to method IsTrue | |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:99:28:99:31 | null | Assert.cs:99:23:99:31 | ... == ... | |
|
||||
| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:102:9:102:26 | ...; | |
|
||||
| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:27:100:27 | access to local variable s | |
|
||||
@@ -653,11 +672,12 @@
|
||||
| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:9:102:25 | ... = ... | |
|
||||
| Assert.cs:102:17:102:20 | null | Assert.cs:102:13:102:25 | ... ? ... : ... | |
|
||||
| Assert.cs:102:24:102:25 | "" | Assert.cs:102:13:102:25 | ... ? ... : ... | |
|
||||
| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:104:9:104:36 | ...; | |
|
||||
| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:104:9:104:36 | ...; | |
|
||||
| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:23:103:23 | access to local variable s | |
|
||||
| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:28:103:31 | null | |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | call to method IsTrue | |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:103:28:103:31 | null | Assert.cs:103:23:103:31 | ... != ... | |
|
||||
| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:106:9:106:26 | ...; | |
|
||||
| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:27:104:27 | access to local variable s | |
|
||||
@@ -670,11 +690,12 @@
|
||||
| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:9:106:25 | ... = ... | |
|
||||
| Assert.cs:106:17:106:20 | null | Assert.cs:106:13:106:25 | ... ? ... : ... | |
|
||||
| Assert.cs:106:24:106:25 | "" | Assert.cs:106:13:106:25 | ... ? ... : ... | |
|
||||
| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:108:9:108:36 | ...; | |
|
||||
| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:108:9:108:36 | ...; | |
|
||||
| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:24:107:24 | access to local variable s | |
|
||||
| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:29:107:32 | null | |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | call to method IsFalse | |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:107:29:107:32 | null | Assert.cs:107:24:107:32 | ... != ... | |
|
||||
| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:110:9:110:26 | ...; | |
|
||||
| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:27:108:27 | access to local variable s | |
|
||||
@@ -687,11 +708,12 @@
|
||||
| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:9:110:25 | ... = ... | |
|
||||
| Assert.cs:110:17:110:20 | null | Assert.cs:110:13:110:25 | ... ? ... : ... | |
|
||||
| Assert.cs:110:24:110:25 | "" | Assert.cs:110:13:110:25 | ... ? ... : ... | |
|
||||
| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:112:9:112:36 | ...; | |
|
||||
| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:112:9:112:36 | ...; | |
|
||||
| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:24:111:24 | access to local variable s | |
|
||||
| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:29:111:32 | null | |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | call to method IsFalse | |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:111:29:111:32 | null | Assert.cs:111:24:111:32 | ... == ... | |
|
||||
| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:114:9:114:26 | ...; | |
|
||||
| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:27:112:27 | access to local variable s | |
|
||||
@@ -704,15 +726,17 @@
|
||||
| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:9:114:25 | ... = ... | |
|
||||
| Assert.cs:114:17:114:20 | null | Assert.cs:114:13:114:25 | ... ? ... : ... | |
|
||||
| Assert.cs:114:24:114:25 | "" | Assert.cs:114:13:114:25 | ... ? ... : ... | |
|
||||
| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:116:9:116:36 | ...; | |
|
||||
| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:116:9:116:36 | ...; | |
|
||||
| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:23:115:23 | access to local variable s | |
|
||||
| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:28:115:31 | null | |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | ... && ... | false |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | [false] ... && ... | false |
|
||||
| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:36:115:36 | access to parameter b | true |
|
||||
| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:9:115:37 | call to method IsTrue | |
|
||||
| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:115:28:115:31 | null | Assert.cs:115:23:115:31 | ... != ... | |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | ... && ... | |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [false] ... && ... | false |
|
||||
| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | true |
|
||||
| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:118:9:118:26 | ...; | |
|
||||
| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:27:116:27 | access to local variable s | |
|
||||
| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:34 | access to property Length | |
|
||||
@@ -724,16 +748,19 @@
|
||||
| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:9:118:25 | ... = ... | |
|
||||
| Assert.cs:118:17:118:20 | null | Assert.cs:118:13:118:25 | ... ? ... : ... | |
|
||||
| Assert.cs:118:24:118:25 | "" | Assert.cs:118:13:118:25 | ... ? ... : ... | |
|
||||
| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:120:9:120:36 | ...; | |
|
||||
| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:120:9:120:36 | ...; | |
|
||||
| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:24:119:24 | access to local variable s | |
|
||||
| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:29:119:32 | null | |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | ... \|\| ... | true |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:38:119:38 | access to parameter b | false |
|
||||
| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:9:119:39 | call to method IsFalse | |
|
||||
| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:119:29:119:32 | null | Assert.cs:119:24:119:32 | ... == ... | |
|
||||
| Assert.cs:119:37:119:38 | !... | Assert.cs:119:24:119:38 | ... \|\| ... | |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | !... | |
|
||||
| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | true |
|
||||
| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | false |
|
||||
| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:122:9:122:26 | ...; | |
|
||||
| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:27:120:27 | access to local variable s | |
|
||||
| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:34 | access to property Length | |
|
||||
@@ -745,15 +772,17 @@
|
||||
| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:9:122:25 | ... = ... | |
|
||||
| Assert.cs:122:17:122:20 | null | Assert.cs:122:13:122:25 | ... ? ... : ... | |
|
||||
| Assert.cs:122:24:122:25 | "" | Assert.cs:122:13:122:25 | ... ? ... : ... | |
|
||||
| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:124:9:124:36 | ...; | |
|
||||
| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:124:9:124:36 | ...; | |
|
||||
| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:23:123:23 | access to local variable s | |
|
||||
| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:28:123:31 | null | |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | ... && ... | false |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:36:123:36 | access to parameter b | true |
|
||||
| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:9:123:37 | call to method IsTrue | |
|
||||
| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false |
|
||||
| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true |
|
||||
| Assert.cs:123:28:123:31 | null | Assert.cs:123:23:123:31 | ... == ... | |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | ... && ... | |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | false |
|
||||
| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true |
|
||||
| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:126:9:126:26 | ...; | |
|
||||
| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:27:124:27 | access to local variable s | |
|
||||
| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:34 | access to property Length | |
|
||||
@@ -765,16 +794,19 @@
|
||||
| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:9:126:25 | ... = ... | |
|
||||
| Assert.cs:126:17:126:20 | null | Assert.cs:126:13:126:25 | ... ? ... : ... | |
|
||||
| Assert.cs:126:24:126:25 | "" | Assert.cs:126:13:126:25 | ... ? ... : ... | |
|
||||
| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:128:9:128:36 | ...; | |
|
||||
| Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
|
||||
| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:128:9:128:36 | ...; | |
|
||||
| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:24:127:24 | access to local variable s | |
|
||||
| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:29:127:32 | null | |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | ... \|\| ... | true |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:38:127:38 | access to parameter b | false |
|
||||
| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:9:127:39 | call to method IsFalse | |
|
||||
| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false |
|
||||
| Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true |
|
||||
| Assert.cs:127:29:127:32 | null | Assert.cs:127:24:127:32 | ... != ... | |
|
||||
| Assert.cs:127:37:127:38 | !... | Assert.cs:127:24:127:38 | ... \|\| ... | |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | !... | |
|
||||
| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false |
|
||||
| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true |
|
||||
| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | false |
|
||||
| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:84:10:84:12 | exit M12 (normal) | |
|
||||
| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:27:128:27 | access to local variable s | |
|
||||
| Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:27:128:34 | access to property Length | |
|
||||
@@ -786,13 +818,19 @@
|
||||
| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 | |
|
||||
| Assert.cs:138:10:138:12 | exit M13 (normal) | Assert.cs:138:10:138:12 | exit M13 | |
|
||||
| Assert.cs:139:5:142:5 | {...} | Assert.cs:140:9:140:36 | ...; | |
|
||||
| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception |
|
||||
| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:141:9:141:15 | return ...; | |
|
||||
| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception |
|
||||
| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception |
|
||||
| Assert.cs:140:9:140:35 | [assertion success] call to method AssertTrueFalse | Assert.cs:141:9:141:15 | return ...; | |
|
||||
| Assert.cs:140:9:140:35 | this access | Assert.cs:140:25:140:26 | access to parameter b1 | |
|
||||
| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | this access | |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | access to parameter b2 | |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | access to parameter b3 | |
|
||||
| Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | false |
|
||||
| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | access to parameter b2 | true |
|
||||
| Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | false, true |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | true |
|
||||
| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | [assertion success] access to parameter b3 | false |
|
||||
| Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | |
|
||||
| Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | |
|
||||
| Assert.cs:140:33:140:34 | [assertion success] access to parameter b3 | Assert.cs:140:9:140:35 | [assertion success] call to method AssertTrueFalse | |
|
||||
| Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | exit M13 (normal) | return |
|
||||
| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | {...} | |
|
||||
| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | call to constructor Object | |
|
||||
@@ -1567,9 +1605,9 @@
|
||||
| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:121:5:124:5 | {...} | |
|
||||
| ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | ExitMethods.cs:120:17:120:32 | exit FailingAssertion | |
|
||||
| ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:122:9:122:29 | ...; | |
|
||||
| ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | exception |
|
||||
| ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | exception |
|
||||
| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:23:122:27 | false | |
|
||||
| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:28 | call to method IsTrue | |
|
||||
| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | false |
|
||||
| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:127:5:130:5 | {...} | |
|
||||
| ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | |
|
||||
| ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:128:9:128:27 | ...; | |
|
||||
@@ -1579,16 +1617,17 @@
|
||||
| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse | |
|
||||
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse | |
|
||||
| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | exception |
|
||||
| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | call to method IsFalse | |
|
||||
| ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | exception |
|
||||
| ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | true |
|
||||
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | false |
|
||||
| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:135:5:138:5 | {...} | |
|
||||
| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | |
|
||||
| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:136:9:136:26 | ...; | |
|
||||
| ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | exception |
|
||||
| ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | exception |
|
||||
| ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:21:136:24 | true | |
|
||||
| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | this access | |
|
||||
| ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | |
|
||||
| ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | true |
|
||||
| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:141:5:147:5 | {...} | |
|
||||
| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow | |
|
||||
| ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:142:9:145:53 | if (...) ... | |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,12 @@
|
||||
import csharp
|
||||
private import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
query predicate abstractValue(GuardValue value, Expr e) {
|
||||
Guards::InternalUtil::exprHasValue(e, value) and e.fromSource()
|
||||
query predicate abstractValue(AbstractValue value, Expr e) {
|
||||
e = value.getAnExpr() and e.fromSource()
|
||||
}
|
||||
|
||||
query predicate dualValue(AbstractValue value, AbstractValue dual) { dual = value.getDualValue() }
|
||||
|
||||
query predicate singletonValue(AbstractValue value) {
|
||||
value.isSingleton() and value.getAnExpr().fromSource()
|
||||
}
|
||||
|
||||
@@ -69,17 +69,6 @@
|
||||
| Guards.cs:208:17:208:17 | access to parameter o | Guards.cs:203:13:203:21 | ... != ... | Guards.cs:203:13:203:13 | access to parameter o | true |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:41 | call to operator == | Guards.cs:268:13:268:14 | access to parameter o1 | true |
|
||||
| Guards.cs:271:13:271:14 | access to parameter o1 | Guards.cs:270:13:270:42 | call to operator == | Guards.cs:270:13:270:14 | access to parameter o1 | true |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | true |
|
||||
| Guards.cs:281:17:281:17 | access to local variable a | Guards.cs:280:13:281:28 | ... => ... | Guards.cs:281:17:281:17 | access to local variable a | true |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | true |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | true |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:17 | access to parameter o | true |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:21 | ... != ... | Guards.cs:342:13:342:13 | access to local variable s | true |
|
||||
| Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:25 | ... is ... | Guards.cs:348:13:348:13 | access to parameter o | true |
|
||||
|
||||
@@ -2,7 +2,7 @@ import csharp
|
||||
private import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
query predicate emptinessCheck(
|
||||
Expr check, EnumerableCollectionExpr collection, GuardValue v, boolean isEmpty
|
||||
Expr check, EnumerableCollectionExpr collection, AbstractValue v, boolean isEmpty
|
||||
) {
|
||||
check = collection.getAnEmptinessCheck(v, isEmpty)
|
||||
}
|
||||
|
||||
@@ -1,29 +1,22 @@
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:22:10:22 | access to local variable s | no exception |
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | not null |
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | non-null |
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:22 | access to local variable s | true |
|
||||
| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:23:17:23 | access to local variable s | no exception |
|
||||
| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:23:17:23 | access to local variable s | null |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:26:24:26 | access to local variable s | no exception |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | not null |
|
||||
| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:23:31:23 | access to local variable s | no exception |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | non-null |
|
||||
| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:23:31:23 | access to local variable s | null |
|
||||
| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:23:31:23 | access to local variable s | true |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:23:38:23 | access to local variable s | no exception |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | not null |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | non-null |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:23 | access to local variable s | true |
|
||||
| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:24:45:24 | access to local variable s | no exception |
|
||||
| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:24:45:24 | access to local variable s | null |
|
||||
| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:24 | access to local variable s | false |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:24:52:24 | access to local variable s | no exception |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | not null |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | non-null |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:24 | access to local variable s | false |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | false |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | not null |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | not null |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | non-null |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | non-null |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:23 | access to local variable s | true |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | false |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | not null |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | not null |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | non-null |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | non-null |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:24 | access to local variable s | false |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | true |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:20 | access to parameter b | null |
|
||||
@@ -33,180 +26,174 @@
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:20 | access to parameter b | null |
|
||||
| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | null |
|
||||
| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:24 | access to local variable s | false |
|
||||
| Assert.cs:94:16:94:17 | access to parameter b1 | Assert.cs:93:9:93:35 | call to method AssertTrueFalse | Assert.cs:93:25:93:26 | access to parameter b1 | no exception |
|
||||
| Assert.cs:93:33:93:34 | [assertion failure] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false |
|
||||
| Assert.cs:93:33:93:34 | [assertion failure] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | true |
|
||||
| Assert.cs:93:33:93:34 | [assertion failure] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | true |
|
||||
| Assert.cs:93:33:93:34 | [assertion success] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false |
|
||||
| Assert.cs:94:16:94:17 | access to parameter b1 | Assert.cs:93:25:93:26 | access to parameter b1 | Assert.cs:93:25:93:26 | access to parameter b1 | true |
|
||||
| Assert.cs:94:23:94:24 | access to parameter b2 | Assert.cs:93:9:93:35 | call to method AssertTrueFalse | Assert.cs:93:29:93:30 | access to parameter b2 | no exception |
|
||||
| Assert.cs:94:23:94:24 | access to parameter b2 | Assert.cs:93:9:93:35 | call to method AssertTrueFalse | Assert.cs:93:33:93:34 | access to parameter b2 | no exception |
|
||||
| Assert.cs:94:23:94:24 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false |
|
||||
| Collections.cs:51:17:51:20 | access to parameter args | Collections.cs:49:13:49:22 | access to property Count | Collections.cs:49:13:49:16 | access to parameter args | not 0 |
|
||||
| Collections.cs:51:17:51:20 | access to parameter args | Collections.cs:49:13:49:16 | access to parameter args | Collections.cs:49:13:49:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:51:17:51:20 | access to parameter args | Collections.cs:49:13:49:27 | ... == ... | Collections.cs:49:13:49:16 | access to parameter args | false |
|
||||
| Collections.cs:52:9:52:12 | access to parameter args | Collections.cs:49:13:49:22 | access to property Count | Collections.cs:49:13:49:16 | access to parameter args | not 0 |
|
||||
| Collections.cs:52:9:52:12 | access to parameter args | Collections.cs:49:13:49:27 | ... == ... | Collections.cs:49:13:49:16 | access to parameter args | false |
|
||||
| Collections.cs:53:13:53:16 | access to parameter args | Collections.cs:49:13:49:22 | access to property Count | Collections.cs:49:13:49:16 | access to parameter args | not 0 |
|
||||
| Collections.cs:53:13:53:16 | access to parameter args | Collections.cs:49:13:49:27 | ... == ... | Collections.cs:49:13:49:16 | access to parameter args | false |
|
||||
| Collections.cs:66:13:66:13 | access to local variable x | Collections.cs:64:13:64:19 | access to property Count | Collections.cs:64:13:64:13 | access to local variable x | 0 |
|
||||
| Collections.cs:66:13:66:13 | access to local variable x | Collections.cs:64:13:64:13 | access to local variable x | Collections.cs:64:13:64:13 | access to local variable x | empty |
|
||||
| Collections.cs:66:13:66:13 | access to local variable x | Collections.cs:64:13:64:24 | ... == ... | Collections.cs:64:13:64:13 | access to local variable x | true |
|
||||
| Collections.cs:67:13:67:13 | access to local variable x | Collections.cs:64:13:64:19 | access to property Count | Collections.cs:64:13:64:13 | access to local variable x | 0 |
|
||||
| Collections.cs:67:13:67:13 | access to local variable x | Collections.cs:64:13:64:24 | ... == ... | Collections.cs:64:13:64:13 | access to local variable x | true |
|
||||
| Guards.cs:12:13:12:13 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | not null |
|
||||
| Collections.cs:95:31:95:34 | access to parameter args | Collections.cs:94:29:94:32 | access to parameter args | Collections.cs:94:29:94:32 | access to parameter args | non-empty |
|
||||
| Guards.cs:12:13:12:13 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | non-null |
|
||||
| Guards.cs:12:13:12:13 | access to parameter s | Guards.cs:10:16:10:24 | ... == ... | Guards.cs:10:16:10:16 | access to parameter s | false |
|
||||
| Guards.cs:14:31:14:31 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | not null |
|
||||
| Guards.cs:14:31:14:31 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | non-null |
|
||||
| Guards.cs:14:31:14:31 | access to parameter s | Guards.cs:10:16:10:24 | ... == ... | Guards.cs:10:16:10:16 | access to parameter s | false |
|
||||
| Guards.cs:14:31:14:31 | access to parameter s | Guards.cs:12:13:12:24 | ... > ... | Guards.cs:12:13:12:13 | access to parameter s | true |
|
||||
| Guards.cs:26:31:26:31 | access to parameter s | Guards.cs:24:13:24:13 | access to parameter s | Guards.cs:24:13:24:13 | access to parameter s | not null |
|
||||
| Guards.cs:26:31:26:31 | access to parameter s | Guards.cs:24:13:24:13 | access to parameter s | Guards.cs:24:13:24:13 | access to parameter s | non-null |
|
||||
| Guards.cs:26:31:26:31 | access to parameter s | Guards.cs:24:13:24:21 | ... != ... | Guards.cs:24:13:24:13 | access to parameter s | true |
|
||||
| Guards.cs:33:31:33:31 | access to parameter x | Guards.cs:32:14:32:36 | call to method IsNullOrEmpty | Guards.cs:32:35:32:35 | access to parameter x | false |
|
||||
| Guards.cs:33:31:33:31 | access to parameter x | Guards.cs:32:35:32:35 | access to parameter x | Guards.cs:32:35:32:35 | access to parameter x | not null |
|
||||
| Guards.cs:33:35:33:35 | access to parameter y | Guards.cs:32:42:32:42 | access to parameter y | Guards.cs:32:42:32:42 | access to parameter y | not null |
|
||||
| Guards.cs:33:31:33:31 | access to parameter x | Guards.cs:32:35:32:35 | access to parameter x | Guards.cs:32:35:32:35 | access to parameter x | non-null |
|
||||
| Guards.cs:33:35:33:35 | access to parameter y | Guards.cs:32:42:32:42 | access to parameter y | Guards.cs:32:42:32:42 | access to parameter y | non-null |
|
||||
| Guards.cs:33:35:33:35 | access to parameter y | Guards.cs:32:42:32:50 | ... == ... | Guards.cs:32:42:32:42 | access to parameter y | false |
|
||||
| Guards.cs:36:32:36:32 | access to parameter x | Guards.cs:35:13:35:13 | access to parameter x | Guards.cs:35:13:35:13 | access to parameter x | not null |
|
||||
| Guards.cs:36:32:36:32 | access to parameter x | Guards.cs:35:13:35:13 | access to parameter x | Guards.cs:35:13:35:13 | access to parameter x | non-null |
|
||||
| Guards.cs:36:32:36:32 | access to parameter x | Guards.cs:35:13:35:21 | ... == ... | Guards.cs:35:13:35:13 | access to parameter x | false |
|
||||
| Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | not null |
|
||||
| Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | non-null |
|
||||
| Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:34 | ... == ... | Guards.cs:35:26:35:26 | access to parameter y | false |
|
||||
| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | not null |
|
||||
| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | non-null |
|
||||
| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:23 | ... == ... | Guards.cs:38:15:38:15 | access to parameter x | false |
|
||||
| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | not null |
|
||||
| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | non-null |
|
||||
| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:36 | ... == ... | Guards.cs:38:28:38:28 | access to parameter y | false |
|
||||
| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | not null |
|
||||
| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | non-null |
|
||||
| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:25 | ... != ... | Guards.cs:41:17:41:17 | access to parameter x | true |
|
||||
| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | not null |
|
||||
| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | non-null |
|
||||
| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:38 | ... != ... | Guards.cs:41:30:41:30 | access to parameter y | true |
|
||||
| Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | not null |
|
||||
| Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | non-null |
|
||||
| Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:25 | ... != ... | Guards.cs:47:13:47:17 | access to field Field | true |
|
||||
| Guards.cs:55:27:55:27 | access to parameter g | Guards.cs:53:13:53:19 | access to field Field | Guards.cs:53:13:53:13 | access to parameter g | not null |
|
||||
| Guards.cs:55:27:55:27 | access to parameter g | Guards.cs:53:13:53:19 | access to field Field | Guards.cs:53:13:53:13 | access to parameter g | non-null |
|
||||
| Guards.cs:55:27:55:27 | access to parameter g | Guards.cs:53:13:53:27 | ... == ... | Guards.cs:53:13:53:13 | access to parameter g | false |
|
||||
| Guards.cs:55:27:55:33 | access to field Field | Guards.cs:53:13:53:19 | access to field Field | Guards.cs:53:13:53:19 | access to field Field | not null |
|
||||
| Guards.cs:55:27:55:33 | access to field Field | Guards.cs:53:13:53:19 | access to field Field | Guards.cs:53:13:53:19 | access to field Field | non-null |
|
||||
| Guards.cs:55:27:55:33 | access to field Field | Guards.cs:53:13:53:27 | ... == ... | Guards.cs:53:13:53:19 | access to field Field | false |
|
||||
| Guards.cs:62:27:62:27 | access to parameter g | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:13 | access to parameter g | not null |
|
||||
| Guards.cs:62:27:62:27 | access to parameter g | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:13 | access to parameter g | non-null |
|
||||
| Guards.cs:62:27:62:27 | access to parameter g | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:13 | access to parameter g | false |
|
||||
| Guards.cs:62:27:62:36 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:22 | access to property Property | not null |
|
||||
| Guards.cs:62:27:62:36 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:22 | access to property Property | non-null |
|
||||
| Guards.cs:62:27:62:36 | access to property Property | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:22 | access to property Property | false |
|
||||
| Guards.cs:62:27:62:45 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:31 | access to property Property | not null |
|
||||
| Guards.cs:62:27:62:45 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:31 | access to property Property | non-null |
|
||||
| Guards.cs:62:27:62:45 | access to property Property | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:31 | access to property Property | false |
|
||||
| Guards.cs:62:27:62:51 | access to field Field | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:37 | access to field Field | not null |
|
||||
| Guards.cs:62:27:62:51 | access to field Field | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:37 | access to field Field | non-null |
|
||||
| Guards.cs:62:27:62:51 | access to field Field | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:37 | access to field Field | false |
|
||||
| Guards.cs:63:27:63:27 | access to parameter g | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:13 | access to parameter g | not null |
|
||||
| Guards.cs:63:27:63:27 | access to parameter g | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:13 | access to parameter g | non-null |
|
||||
| Guards.cs:63:27:63:27 | access to parameter g | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:13 | access to parameter g | false |
|
||||
| Guards.cs:63:27:63:36 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:22 | access to property Property | not null |
|
||||
| Guards.cs:63:27:63:36 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:22 | access to property Property | non-null |
|
||||
| Guards.cs:63:27:63:36 | access to property Property | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:22 | access to property Property | false |
|
||||
| Guards.cs:70:31:70:31 | access to parameter s | Guards.cs:68:16:68:16 | access to parameter s | Guards.cs:68:16:68:16 | access to parameter s | not null |
|
||||
| Guards.cs:70:31:70:31 | access to parameter s | Guards.cs:68:16:68:16 | access to parameter s | Guards.cs:68:16:68:16 | access to parameter s | non-null |
|
||||
| Guards.cs:70:31:70:31 | access to parameter s | Guards.cs:68:16:68:24 | ... != ... | Guards.cs:68:16:68:16 | access to parameter s | true |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:13 | access to parameter s | Guards.cs:78:13:78:13 | access to parameter s | not null |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:21 | access to property Length | Guards.cs:78:13:78:13 | access to parameter s | not null |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:13 | access to parameter s | Guards.cs:78:13:78:13 | access to parameter s | non-null |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:21 | access to property Length | Guards.cs:78:13:78:13 | access to parameter s | non-null |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:26 | ... == ... | Guards.cs:78:13:78:13 | access to parameter s | true |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:13 | access to parameter s | Guards.cs:80:13:80:13 | access to parameter s | not null |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:21 | access to property Length | Guards.cs:80:13:80:13 | access to parameter s | not null |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:13 | access to parameter s | Guards.cs:80:13:80:13 | access to parameter s | non-null |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:21 | access to property Length | Guards.cs:80:13:80:13 | access to parameter s | non-null |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:25 | ... > ... | Guards.cs:80:13:80:13 | access to parameter s | true |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:13 | access to parameter s | Guards.cs:82:13:82:13 | access to parameter s | not null |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:21 | access to property Length | Guards.cs:82:13:82:13 | access to parameter s | not null |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:13 | access to parameter s | Guards.cs:82:13:82:13 | access to parameter s | non-null |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:21 | access to property Length | Guards.cs:82:13:82:13 | access to parameter s | non-null |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:26 | ... >= ... | Guards.cs:82:13:82:13 | access to parameter s | true |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:13 | access to parameter s | Guards.cs:84:13:84:13 | access to parameter s | not null |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:21 | access to property Length | Guards.cs:84:13:84:13 | access to parameter s | not null |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:13 | access to parameter s | Guards.cs:84:13:84:13 | access to parameter s | non-null |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:21 | access to property Length | Guards.cs:84:13:84:13 | access to parameter s | non-null |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:26 | ... < ... | Guards.cs:84:13:84:13 | access to parameter s | true |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:13 | access to parameter s | Guards.cs:86:13:86:13 | access to parameter s | not null |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:21 | access to property Length | Guards.cs:86:13:86:13 | access to parameter s | not null |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:13 | access to parameter s | Guards.cs:86:13:86:13 | access to parameter s | non-null |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:21 | access to property Length | Guards.cs:86:13:86:13 | access to parameter s | non-null |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:27 | ... <= ... | Guards.cs:86:13:86:13 | access to parameter s | true |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | not null |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:21 | access to property Length | Guards.cs:88:13:88:13 | access to parameter s | not null |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | non-null |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:21 | access to property Length | Guards.cs:88:13:88:13 | access to parameter s | non-null |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:29 | ... != ... | Guards.cs:88:13:88:13 | access to parameter s | true |
|
||||
| Guards.cs:91:31:91:31 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | null |
|
||||
| Guards.cs:91:31:91:31 | access to parameter s | Guards.cs:88:13:88:21 | access to property Length | Guards.cs:88:13:88:13 | access to parameter s | null |
|
||||
| Guards.cs:91:31:91:31 | access to parameter s | Guards.cs:88:13:88:29 | ... != ... | Guards.cs:88:13:88:13 | access to parameter s | false |
|
||||
| Guards.cs:93:31:93:31 | access to parameter s | Guards.cs:92:13:92:30 | ... != ... | Guards.cs:92:13:92:13 | access to parameter s | true |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:13 | access to parameter s | Guards.cs:92:13:92:13 | access to parameter s | not null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:21 | access to property Length | Guards.cs:92:13:92:13 | access to parameter s | not null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:25 | ... - ... | Guards.cs:92:13:92:13 | access to parameter s | not null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:13 | access to parameter s | Guards.cs:92:13:92:13 | access to parameter s | non-null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:21 | access to property Length | Guards.cs:92:13:92:13 | access to parameter s | non-null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:25 | ... - ... | Guards.cs:92:13:92:13 | access to parameter s | non-null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:30 | ... != ... | Guards.cs:92:13:92:13 | access to parameter s | false |
|
||||
| Guards.cs:97:31:97:31 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | |
|
||||
| Guards.cs:97:31:97:31 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | not null |
|
||||
| Guards.cs:97:31:97:31 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | non-null |
|
||||
| Guards.cs:97:31:97:31 | access to parameter s | Guards.cs:96:13:96:19 | ... == ... | Guards.cs:96:13:96:13 | access to parameter s | true |
|
||||
| Guards.cs:99:31:99:31 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | not |
|
||||
| Guards.cs:99:31:99:31 | access to parameter s | Guards.cs:96:13:96:19 | ... == ... | Guards.cs:96:13:96:13 | access to parameter s | false |
|
||||
| Guards.cs:106:9:106:9 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | not null |
|
||||
| Guards.cs:106:9:106:9 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | non-null |
|
||||
| Guards.cs:106:9:106:9 | access to parameter g | Guards.cs:104:13:104:45 | ... == ... | Guards.cs:104:13:104:13 | access to parameter g | false |
|
||||
| Guards.cs:107:27:107:27 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | not null |
|
||||
| Guards.cs:107:27:107:27 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | non-null |
|
||||
| Guards.cs:107:27:107:27 | access to parameter g | Guards.cs:104:13:104:45 | ... == ... | Guards.cs:104:13:104:13 | access to parameter g | false |
|
||||
| Guards.cs:108:27:108:27 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | not null |
|
||||
| Guards.cs:108:27:108:27 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | non-null |
|
||||
| Guards.cs:108:27:108:27 | access to parameter g | Guards.cs:104:13:104:45 | ... == ... | Guards.cs:104:13:104:13 | access to parameter g | false |
|
||||
| Guards.cs:114:14:114:14 | access to parameter g | Guards.cs:113:21:113:45 | access to field Field | Guards.cs:113:21:113:21 | access to parameter g | null |
|
||||
| Guards.cs:114:14:114:23 | access to property Property | Guards.cs:113:21:113:45 | access to field Field | Guards.cs:113:21:113:30 | access to property Property | null |
|
||||
| Guards.cs:114:14:114:32 | access to property Property | Guards.cs:113:21:113:45 | access to field Field | Guards.cs:113:21:113:39 | access to property Property | null |
|
||||
| Guards.cs:114:14:114:38 | access to field Field | Guards.cs:113:21:113:45 | access to field Field | Guards.cs:113:21:113:45 | access to field Field | null |
|
||||
| Guards.cs:116:27:116:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | not null |
|
||||
| Guards.cs:116:27:116:36 | access to property Property | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:26 | access to property Property | not null |
|
||||
| Guards.cs:116:27:116:45 | access to property Property | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:35 | access to property Property | not null |
|
||||
| Guards.cs:116:27:116:51 | access to field Field | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:41 | access to field Field | not null |
|
||||
| Guards.cs:117:9:117:9 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | not null |
|
||||
| Guards.cs:118:27:118:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | not null |
|
||||
| Guards.cs:119:27:119:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | not null |
|
||||
| Guards.cs:125:29:125:30 | access to parameter s1 | Guards.cs:125:18:125:19 | access to parameter s1 | Guards.cs:125:18:125:19 | access to parameter s1 | not null |
|
||||
| Guards.cs:116:27:116:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | non-null |
|
||||
| Guards.cs:116:27:116:36 | access to property Property | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:26 | access to property Property | non-null |
|
||||
| Guards.cs:116:27:116:45 | access to property Property | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:35 | access to property Property | non-null |
|
||||
| Guards.cs:116:27:116:51 | access to field Field | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:41 | access to field Field | non-null |
|
||||
| Guards.cs:117:9:117:9 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | non-null |
|
||||
| Guards.cs:118:27:118:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | non-null |
|
||||
| Guards.cs:119:27:119:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | non-null |
|
||||
| Guards.cs:125:29:125:30 | access to parameter s1 | Guards.cs:125:18:125:19 | access to parameter s1 | Guards.cs:125:18:125:19 | access to parameter s1 | non-null |
|
||||
| Guards.cs:131:20:131:20 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | null |
|
||||
| Guards.cs:131:20:131:20 | access to parameter s | Guards.cs:130:13:130:21 | ... is ... | Guards.cs:130:13:130:13 | access to parameter s | true |
|
||||
| Guards.cs:132:16:132:16 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | not null |
|
||||
| Guards.cs:132:16:132:16 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | non-null |
|
||||
| Guards.cs:132:16:132:16 | access to parameter s | Guards.cs:130:13:130:21 | ... is ... | Guards.cs:130:13:130:13 | access to parameter s | false |
|
||||
| Guards.cs:138:20:138:20 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | not null |
|
||||
| Guards.cs:138:20:138:20 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | non-null |
|
||||
| Guards.cs:138:20:138:20 | access to parameter s | Guards.cs:137:13:137:25 | ... is ... | Guards.cs:137:13:137:13 | access to parameter s | true |
|
||||
| Guards.cs:139:16:139:16 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | null |
|
||||
| Guards.cs:139:16:139:16 | access to parameter s | Guards.cs:137:13:137:25 | ... is ... | Guards.cs:137:13:137:13 | access to parameter s | false |
|
||||
| Guards.cs:146:16:146:16 | access to parameter o | Guards.cs:144:13:144:25 | ... is ... | Guards.cs:144:13:144:13 | access to parameter o | false |
|
||||
| Guards.cs:154:24:154:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not null |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not null |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not |
|
||||
| Guards.cs:154:24:154:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | match access to type Action<Object> |
|
||||
| Guards.cs:154:24:154:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | match "" |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | match null |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match "" |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | null |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not null |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match "" |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match null |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:169:31:169:31 | access to parameter x | Guards.cs:168:14:168:41 | call to method IsNullOrWhiteSpace | Guards.cs:168:40:168:40 | access to parameter x | false |
|
||||
| Guards.cs:169:31:169:31 | access to parameter x | Guards.cs:168:40:168:40 | access to parameter x | Guards.cs:168:40:168:40 | access to parameter x | not null |
|
||||
| Guards.cs:169:31:169:31 | access to parameter x | Guards.cs:168:40:168:40 | access to parameter x | Guards.cs:168:40:168:40 | access to parameter x | non-null |
|
||||
| Guards.cs:190:31:190:31 | access to parameter s | Guards.cs:189:14:189:25 | call to method NullTest1 | Guards.cs:189:24:189:24 | access to parameter s | false |
|
||||
| Guards.cs:190:31:190:31 | access to parameter s | Guards.cs:189:24:189:24 | access to parameter s | Guards.cs:189:24:189:24 | access to parameter s | not null |
|
||||
| Guards.cs:190:31:190:31 | access to parameter s | Guards.cs:189:24:189:24 | access to parameter s | Guards.cs:189:24:189:24 | access to parameter s | non-null |
|
||||
| Guards.cs:192:31:192:31 | access to parameter s | Guards.cs:191:14:191:25 | call to method NullTest2 | Guards.cs:191:24:191:24 | access to parameter s | false |
|
||||
| Guards.cs:192:31:192:31 | access to parameter s | Guards.cs:191:24:191:24 | access to parameter s | Guards.cs:191:24:191:24 | access to parameter s | not null |
|
||||
| Guards.cs:192:31:192:31 | access to parameter s | Guards.cs:191:24:191:24 | access to parameter s | Guards.cs:191:24:191:24 | access to parameter s | non-null |
|
||||
| Guards.cs:194:31:194:31 | access to parameter s | Guards.cs:193:14:193:25 | call to method NullTest3 | Guards.cs:193:24:193:24 | access to parameter s | false |
|
||||
| Guards.cs:194:31:194:31 | access to parameter s | Guards.cs:193:24:193:24 | access to parameter s | Guards.cs:193:24:193:24 | access to parameter s | not null |
|
||||
| Guards.cs:194:31:194:31 | access to parameter s | Guards.cs:193:24:193:24 | access to parameter s | Guards.cs:193:24:193:24 | access to parameter s | non-null |
|
||||
| Guards.cs:196:31:196:31 | access to parameter s | Guards.cs:195:13:195:27 | call to method NotNullTest4 | Guards.cs:195:26:195:26 | access to parameter s | true |
|
||||
| Guards.cs:196:31:196:31 | access to parameter s | Guards.cs:195:26:195:26 | access to parameter s | Guards.cs:195:26:195:26 | access to parameter s | not null |
|
||||
| Guards.cs:196:31:196:31 | access to parameter s | Guards.cs:195:26:195:26 | access to parameter s | Guards.cs:195:26:195:26 | access to parameter s | non-null |
|
||||
| Guards.cs:198:31:198:31 | access to parameter s | Guards.cs:197:14:197:29 | call to method NullTestWrong | Guards.cs:197:28:197:28 | access to parameter s | false |
|
||||
| Guards.cs:205:13:205:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | not null |
|
||||
| Guards.cs:205:13:205:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | non-null |
|
||||
| Guards.cs:205:13:205:13 | access to parameter o | Guards.cs:203:13:203:21 | ... != ... | Guards.cs:203:13:203:13 | access to parameter o | true |
|
||||
| Guards.cs:208:17:208:17 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | not null |
|
||||
| Guards.cs:208:17:208:17 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | non-null |
|
||||
| Guards.cs:208:17:208:17 | access to parameter o | Guards.cs:203:13:203:21 | ... != ... | Guards.cs:203:13:203:13 | access to parameter o | true |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:14 | access to parameter o1 | Guards.cs:268:13:268:14 | access to parameter o1 | not null |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:25 | call to method GetType | Guards.cs:268:13:268:14 | access to parameter o1 | not null |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:14 | access to parameter o1 | Guards.cs:268:13:268:14 | access to parameter o1 | non-null |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:25 | call to method GetType | Guards.cs:268:13:268:14 | access to parameter o1 | non-null |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:41 | call to operator == | Guards.cs:268:13:268:14 | access to parameter o1 | true |
|
||||
| Guards.cs:271:13:271:14 | access to parameter o1 | Guards.cs:270:13:270:42 | call to operator == | Guards.cs:270:13:270:14 | access to parameter o1 | true |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not null |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | true |
|
||||
| Guards.cs:279:17:279:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | true |
|
||||
| Guards.cs:281:17:281:17 | access to local variable a | Guards.cs:280:13:281:28 | ... => ... | Guards.cs:281:17:281:17 | access to local variable a | true |
|
||||
| Guards.cs:281:17:281:28 | call to method ToString | Guards.cs:280:13:281:28 | ... => ... | Guards.cs:281:17:281:28 | call to method ToString | true |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not null |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | true |
|
||||
| Guards.cs:283:17:283:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false |
|
||||
| Guards.cs:283:17:283:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | true |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | match access to type Action<Object> |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | match "" |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | match null |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match "" |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | null |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | true |
|
||||
| Guards.cs:285:17:285:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false |
|
||||
| Guards.cs:285:17:285:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | false |
|
||||
| Guards.cs:285:17:285:28 | call to method ToString | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:28 | call to method ToString | true |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not null |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:17 | access to parameter o | true |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:28 | call to method ToString | true |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | match _ |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match "" |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match null |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | not null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | not null |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | non-null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | non-null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:21 | ... != ... | Guards.cs:342:13:342:13 | access to local variable s | true |
|
||||
| Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | not null |
|
||||
| Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | non-null |
|
||||
| Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:25 | ... is ... | Guards.cs:348:13:348:13 | access to parameter o | true |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import csharp
|
||||
import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
from GuardedControlFlowNode gcfn, Expr sub, GuardValue v
|
||||
from GuardedControlFlowNode gcfn, Expr sub, AbstractValue v
|
||||
select gcfn, gcfn.getAGuard(sub, v), sub, v
|
||||
|
||||
@@ -1,29 +1,22 @@
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:22:10:22 | access to local variable s | no exception |
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | not null |
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | non-null |
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:22 | access to local variable s | true |
|
||||
| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:23:17:23 | access to local variable s | no exception |
|
||||
| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:23:17:23 | access to local variable s | null |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:26:24:26 | access to local variable s | no exception |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | not null |
|
||||
| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:23:31:23 | access to local variable s | no exception |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | non-null |
|
||||
| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:23:31:23 | access to local variable s | null |
|
||||
| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:23:31:23 | access to local variable s | true |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:23:38:23 | access to local variable s | no exception |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | not null |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | non-null |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:23 | access to local variable s | true |
|
||||
| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:24:45:24 | access to local variable s | no exception |
|
||||
| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:24:45:24 | access to local variable s | null |
|
||||
| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:24 | access to local variable s | false |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:24:52:24 | access to local variable s | no exception |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | not null |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | non-null |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:24 | access to local variable s | false |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | false |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | not null |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | not null |
|
||||
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | non-null |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | non-null |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:23 | access to local variable s | true |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | false |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | not null |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | not null |
|
||||
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | non-null |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | non-null |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:24 | access to local variable s | false |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | true |
|
||||
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:20 | access to parameter b | null |
|
||||
@@ -33,180 +26,170 @@
|
||||
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:20 | access to parameter b | null |
|
||||
| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | null |
|
||||
| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:24 | access to local variable s | false |
|
||||
| Assert.cs:94:16:94:17 | access to parameter b1 | Assert.cs:93:9:93:35 | call to method AssertTrueFalse | Assert.cs:93:25:93:26 | access to parameter b1 | no exception |
|
||||
| Assert.cs:94:16:94:17 | access to parameter b1 | Assert.cs:93:25:93:26 | access to parameter b1 | Assert.cs:93:25:93:26 | access to parameter b1 | true |
|
||||
| Assert.cs:94:23:94:24 | access to parameter b2 | Assert.cs:93:9:93:35 | call to method AssertTrueFalse | Assert.cs:93:29:93:30 | access to parameter b2 | no exception |
|
||||
| Assert.cs:94:23:94:24 | access to parameter b2 | Assert.cs:93:9:93:35 | call to method AssertTrueFalse | Assert.cs:93:33:93:34 | access to parameter b2 | no exception |
|
||||
| Assert.cs:94:23:94:24 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false |
|
||||
| Collections.cs:51:17:51:20 | access to parameter args | Collections.cs:49:13:49:22 | access to property Count | Collections.cs:49:13:49:16 | access to parameter args | not 0 |
|
||||
| Collections.cs:51:17:51:20 | access to parameter args | Collections.cs:49:13:49:16 | access to parameter args | Collections.cs:49:13:49:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:51:17:51:20 | access to parameter args | Collections.cs:49:13:49:27 | ... == ... | Collections.cs:49:13:49:16 | access to parameter args | false |
|
||||
| Collections.cs:52:9:52:12 | access to parameter args | Collections.cs:49:13:49:22 | access to property Count | Collections.cs:49:13:49:16 | access to parameter args | not 0 |
|
||||
| Collections.cs:52:9:52:12 | access to parameter args | Collections.cs:49:13:49:27 | ... == ... | Collections.cs:49:13:49:16 | access to parameter args | false |
|
||||
| Collections.cs:53:13:53:16 | access to parameter args | Collections.cs:49:13:49:22 | access to property Count | Collections.cs:49:13:49:16 | access to parameter args | not 0 |
|
||||
| Collections.cs:53:13:53:16 | access to parameter args | Collections.cs:49:13:49:27 | ... == ... | Collections.cs:49:13:49:16 | access to parameter args | false |
|
||||
| Collections.cs:66:13:66:13 | access to local variable x | Collections.cs:64:13:64:19 | access to property Count | Collections.cs:64:13:64:13 | access to local variable x | 0 |
|
||||
| Collections.cs:66:13:66:13 | access to local variable x | Collections.cs:64:13:64:13 | access to local variable x | Collections.cs:64:13:64:13 | access to local variable x | empty |
|
||||
| Collections.cs:66:13:66:13 | access to local variable x | Collections.cs:64:13:64:24 | ... == ... | Collections.cs:64:13:64:13 | access to local variable x | true |
|
||||
| Collections.cs:67:13:67:13 | access to local variable x | Collections.cs:64:13:64:19 | access to property Count | Collections.cs:64:13:64:13 | access to local variable x | 0 |
|
||||
| Collections.cs:67:13:67:13 | access to local variable x | Collections.cs:64:13:64:24 | ... == ... | Collections.cs:64:13:64:13 | access to local variable x | true |
|
||||
| Guards.cs:12:13:12:13 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | not null |
|
||||
| Collections.cs:95:31:95:34 | access to parameter args | Collections.cs:94:29:94:32 | access to parameter args | Collections.cs:94:29:94:32 | access to parameter args | non-empty |
|
||||
| Guards.cs:12:13:12:13 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | non-null |
|
||||
| Guards.cs:12:13:12:13 | access to parameter s | Guards.cs:10:16:10:24 | ... == ... | Guards.cs:10:16:10:16 | access to parameter s | false |
|
||||
| Guards.cs:14:31:14:31 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | not null |
|
||||
| Guards.cs:14:31:14:31 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | Guards.cs:10:16:10:16 | access to parameter s | non-null |
|
||||
| Guards.cs:14:31:14:31 | access to parameter s | Guards.cs:10:16:10:24 | ... == ... | Guards.cs:10:16:10:16 | access to parameter s | false |
|
||||
| Guards.cs:14:31:14:31 | access to parameter s | Guards.cs:12:13:12:24 | ... > ... | Guards.cs:12:13:12:13 | access to parameter s | true |
|
||||
| Guards.cs:26:31:26:31 | access to parameter s | Guards.cs:24:13:24:13 | access to parameter s | Guards.cs:24:13:24:13 | access to parameter s | not null |
|
||||
| Guards.cs:26:31:26:31 | access to parameter s | Guards.cs:24:13:24:13 | access to parameter s | Guards.cs:24:13:24:13 | access to parameter s | non-null |
|
||||
| Guards.cs:26:31:26:31 | access to parameter s | Guards.cs:24:13:24:21 | ... != ... | Guards.cs:24:13:24:13 | access to parameter s | true |
|
||||
| Guards.cs:33:31:33:31 | access to parameter x | Guards.cs:32:14:32:36 | call to method IsNullOrEmpty | Guards.cs:32:35:32:35 | access to parameter x | false |
|
||||
| Guards.cs:33:31:33:31 | access to parameter x | Guards.cs:32:35:32:35 | access to parameter x | Guards.cs:32:35:32:35 | access to parameter x | not null |
|
||||
| Guards.cs:33:35:33:35 | access to parameter y | Guards.cs:32:42:32:42 | access to parameter y | Guards.cs:32:42:32:42 | access to parameter y | not null |
|
||||
| Guards.cs:33:31:33:31 | access to parameter x | Guards.cs:32:35:32:35 | access to parameter x | Guards.cs:32:35:32:35 | access to parameter x | non-null |
|
||||
| Guards.cs:33:35:33:35 | access to parameter y | Guards.cs:32:42:32:42 | access to parameter y | Guards.cs:32:42:32:42 | access to parameter y | non-null |
|
||||
| Guards.cs:33:35:33:35 | access to parameter y | Guards.cs:32:42:32:50 | ... == ... | Guards.cs:32:42:32:42 | access to parameter y | false |
|
||||
| Guards.cs:36:32:36:32 | access to parameter x | Guards.cs:35:13:35:13 | access to parameter x | Guards.cs:35:13:35:13 | access to parameter x | not null |
|
||||
| Guards.cs:36:32:36:32 | access to parameter x | Guards.cs:35:13:35:13 | access to parameter x | Guards.cs:35:13:35:13 | access to parameter x | non-null |
|
||||
| Guards.cs:36:32:36:32 | access to parameter x | Guards.cs:35:13:35:21 | ... == ... | Guards.cs:35:13:35:13 | access to parameter x | false |
|
||||
| Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | not null |
|
||||
| Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | non-null |
|
||||
| Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:34 | ... == ... | Guards.cs:35:26:35:26 | access to parameter y | false |
|
||||
| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | not null |
|
||||
| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | non-null |
|
||||
| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:23 | ... == ... | Guards.cs:38:15:38:15 | access to parameter x | false |
|
||||
| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | not null |
|
||||
| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | non-null |
|
||||
| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:36 | ... == ... | Guards.cs:38:28:38:28 | access to parameter y | false |
|
||||
| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | not null |
|
||||
| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | non-null |
|
||||
| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:25 | ... != ... | Guards.cs:41:17:41:17 | access to parameter x | true |
|
||||
| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | not null |
|
||||
| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | non-null |
|
||||
| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:38 | ... != ... | Guards.cs:41:30:41:30 | access to parameter y | true |
|
||||
| Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | not null |
|
||||
| Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | non-null |
|
||||
| Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:25 | ... != ... | Guards.cs:47:13:47:17 | access to field Field | true |
|
||||
| Guards.cs:55:27:55:27 | access to parameter g | Guards.cs:53:13:53:19 | access to field Field | Guards.cs:53:13:53:13 | access to parameter g | not null |
|
||||
| Guards.cs:55:27:55:27 | access to parameter g | Guards.cs:53:13:53:19 | access to field Field | Guards.cs:53:13:53:13 | access to parameter g | non-null |
|
||||
| Guards.cs:55:27:55:27 | access to parameter g | Guards.cs:53:13:53:27 | ... == ... | Guards.cs:53:13:53:13 | access to parameter g | false |
|
||||
| Guards.cs:55:27:55:33 | access to field Field | Guards.cs:53:13:53:19 | access to field Field | Guards.cs:53:13:53:19 | access to field Field | not null |
|
||||
| Guards.cs:55:27:55:33 | access to field Field | Guards.cs:53:13:53:19 | access to field Field | Guards.cs:53:13:53:19 | access to field Field | non-null |
|
||||
| Guards.cs:55:27:55:33 | access to field Field | Guards.cs:53:13:53:27 | ... == ... | Guards.cs:53:13:53:19 | access to field Field | false |
|
||||
| Guards.cs:62:27:62:27 | access to parameter g | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:13 | access to parameter g | not null |
|
||||
| Guards.cs:62:27:62:27 | access to parameter g | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:13 | access to parameter g | non-null |
|
||||
| Guards.cs:62:27:62:27 | access to parameter g | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:13 | access to parameter g | false |
|
||||
| Guards.cs:62:27:62:36 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:22 | access to property Property | not null |
|
||||
| Guards.cs:62:27:62:36 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:22 | access to property Property | non-null |
|
||||
| Guards.cs:62:27:62:36 | access to property Property | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:22 | access to property Property | false |
|
||||
| Guards.cs:62:27:62:45 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:31 | access to property Property | not null |
|
||||
| Guards.cs:62:27:62:45 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:31 | access to property Property | non-null |
|
||||
| Guards.cs:62:27:62:45 | access to property Property | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:31 | access to property Property | false |
|
||||
| Guards.cs:62:27:62:51 | access to field Field | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:37 | access to field Field | not null |
|
||||
| Guards.cs:62:27:62:51 | access to field Field | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:37 | access to field Field | non-null |
|
||||
| Guards.cs:62:27:62:51 | access to field Field | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:37 | access to field Field | false |
|
||||
| Guards.cs:63:27:63:27 | access to parameter g | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:13 | access to parameter g | not null |
|
||||
| Guards.cs:63:27:63:27 | access to parameter g | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:13 | access to parameter g | non-null |
|
||||
| Guards.cs:63:27:63:27 | access to parameter g | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:13 | access to parameter g | false |
|
||||
| Guards.cs:63:27:63:36 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:22 | access to property Property | not null |
|
||||
| Guards.cs:63:27:63:36 | access to property Property | Guards.cs:60:13:60:37 | access to field Field | Guards.cs:60:13:60:22 | access to property Property | non-null |
|
||||
| Guards.cs:63:27:63:36 | access to property Property | Guards.cs:60:13:60:45 | ... == ... | Guards.cs:60:13:60:22 | access to property Property | false |
|
||||
| Guards.cs:70:31:70:31 | access to parameter s | Guards.cs:68:16:68:16 | access to parameter s | Guards.cs:68:16:68:16 | access to parameter s | not null |
|
||||
| Guards.cs:70:31:70:31 | access to parameter s | Guards.cs:68:16:68:16 | access to parameter s | Guards.cs:68:16:68:16 | access to parameter s | non-null |
|
||||
| Guards.cs:70:31:70:31 | access to parameter s | Guards.cs:68:16:68:24 | ... != ... | Guards.cs:68:16:68:16 | access to parameter s | true |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:13 | access to parameter s | Guards.cs:78:13:78:13 | access to parameter s | not null |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:21 | access to property Length | Guards.cs:78:13:78:13 | access to parameter s | not null |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:13 | access to parameter s | Guards.cs:78:13:78:13 | access to parameter s | non-null |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:21 | access to property Length | Guards.cs:78:13:78:13 | access to parameter s | non-null |
|
||||
| Guards.cs:79:31:79:31 | access to parameter s | Guards.cs:78:13:78:26 | ... == ... | Guards.cs:78:13:78:13 | access to parameter s | true |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:13 | access to parameter s | Guards.cs:80:13:80:13 | access to parameter s | not null |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:21 | access to property Length | Guards.cs:80:13:80:13 | access to parameter s | not null |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:13 | access to parameter s | Guards.cs:80:13:80:13 | access to parameter s | non-null |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:21 | access to property Length | Guards.cs:80:13:80:13 | access to parameter s | non-null |
|
||||
| Guards.cs:81:31:81:31 | access to parameter s | Guards.cs:80:13:80:25 | ... > ... | Guards.cs:80:13:80:13 | access to parameter s | true |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:13 | access to parameter s | Guards.cs:82:13:82:13 | access to parameter s | not null |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:21 | access to property Length | Guards.cs:82:13:82:13 | access to parameter s | not null |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:13 | access to parameter s | Guards.cs:82:13:82:13 | access to parameter s | non-null |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:21 | access to property Length | Guards.cs:82:13:82:13 | access to parameter s | non-null |
|
||||
| Guards.cs:83:31:83:31 | access to parameter s | Guards.cs:82:13:82:26 | ... >= ... | Guards.cs:82:13:82:13 | access to parameter s | true |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:13 | access to parameter s | Guards.cs:84:13:84:13 | access to parameter s | not null |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:21 | access to property Length | Guards.cs:84:13:84:13 | access to parameter s | not null |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:13 | access to parameter s | Guards.cs:84:13:84:13 | access to parameter s | non-null |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:21 | access to property Length | Guards.cs:84:13:84:13 | access to parameter s | non-null |
|
||||
| Guards.cs:85:31:85:31 | access to parameter s | Guards.cs:84:13:84:26 | ... < ... | Guards.cs:84:13:84:13 | access to parameter s | true |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:13 | access to parameter s | Guards.cs:86:13:86:13 | access to parameter s | not null |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:21 | access to property Length | Guards.cs:86:13:86:13 | access to parameter s | not null |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:13 | access to parameter s | Guards.cs:86:13:86:13 | access to parameter s | non-null |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:21 | access to property Length | Guards.cs:86:13:86:13 | access to parameter s | non-null |
|
||||
| Guards.cs:87:31:87:31 | access to parameter s | Guards.cs:86:13:86:27 | ... <= ... | Guards.cs:86:13:86:13 | access to parameter s | true |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | not null |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:21 | access to property Length | Guards.cs:88:13:88:13 | access to parameter s | not null |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | non-null |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:21 | access to property Length | Guards.cs:88:13:88:13 | access to parameter s | non-null |
|
||||
| Guards.cs:89:31:89:31 | access to parameter s | Guards.cs:88:13:88:29 | ... != ... | Guards.cs:88:13:88:13 | access to parameter s | true |
|
||||
| Guards.cs:91:31:91:31 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | Guards.cs:88:13:88:13 | access to parameter s | null |
|
||||
| Guards.cs:91:31:91:31 | access to parameter s | Guards.cs:88:13:88:21 | access to property Length | Guards.cs:88:13:88:13 | access to parameter s | null |
|
||||
| Guards.cs:91:31:91:31 | access to parameter s | Guards.cs:88:13:88:29 | ... != ... | Guards.cs:88:13:88:13 | access to parameter s | false |
|
||||
| Guards.cs:93:31:93:31 | access to parameter s | Guards.cs:92:13:92:30 | ... != ... | Guards.cs:92:13:92:13 | access to parameter s | true |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:13 | access to parameter s | Guards.cs:92:13:92:13 | access to parameter s | not null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:21 | access to property Length | Guards.cs:92:13:92:13 | access to parameter s | not null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:25 | ... - ... | Guards.cs:92:13:92:13 | access to parameter s | not null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:13 | access to parameter s | Guards.cs:92:13:92:13 | access to parameter s | non-null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:21 | access to property Length | Guards.cs:92:13:92:13 | access to parameter s | non-null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:25 | ... - ... | Guards.cs:92:13:92:13 | access to parameter s | non-null |
|
||||
| Guards.cs:95:31:95:31 | access to parameter s | Guards.cs:92:13:92:30 | ... != ... | Guards.cs:92:13:92:13 | access to parameter s | false |
|
||||
| Guards.cs:97:31:97:31 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | |
|
||||
| Guards.cs:97:31:97:31 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | not null |
|
||||
| Guards.cs:97:31:97:31 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | non-null |
|
||||
| Guards.cs:97:31:97:31 | access to parameter s | Guards.cs:96:13:96:19 | ... == ... | Guards.cs:96:13:96:13 | access to parameter s | true |
|
||||
| Guards.cs:99:31:99:31 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | Guards.cs:96:13:96:13 | access to parameter s | not |
|
||||
| Guards.cs:99:31:99:31 | access to parameter s | Guards.cs:96:13:96:19 | ... == ... | Guards.cs:96:13:96:13 | access to parameter s | false |
|
||||
| Guards.cs:106:9:106:9 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | not null |
|
||||
| Guards.cs:106:9:106:9 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | non-null |
|
||||
| Guards.cs:106:9:106:9 | access to parameter g | Guards.cs:104:13:104:45 | ... == ... | Guards.cs:104:13:104:13 | access to parameter g | false |
|
||||
| Guards.cs:107:27:107:27 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | not null |
|
||||
| Guards.cs:107:27:107:27 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | non-null |
|
||||
| Guards.cs:107:27:107:27 | access to parameter g | Guards.cs:104:13:104:45 | ... == ... | Guards.cs:104:13:104:13 | access to parameter g | false |
|
||||
| Guards.cs:108:27:108:27 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | not null |
|
||||
| Guards.cs:108:27:108:27 | access to parameter g | Guards.cs:104:13:104:37 | access to field Field | Guards.cs:104:13:104:13 | access to parameter g | non-null |
|
||||
| Guards.cs:108:27:108:27 | access to parameter g | Guards.cs:104:13:104:45 | ... == ... | Guards.cs:104:13:104:13 | access to parameter g | false |
|
||||
| Guards.cs:114:14:114:14 | access to parameter g | Guards.cs:113:21:113:45 | access to field Field | Guards.cs:113:21:113:21 | access to parameter g | null |
|
||||
| Guards.cs:114:14:114:23 | access to property Property | Guards.cs:113:21:113:45 | access to field Field | Guards.cs:113:21:113:30 | access to property Property | null |
|
||||
| Guards.cs:114:14:114:32 | access to property Property | Guards.cs:113:21:113:45 | access to field Field | Guards.cs:113:21:113:39 | access to property Property | null |
|
||||
| Guards.cs:114:14:114:38 | access to field Field | Guards.cs:113:21:113:45 | access to field Field | Guards.cs:113:21:113:45 | access to field Field | null |
|
||||
| Guards.cs:116:27:116:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | not null |
|
||||
| Guards.cs:116:27:116:36 | access to property Property | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:26 | access to property Property | not null |
|
||||
| Guards.cs:116:27:116:45 | access to property Property | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:35 | access to property Property | not null |
|
||||
| Guards.cs:116:27:116:51 | access to field Field | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:41 | access to field Field | not null |
|
||||
| Guards.cs:117:9:117:9 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | not null |
|
||||
| Guards.cs:118:27:118:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | not null |
|
||||
| Guards.cs:119:27:119:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | not null |
|
||||
| Guards.cs:125:29:125:30 | access to parameter s1 | Guards.cs:125:18:125:19 | access to parameter s1 | Guards.cs:125:18:125:19 | access to parameter s1 | not null |
|
||||
| Guards.cs:116:27:116:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | non-null |
|
||||
| Guards.cs:116:27:116:36 | access to property Property | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:26 | access to property Property | non-null |
|
||||
| Guards.cs:116:27:116:45 | access to property Property | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:35 | access to property Property | non-null |
|
||||
| Guards.cs:116:27:116:51 | access to field Field | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:41 | access to field Field | non-null |
|
||||
| Guards.cs:117:9:117:9 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | non-null |
|
||||
| Guards.cs:118:27:118:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | non-null |
|
||||
| Guards.cs:119:27:119:27 | access to parameter g | Guards.cs:115:17:115:41 | access to field Field | Guards.cs:115:17:115:17 | access to parameter g | non-null |
|
||||
| Guards.cs:125:29:125:30 | access to parameter s1 | Guards.cs:125:18:125:19 | access to parameter s1 | Guards.cs:125:18:125:19 | access to parameter s1 | non-null |
|
||||
| Guards.cs:131:20:131:20 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | null |
|
||||
| Guards.cs:131:20:131:20 | access to parameter s | Guards.cs:130:13:130:21 | ... is ... | Guards.cs:130:13:130:13 | access to parameter s | true |
|
||||
| Guards.cs:132:16:132:16 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | not null |
|
||||
| Guards.cs:132:16:132:16 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | Guards.cs:130:13:130:13 | access to parameter s | non-null |
|
||||
| Guards.cs:132:16:132:16 | access to parameter s | Guards.cs:130:13:130:21 | ... is ... | Guards.cs:130:13:130:13 | access to parameter s | false |
|
||||
| Guards.cs:138:20:138:20 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | not null |
|
||||
| Guards.cs:138:20:138:20 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | non-null |
|
||||
| Guards.cs:138:20:138:20 | access to parameter s | Guards.cs:137:13:137:25 | ... is ... | Guards.cs:137:13:137:13 | access to parameter s | true |
|
||||
| Guards.cs:139:16:139:16 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | Guards.cs:137:13:137:13 | access to parameter s | null |
|
||||
| Guards.cs:139:16:139:16 | access to parameter s | Guards.cs:137:13:137:25 | ... is ... | Guards.cs:137:13:137:13 | access to parameter s | false |
|
||||
| Guards.cs:146:16:146:16 | access to parameter o | Guards.cs:144:13:144:25 | ... is ... | Guards.cs:144:13:144:13 | access to parameter o | false |
|
||||
| Guards.cs:154:24:154:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not null |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not null |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not |
|
||||
| Guards.cs:154:24:154:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | match access to type Action<Object> |
|
||||
| Guards.cs:154:24:154:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | match "" |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | match null |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match "" |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | null |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | not null |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match "" |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-match null |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:169:31:169:31 | access to parameter x | Guards.cs:168:14:168:41 | call to method IsNullOrWhiteSpace | Guards.cs:168:40:168:40 | access to parameter x | false |
|
||||
| Guards.cs:169:31:169:31 | access to parameter x | Guards.cs:168:40:168:40 | access to parameter x | Guards.cs:168:40:168:40 | access to parameter x | not null |
|
||||
| Guards.cs:169:31:169:31 | access to parameter x | Guards.cs:168:40:168:40 | access to parameter x | Guards.cs:168:40:168:40 | access to parameter x | non-null |
|
||||
| Guards.cs:190:31:190:31 | access to parameter s | Guards.cs:189:14:189:25 | call to method NullTest1 | Guards.cs:189:24:189:24 | access to parameter s | false |
|
||||
| Guards.cs:190:31:190:31 | access to parameter s | Guards.cs:189:24:189:24 | access to parameter s | Guards.cs:189:24:189:24 | access to parameter s | not null |
|
||||
| Guards.cs:190:31:190:31 | access to parameter s | Guards.cs:189:24:189:24 | access to parameter s | Guards.cs:189:24:189:24 | access to parameter s | non-null |
|
||||
| Guards.cs:192:31:192:31 | access to parameter s | Guards.cs:191:14:191:25 | call to method NullTest2 | Guards.cs:191:24:191:24 | access to parameter s | false |
|
||||
| Guards.cs:192:31:192:31 | access to parameter s | Guards.cs:191:24:191:24 | access to parameter s | Guards.cs:191:24:191:24 | access to parameter s | not null |
|
||||
| Guards.cs:192:31:192:31 | access to parameter s | Guards.cs:191:24:191:24 | access to parameter s | Guards.cs:191:24:191:24 | access to parameter s | non-null |
|
||||
| Guards.cs:194:31:194:31 | access to parameter s | Guards.cs:193:14:193:25 | call to method NullTest3 | Guards.cs:193:24:193:24 | access to parameter s | false |
|
||||
| Guards.cs:194:31:194:31 | access to parameter s | Guards.cs:193:24:193:24 | access to parameter s | Guards.cs:193:24:193:24 | access to parameter s | not null |
|
||||
| Guards.cs:194:31:194:31 | access to parameter s | Guards.cs:193:24:193:24 | access to parameter s | Guards.cs:193:24:193:24 | access to parameter s | non-null |
|
||||
| Guards.cs:196:31:196:31 | access to parameter s | Guards.cs:195:13:195:27 | call to method NotNullTest4 | Guards.cs:195:26:195:26 | access to parameter s | true |
|
||||
| Guards.cs:196:31:196:31 | access to parameter s | Guards.cs:195:26:195:26 | access to parameter s | Guards.cs:195:26:195:26 | access to parameter s | not null |
|
||||
| Guards.cs:196:31:196:31 | access to parameter s | Guards.cs:195:26:195:26 | access to parameter s | Guards.cs:195:26:195:26 | access to parameter s | non-null |
|
||||
| Guards.cs:198:31:198:31 | access to parameter s | Guards.cs:197:14:197:29 | call to method NullTestWrong | Guards.cs:197:28:197:28 | access to parameter s | false |
|
||||
| Guards.cs:205:13:205:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | not null |
|
||||
| Guards.cs:205:13:205:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | non-null |
|
||||
| Guards.cs:205:13:205:13 | access to parameter o | Guards.cs:203:13:203:21 | ... != ... | Guards.cs:203:13:203:13 | access to parameter o | true |
|
||||
| Guards.cs:208:17:208:17 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | not null |
|
||||
| Guards.cs:208:17:208:17 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | Guards.cs:203:13:203:13 | access to parameter o | non-null |
|
||||
| Guards.cs:208:17:208:17 | access to parameter o | Guards.cs:203:13:203:21 | ... != ... | Guards.cs:203:13:203:13 | access to parameter o | true |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:14 | access to parameter o1 | Guards.cs:268:13:268:14 | access to parameter o1 | not null |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:25 | call to method GetType | Guards.cs:268:13:268:14 | access to parameter o1 | not null |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:14 | access to parameter o1 | Guards.cs:268:13:268:14 | access to parameter o1 | non-null |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:25 | call to method GetType | Guards.cs:268:13:268:14 | access to parameter o1 | non-null |
|
||||
| Guards.cs:269:13:269:14 | access to parameter o1 | Guards.cs:268:13:268:41 | call to operator == | Guards.cs:268:13:268:14 | access to parameter o1 | true |
|
||||
| Guards.cs:271:13:271:14 | access to parameter o1 | Guards.cs:270:13:270:42 | call to operator == | Guards.cs:270:13:270:14 | access to parameter o1 | true |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not null |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | true |
|
||||
| Guards.cs:279:17:279:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | true |
|
||||
| Guards.cs:281:17:281:17 | access to local variable a | Guards.cs:280:13:281:28 | ... => ... | Guards.cs:281:17:281:17 | access to local variable a | true |
|
||||
| Guards.cs:281:17:281:28 | call to method ToString | Guards.cs:280:13:281:28 | ... => ... | Guards.cs:281:17:281:28 | call to method ToString | true |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not null |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | true |
|
||||
| Guards.cs:283:17:283:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false |
|
||||
| Guards.cs:283:17:283:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | true |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | match access to type Action<Object> |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | match "" |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | match null |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match "" |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | null |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | true |
|
||||
| Guards.cs:285:17:285:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false |
|
||||
| Guards.cs:285:17:285:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | false |
|
||||
| Guards.cs:285:17:285:28 | call to method ToString | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:28 | call to method ToString | true |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | not null |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:17 | access to parameter o | true |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:28 | call to method ToString | true |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | match _ |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match "" |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match Action<String> a |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match access to type Action<Object> |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match null |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | not null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | not null |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | non-null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | non-null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:21 | ... != ... | Guards.cs:342:13:342:13 | access to local variable s | true |
|
||||
| Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | not null |
|
||||
| Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | non-null |
|
||||
| Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:25 | ... is ... | Guards.cs:348:13:348:13 | access to parameter o | true |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import csharp
|
||||
import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
from GuardedExpr ge, Expr sub, GuardValue v
|
||||
from GuardedExpr ge, Expr sub, AbstractValue v
|
||||
select ge, ge.getAGuard(sub, v), sub, v
|
||||
|
||||
@@ -0,0 +1,445 @@
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | non-null | Assert.cs:9:20:9:20 | access to parameter b | false |
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | non-null | Assert.cs:9:31:9:32 | "" | non-null |
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | null | Assert.cs:9:20:9:20 | access to parameter b | true |
|
||||
| Assert.cs:9:20:9:32 | ... ? ... : ... | null | Assert.cs:9:24:9:27 | null | null |
|
||||
| Assert.cs:10:22:10:22 | access to local variable s | empty | Assert.cs:9:20:9:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:10:22:10:22 | access to local variable s | non-empty | Assert.cs:9:20:9:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:10:22:10:22 | access to local variable s | non-null | Assert.cs:9:20:9:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:10:22:10:22 | access to local variable s | null | Assert.cs:9:20:9:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | false | Assert.cs:9:20:9:20 | access to parameter b | true |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | false | Assert.cs:10:22:10:22 | access to local variable s | null |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | true | Assert.cs:9:20:9:20 | access to parameter b | false |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | true | Assert.cs:10:22:10:22 | access to local variable s | non-null |
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | non-null | Assert.cs:9:20:9:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:11:27:11:27 | access to local variable s | null | Assert.cs:9:20:9:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | non-null | Assert.cs:16:20:16:20 | access to parameter b | false |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | non-null | Assert.cs:16:31:16:32 | "" | non-null |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | null | Assert.cs:16:20:16:20 | access to parameter b | true |
|
||||
| Assert.cs:16:20:16:32 | ... ? ... : ... | null | Assert.cs:16:24:16:27 | null | null |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | empty | Assert.cs:16:20:16:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | non-empty | Assert.cs:16:20:16:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | non-null | Assert.cs:16:20:16:20 | access to parameter b | false |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | non-null | Assert.cs:16:20:16:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | null | Assert.cs:16:20:16:20 | access to parameter b | true |
|
||||
| Assert.cs:17:23:17:23 | access to local variable s | null | Assert.cs:16:20:16:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:18:27:18:27 | access to local variable s | non-null | Assert.cs:16:20:16:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:18:27:18:27 | access to local variable s | null | Assert.cs:16:20:16:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | non-null | Assert.cs:23:20:23:20 | access to parameter b | false |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | non-null | Assert.cs:23:31:23:32 | "" | non-null |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | null | Assert.cs:23:20:23:20 | access to parameter b | true |
|
||||
| Assert.cs:23:20:23:32 | ... ? ... : ... | null | Assert.cs:23:24:23:27 | null | null |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | empty | Assert.cs:23:20:23:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | non-empty | Assert.cs:23:20:23:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | non-null | Assert.cs:23:20:23:20 | access to parameter b | false |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | non-null | Assert.cs:23:20:23:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | null | Assert.cs:23:20:23:20 | access to parameter b | true |
|
||||
| Assert.cs:24:26:24:26 | access to local variable s | null | Assert.cs:23:20:23:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | non-null | Assert.cs:23:20:23:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:25:27:25:27 | access to local variable s | null | Assert.cs:23:20:23:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | non-null | Assert.cs:30:20:30:20 | access to parameter b | false |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | non-null | Assert.cs:30:31:30:32 | "" | non-null |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | null | Assert.cs:30:20:30:20 | access to parameter b | true |
|
||||
| Assert.cs:30:20:30:32 | ... ? ... : ... | null | Assert.cs:30:24:30:27 | null | null |
|
||||
| Assert.cs:31:23:31:23 | access to local variable s | empty | Assert.cs:30:20:30:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:31:23:31:23 | access to local variable s | non-empty | Assert.cs:30:20:30:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:31:23:31:23 | access to local variable s | non-null | Assert.cs:30:20:30:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:31:23:31:23 | access to local variable s | null | Assert.cs:30:20:30:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | false | Assert.cs:30:20:30:20 | access to parameter b | false |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | false | Assert.cs:31:23:31:23 | access to local variable s | non-null |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | true | Assert.cs:30:20:30:20 | access to parameter b | true |
|
||||
| Assert.cs:31:23:31:31 | ... == ... | true | Assert.cs:31:23:31:23 | access to local variable s | null |
|
||||
| Assert.cs:32:27:32:27 | access to local variable s | non-null | Assert.cs:30:20:30:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:32:27:32:27 | access to local variable s | null | Assert.cs:30:20:30:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | non-null | Assert.cs:37:20:37:20 | access to parameter b | false |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | non-null | Assert.cs:37:31:37:32 | "" | non-null |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | null | Assert.cs:37:20:37:20 | access to parameter b | true |
|
||||
| Assert.cs:37:20:37:32 | ... ? ... : ... | null | Assert.cs:37:24:37:27 | null | null |
|
||||
| Assert.cs:38:23:38:23 | access to local variable s | empty | Assert.cs:37:20:37:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:38:23:38:23 | access to local variable s | non-empty | Assert.cs:37:20:37:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:38:23:38:23 | access to local variable s | non-null | Assert.cs:37:20:37:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:38:23:38:23 | access to local variable s | null | Assert.cs:37:20:37:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | false | Assert.cs:37:20:37:20 | access to parameter b | true |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | false | Assert.cs:38:23:38:23 | access to local variable s | null |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | true | Assert.cs:37:20:37:20 | access to parameter b | false |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | true | Assert.cs:38:23:38:23 | access to local variable s | non-null |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | non-null | Assert.cs:37:20:37:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:39:27:39:27 | access to local variable s | null | Assert.cs:37:20:37:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | non-null | Assert.cs:44:20:44:20 | access to parameter b | false |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | non-null | Assert.cs:44:31:44:32 | "" | non-null |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | null | Assert.cs:44:20:44:20 | access to parameter b | true |
|
||||
| Assert.cs:44:20:44:32 | ... ? ... : ... | null | Assert.cs:44:24:44:27 | null | null |
|
||||
| Assert.cs:45:24:45:24 | access to local variable s | empty | Assert.cs:44:20:44:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:45:24:45:24 | access to local variable s | non-empty | Assert.cs:44:20:44:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:45:24:45:24 | access to local variable s | non-null | Assert.cs:44:20:44:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:45:24:45:24 | access to local variable s | null | Assert.cs:44:20:44:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | false | Assert.cs:44:20:44:20 | access to parameter b | true |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | false | Assert.cs:45:24:45:24 | access to local variable s | null |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | true | Assert.cs:44:20:44:20 | access to parameter b | false |
|
||||
| Assert.cs:45:24:45:32 | ... != ... | true | Assert.cs:45:24:45:24 | access to local variable s | non-null |
|
||||
| Assert.cs:46:27:46:27 | access to local variable s | non-null | Assert.cs:44:20:44:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:46:27:46:27 | access to local variable s | null | Assert.cs:44:20:44:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | non-null | Assert.cs:51:20:51:20 | access to parameter b | false |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | non-null | Assert.cs:51:31:51:32 | "" | non-null |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | null | Assert.cs:51:20:51:20 | access to parameter b | true |
|
||||
| Assert.cs:51:20:51:32 | ... ? ... : ... | null | Assert.cs:51:24:51:27 | null | null |
|
||||
| Assert.cs:52:24:52:24 | access to local variable s | empty | Assert.cs:51:20:51:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:52:24:52:24 | access to local variable s | non-empty | Assert.cs:51:20:51:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:52:24:52:24 | access to local variable s | non-null | Assert.cs:51:20:51:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:52:24:52:24 | access to local variable s | null | Assert.cs:51:20:51:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | false | Assert.cs:51:20:51:20 | access to parameter b | false |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | false | Assert.cs:52:24:52:24 | access to local variable s | non-null |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | true | Assert.cs:51:20:51:20 | access to parameter b | true |
|
||||
| Assert.cs:52:24:52:32 | ... == ... | true | Assert.cs:52:24:52:24 | access to local variable s | null |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | non-null | Assert.cs:51:20:51:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:53:27:53:27 | access to local variable s | null | Assert.cs:51:20:51:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | non-null | Assert.cs:58:20:58:20 | access to parameter b | false |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | non-null | Assert.cs:58:31:58:32 | "" | non-null |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | null | Assert.cs:58:20:58:20 | access to parameter b | true |
|
||||
| Assert.cs:58:20:58:32 | ... ? ... : ... | null | Assert.cs:58:24:58:27 | null | null |
|
||||
| Assert.cs:59:23:59:23 | access to local variable s | empty | Assert.cs:58:20:58:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:59:23:59:23 | access to local variable s | non-empty | Assert.cs:58:20:58:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:59:23:59:23 | access to local variable s | non-null | Assert.cs:58:20:58:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:59:23:59:23 | access to local variable s | null | Assert.cs:58:20:58:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | false | Assert.cs:58:20:58:20 | access to parameter b | true |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | false | Assert.cs:59:23:59:23 | access to local variable s | null |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | true | Assert.cs:58:20:58:20 | access to parameter b | false |
|
||||
| Assert.cs:59:23:59:31 | ... != ... | true | Assert.cs:59:23:59:23 | access to local variable s | non-null |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | true | Assert.cs:59:23:59:31 | ... != ... | true |
|
||||
| Assert.cs:59:23:59:36 | ... && ... | true | Assert.cs:59:36:59:36 | access to parameter b | true |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | non-null | Assert.cs:58:20:58:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:60:27:60:27 | access to local variable s | null | Assert.cs:58:20:58:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | non-null | Assert.cs:65:20:65:20 | access to parameter b | false |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | non-null | Assert.cs:65:31:65:32 | "" | non-null |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | null | Assert.cs:65:20:65:20 | access to parameter b | true |
|
||||
| Assert.cs:65:20:65:32 | ... ? ... : ... | null | Assert.cs:65:24:65:27 | null | null |
|
||||
| Assert.cs:66:24:66:24 | access to local variable s | empty | Assert.cs:65:20:65:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:66:24:66:24 | access to local variable s | non-empty | Assert.cs:65:20:65:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:66:24:66:24 | access to local variable s | non-null | Assert.cs:65:20:65:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:66:24:66:24 | access to local variable s | null | Assert.cs:65:20:65:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | false | Assert.cs:65:20:65:20 | access to parameter b | false |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | false | Assert.cs:66:24:66:24 | access to local variable s | non-null |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | true | Assert.cs:65:20:65:20 | access to parameter b | true |
|
||||
| Assert.cs:66:24:66:32 | ... == ... | true | Assert.cs:66:24:66:24 | access to local variable s | null |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | false | Assert.cs:66:24:66:32 | ... == ... | false |
|
||||
| Assert.cs:66:24:66:37 | ... \|\| ... | false | Assert.cs:66:37:66:37 | access to parameter b | false |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | non-null | Assert.cs:65:20:65:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:67:27:67:27 | access to local variable s | null | Assert.cs:65:20:65:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | non-null | Assert.cs:72:20:72:20 | access to parameter b | false |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | non-null | Assert.cs:72:31:72:32 | "" | non-null |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | null | Assert.cs:72:20:72:20 | access to parameter b | true |
|
||||
| Assert.cs:72:20:72:32 | ... ? ... : ... | null | Assert.cs:72:24:72:27 | null | null |
|
||||
| Assert.cs:73:23:73:23 | access to local variable s | empty | Assert.cs:72:20:72:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:73:23:73:23 | access to local variable s | non-empty | Assert.cs:72:20:72:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:73:23:73:23 | access to local variable s | non-null | Assert.cs:72:20:72:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:73:23:73:23 | access to local variable s | null | Assert.cs:72:20:72:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | false | Assert.cs:72:20:72:20 | access to parameter b | false |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | false | Assert.cs:73:23:73:23 | access to local variable s | non-null |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | true | Assert.cs:72:20:72:20 | access to parameter b | true |
|
||||
| Assert.cs:73:23:73:31 | ... == ... | true | Assert.cs:73:23:73:23 | access to local variable s | null |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | true | Assert.cs:73:23:73:31 | ... == ... | true |
|
||||
| Assert.cs:73:23:73:36 | ... && ... | true | Assert.cs:73:36:73:36 | access to parameter b | true |
|
||||
| Assert.cs:74:27:74:27 | access to local variable s | non-null | Assert.cs:72:20:72:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:74:27:74:27 | access to local variable s | null | Assert.cs:72:20:72:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | non-null | Assert.cs:79:20:79:20 | access to parameter b | false |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | non-null | Assert.cs:79:31:79:32 | "" | non-null |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | null | Assert.cs:79:20:79:20 | access to parameter b | true |
|
||||
| Assert.cs:79:20:79:32 | ... ? ... : ... | null | Assert.cs:79:24:79:27 | null | null |
|
||||
| Assert.cs:80:24:80:24 | access to local variable s | empty | Assert.cs:79:20:79:32 | ... ? ... : ... | empty |
|
||||
| Assert.cs:80:24:80:24 | access to local variable s | non-empty | Assert.cs:79:20:79:32 | ... ? ... : ... | non-empty |
|
||||
| Assert.cs:80:24:80:24 | access to local variable s | non-null | Assert.cs:79:20:79:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:80:24:80:24 | access to local variable s | null | Assert.cs:79:20:79:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | false | Assert.cs:79:20:79:20 | access to parameter b | true |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | false | Assert.cs:80:24:80:24 | access to local variable s | null |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | true | Assert.cs:79:20:79:20 | access to parameter b | false |
|
||||
| Assert.cs:80:24:80:32 | ... != ... | true | Assert.cs:80:24:80:24 | access to local variable s | non-null |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | false | Assert.cs:80:24:80:32 | ... != ... | false |
|
||||
| Assert.cs:80:24:80:37 | ... \|\| ... | false | Assert.cs:80:37:80:37 | access to parameter b | false |
|
||||
| Assert.cs:81:27:81:27 | access to local variable s | non-null | Assert.cs:79:20:79:32 | ... ? ... : ... | non-null |
|
||||
| Assert.cs:81:27:81:27 | access to local variable s | null | Assert.cs:79:20:79:32 | ... ? ... : ... | null |
|
||||
| Assert.cs:94:16:94:24 | ... && ... | true | Assert.cs:94:16:94:17 | access to parameter b1 | true |
|
||||
| Assert.cs:94:16:94:24 | ... && ... | true | Assert.cs:94:22:94:24 | !... | true |
|
||||
| Assert.cs:94:22:94:24 | !... | false | Assert.cs:94:23:94:24 | access to parameter b2 | true |
|
||||
| Assert.cs:94:22:94:24 | !... | true | Assert.cs:94:23:94:24 | access to parameter b2 | false |
|
||||
| Collections.cs:11:17:11:32 | ... == ... | false | Collections.cs:11:17:11:20 | access to parameter args | non-empty |
|
||||
| Collections.cs:11:17:11:32 | ... == ... | true | Collections.cs:11:17:11:20 | access to parameter args | empty |
|
||||
| Collections.cs:12:13:12:28 | ... == ... | true | Collections.cs:12:13:12:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:13:13:13:28 | ... != ... | false | Collections.cs:13:13:13:16 | access to parameter args | empty |
|
||||
| Collections.cs:13:13:13:28 | ... != ... | true | Collections.cs:13:13:13:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:14:13:14:28 | ... != ... | false | Collections.cs:14:13:14:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:15:13:15:27 | ... > ... | true | Collections.cs:15:13:15:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:17:13:17:28 | ... >= ... | true | Collections.cs:17:13:17:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:22:17:22:31 | ... == ... | false | Collections.cs:22:17:22:20 | access to parameter args | non-empty |
|
||||
| Collections.cs:22:17:22:31 | ... == ... | true | Collections.cs:22:17:22:20 | access to parameter args | empty |
|
||||
| Collections.cs:23:13:23:27 | ... == ... | true | Collections.cs:23:13:23:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:24:13:24:27 | ... != ... | false | Collections.cs:24:13:24:16 | access to parameter args | empty |
|
||||
| Collections.cs:24:13:24:27 | ... != ... | true | Collections.cs:24:13:24:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:25:13:25:27 | ... != ... | false | Collections.cs:25:13:25:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:26:13:26:26 | ... > ... | true | Collections.cs:26:13:26:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:28:13:28:27 | ... >= ... | true | Collections.cs:28:13:28:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:33:17:33:33 | ... == ... | false | Collections.cs:33:17:33:20 | access to parameter args | non-empty |
|
||||
| Collections.cs:33:17:33:33 | ... == ... | true | Collections.cs:33:17:33:20 | access to parameter args | empty |
|
||||
| Collections.cs:34:13:34:29 | ... == ... | true | Collections.cs:34:13:34:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:35:13:35:29 | ... != ... | false | Collections.cs:35:13:35:16 | access to parameter args | empty |
|
||||
| Collections.cs:35:13:35:29 | ... != ... | true | Collections.cs:35:13:35:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:36:13:36:29 | ... != ... | false | Collections.cs:36:13:36:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:37:13:37:28 | ... > ... | true | Collections.cs:37:13:37:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:39:13:39:29 | ... >= ... | true | Collections.cs:39:13:39:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:44:17:44:26 | call to method Any<String> | false | Collections.cs:44:17:44:20 | access to parameter args | empty |
|
||||
| Collections.cs:44:17:44:26 | call to method Any<String> | true | Collections.cs:44:17:44:20 | access to parameter args | non-empty |
|
||||
| Collections.cs:49:13:49:27 | ... == ... | false | Collections.cs:49:13:49:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:49:13:49:27 | ... == ... | true | Collections.cs:49:13:49:16 | access to parameter args | empty |
|
||||
| Collections.cs:55:13:55:13 | access to local variable x | empty | Collections.cs:54:13:54:42 | array creation of type String[] | empty |
|
||||
| Collections.cs:55:13:55:13 | access to local variable x | non-empty | Collections.cs:54:13:54:42 | array creation of type String[] | non-empty |
|
||||
| Collections.cs:55:13:55:13 | access to local variable x | non-null | Collections.cs:54:13:54:42 | array creation of type String[] | non-null |
|
||||
| Collections.cs:55:13:55:13 | access to local variable x | null | Collections.cs:54:13:54:42 | array creation of type String[] | null |
|
||||
| Collections.cs:57:13:57:13 | access to local variable x | empty | Collections.cs:56:13:56:25 | array creation of type String[] | empty |
|
||||
| Collections.cs:57:13:57:13 | access to local variable x | non-empty | Collections.cs:56:13:56:25 | array creation of type String[] | non-empty |
|
||||
| Collections.cs:57:13:57:13 | access to local variable x | non-null | Collections.cs:56:13:56:25 | array creation of type String[] | non-null |
|
||||
| Collections.cs:57:13:57:13 | access to local variable x | null | Collections.cs:56:13:56:25 | array creation of type String[] | null |
|
||||
| Collections.cs:63:9:63:9 | access to local variable x | empty | Collections.cs:62:17:62:55 | call to method ToList<String> | empty |
|
||||
| Collections.cs:63:9:63:9 | access to local variable x | non-empty | Collections.cs:62:17:62:55 | call to method ToList<String> | non-empty |
|
||||
| Collections.cs:63:9:63:9 | access to local variable x | non-null | Collections.cs:62:17:62:55 | call to method ToList<String> | non-null |
|
||||
| Collections.cs:63:9:63:9 | access to local variable x | null | Collections.cs:62:17:62:55 | call to method ToList<String> | null |
|
||||
| Collections.cs:64:13:64:13 | access to local variable x | non-null | Collections.cs:62:17:62:55 | call to method ToList<String> | non-null |
|
||||
| Collections.cs:64:13:64:13 | access to local variable x | null | Collections.cs:62:17:62:55 | call to method ToList<String> | null |
|
||||
| Collections.cs:64:13:64:24 | ... == ... | false | Collections.cs:64:13:64:13 | access to local variable x | non-empty |
|
||||
| Collections.cs:64:13:64:24 | ... == ... | true | Collections.cs:64:13:64:13 | access to local variable x | empty |
|
||||
| Collections.cs:66:13:66:13 | access to local variable x | non-null | Collections.cs:62:17:62:55 | call to method ToList<String> | non-null |
|
||||
| Collections.cs:66:13:66:13 | access to local variable x | null | Collections.cs:62:17:62:55 | call to method ToList<String> | null |
|
||||
| Collections.cs:67:13:67:13 | access to local variable x | non-null | Collections.cs:62:17:62:55 | call to method ToList<String> | non-null |
|
||||
| Collections.cs:67:13:67:13 | access to local variable x | null | Collections.cs:62:17:62:55 | call to method ToList<String> | null |
|
||||
| Collections.cs:73:35:73:41 | ... == ... | true | Collections.cs:73:35:73:35 | access to parameter s | non-null |
|
||||
| Collections.cs:73:35:73:41 | ... == ... | true | Collections.cs:73:40:73:41 | "" | non-null |
|
||||
| Collections.cs:74:17:74:33 | call to method Any<String> | true | Collections.cs:74:17:74:20 | access to parameter args | non-empty |
|
||||
| Collections.cs:75:13:75:36 | ... == ... | false | Collections.cs:75:13:75:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:76:13:76:36 | ... == ... | true | Collections.cs:76:13:76:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:77:13:77:36 | ... != ... | true | Collections.cs:77:13:77:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:78:13:78:36 | ... != ... | false | Collections.cs:78:13:78:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:79:13:79:35 | ... > ... | true | Collections.cs:79:13:79:16 | access to parameter args | non-empty |
|
||||
| Collections.cs:81:13:81:36 | ... >= ... | true | Collections.cs:81:13:81:16 | access to parameter args | non-empty |
|
||||
| Guards.cs:10:13:10:25 | !... | false | Guards.cs:10:14:10:25 | !... | true |
|
||||
| Guards.cs:10:13:10:25 | !... | true | Guards.cs:10:14:10:25 | !... | false |
|
||||
| Guards.cs:10:14:10:25 | !... | false | Guards.cs:10:16:10:24 | ... == ... | true |
|
||||
| Guards.cs:10:14:10:25 | !... | true | Guards.cs:10:16:10:24 | ... == ... | false |
|
||||
| Guards.cs:10:16:10:24 | ... == ... | false | Guards.cs:10:16:10:16 | access to parameter s | non-null |
|
||||
| Guards.cs:10:16:10:24 | ... == ... | true | Guards.cs:10:16:10:16 | access to parameter s | null |
|
||||
| Guards.cs:24:13:24:21 | ... != ... | false | Guards.cs:24:13:24:13 | access to parameter s | null |
|
||||
| Guards.cs:24:13:24:21 | ... != ... | true | Guards.cs:24:13:24:13 | access to parameter s | non-null |
|
||||
| Guards.cs:32:13:32:36 | !... | false | Guards.cs:32:14:32:36 | call to method IsNullOrEmpty | true |
|
||||
| Guards.cs:32:13:32:36 | !... | true | Guards.cs:32:14:32:36 | call to method IsNullOrEmpty | false |
|
||||
| Guards.cs:32:13:32:51 | ... & ... | true | Guards.cs:32:13:32:36 | !... | true |
|
||||
| Guards.cs:32:13:32:51 | ... & ... | true | Guards.cs:32:40:32:51 | !... | true |
|
||||
| Guards.cs:32:14:32:36 | call to method IsNullOrEmpty | false | Guards.cs:32:35:32:35 | access to parameter x | non-null |
|
||||
| Guards.cs:32:40:32:51 | !... | false | Guards.cs:32:42:32:50 | ... == ... | true |
|
||||
| Guards.cs:32:40:32:51 | !... | true | Guards.cs:32:42:32:50 | ... == ... | false |
|
||||
| Guards.cs:32:42:32:50 | ... == ... | false | Guards.cs:32:42:32:42 | access to parameter y | non-null |
|
||||
| Guards.cs:32:42:32:50 | ... == ... | true | Guards.cs:32:42:32:42 | access to parameter y | null |
|
||||
| Guards.cs:33:31:33:35 | ... + ... | non-null | Guards.cs:33:31:33:31 | access to parameter x | non-null |
|
||||
| Guards.cs:33:31:33:35 | ... + ... | non-null | Guards.cs:33:35:33:35 | access to parameter y | non-null |
|
||||
| Guards.cs:35:13:35:21 | ... == ... | false | Guards.cs:35:13:35:13 | access to parameter x | non-null |
|
||||
| Guards.cs:35:13:35:21 | ... == ... | true | Guards.cs:35:13:35:13 | access to parameter x | null |
|
||||
| Guards.cs:35:13:35:34 | ... \|\| ... | false | Guards.cs:35:13:35:21 | ... == ... | false |
|
||||
| Guards.cs:35:13:35:34 | ... \|\| ... | false | Guards.cs:35:26:35:34 | ... == ... | false |
|
||||
| Guards.cs:35:26:35:34 | ... == ... | false | Guards.cs:35:26:35:26 | access to parameter y | non-null |
|
||||
| Guards.cs:35:26:35:34 | ... == ... | true | Guards.cs:35:26:35:26 | access to parameter y | null |
|
||||
| Guards.cs:36:32:36:36 | ... + ... | non-null | Guards.cs:36:32:36:32 | access to parameter x | non-null |
|
||||
| Guards.cs:36:32:36:36 | ... + ... | non-null | Guards.cs:36:36:36:36 | access to parameter y | non-null |
|
||||
| Guards.cs:36:32:36:36 | ... + ... | null | Guards.cs:36:32:36:32 | access to parameter x | null |
|
||||
| Guards.cs:36:32:36:36 | ... + ... | null | Guards.cs:36:36:36:36 | access to parameter y | null |
|
||||
| Guards.cs:38:13:38:37 | !... | false | Guards.cs:38:15:38:36 | ... \|\| ... | true |
|
||||
| Guards.cs:38:13:38:37 | !... | true | Guards.cs:38:15:38:36 | ... \|\| ... | false |
|
||||
| Guards.cs:38:15:38:23 | ... == ... | false | Guards.cs:38:15:38:15 | access to parameter x | non-null |
|
||||
| Guards.cs:38:15:38:23 | ... == ... | true | Guards.cs:38:15:38:15 | access to parameter x | null |
|
||||
| Guards.cs:38:15:38:36 | ... \|\| ... | false | Guards.cs:38:15:38:23 | ... == ... | false |
|
||||
| Guards.cs:38:15:38:36 | ... \|\| ... | false | Guards.cs:38:28:38:36 | ... == ... | false |
|
||||
| Guards.cs:38:28:38:36 | ... == ... | false | Guards.cs:38:28:38:28 | access to parameter y | non-null |
|
||||
| Guards.cs:38:28:38:36 | ... == ... | true | Guards.cs:38:28:38:28 | access to parameter y | null |
|
||||
| Guards.cs:39:31:39:35 | ... + ... | non-null | Guards.cs:39:31:39:31 | access to parameter x | non-null |
|
||||
| Guards.cs:39:31:39:35 | ... + ... | non-null | Guards.cs:39:35:39:35 | access to parameter y | non-null |
|
||||
| Guards.cs:39:31:39:35 | ... + ... | null | Guards.cs:39:31:39:31 | access to parameter x | null |
|
||||
| Guards.cs:39:31:39:35 | ... + ... | null | Guards.cs:39:35:39:35 | access to parameter y | null |
|
||||
| Guards.cs:41:13:41:39 | !... | false | Guards.cs:41:14:41:39 | !... | true |
|
||||
| Guards.cs:41:13:41:39 | !... | true | Guards.cs:41:14:41:39 | !... | false |
|
||||
| Guards.cs:41:14:41:39 | !... | false | Guards.cs:41:15:41:39 | !... | true |
|
||||
| Guards.cs:41:14:41:39 | !... | true | Guards.cs:41:15:41:39 | !... | false |
|
||||
| Guards.cs:41:15:41:39 | !... | false | Guards.cs:41:17:41:38 | ... && ... | true |
|
||||
| Guards.cs:41:15:41:39 | !... | true | Guards.cs:41:17:41:38 | ... && ... | false |
|
||||
| Guards.cs:41:17:41:25 | ... != ... | false | Guards.cs:41:17:41:17 | access to parameter x | null |
|
||||
| Guards.cs:41:17:41:25 | ... != ... | true | Guards.cs:41:17:41:17 | access to parameter x | non-null |
|
||||
| Guards.cs:41:17:41:38 | ... && ... | true | Guards.cs:41:17:41:25 | ... != ... | true |
|
||||
| Guards.cs:41:17:41:38 | ... && ... | true | Guards.cs:41:30:41:38 | ... != ... | true |
|
||||
| Guards.cs:41:30:41:38 | ... != ... | false | Guards.cs:41:30:41:30 | access to parameter y | null |
|
||||
| Guards.cs:41:30:41:38 | ... != ... | true | Guards.cs:41:30:41:30 | access to parameter y | non-null |
|
||||
| Guards.cs:42:32:42:36 | ... + ... | non-null | Guards.cs:42:32:42:32 | access to parameter x | non-null |
|
||||
| Guards.cs:42:32:42:36 | ... + ... | non-null | Guards.cs:42:36:42:36 | access to parameter y | non-null |
|
||||
| Guards.cs:42:32:42:36 | ... + ... | null | Guards.cs:42:32:42:32 | access to parameter x | null |
|
||||
| Guards.cs:42:32:42:36 | ... + ... | null | Guards.cs:42:36:42:36 | access to parameter y | null |
|
||||
| Guards.cs:44:13:44:25 | ... != ... | false | Guards.cs:44:13:44:17 | access to field Field | null |
|
||||
| Guards.cs:44:13:44:25 | ... != ... | true | Guards.cs:44:13:44:17 | access to field Field | non-null |
|
||||
| Guards.cs:47:13:47:25 | ... != ... | false | Guards.cs:47:13:47:17 | access to field Field | null |
|
||||
| Guards.cs:47:13:47:25 | ... != ... | true | Guards.cs:47:13:47:17 | access to field Field | non-null |
|
||||
| Guards.cs:53:13:53:27 | ... == ... | false | Guards.cs:53:13:53:19 | access to field Field | non-null |
|
||||
| Guards.cs:53:13:53:27 | ... == ... | true | Guards.cs:53:13:53:19 | access to field Field | null |
|
||||
| Guards.cs:60:13:60:45 | ... == ... | false | Guards.cs:60:13:60:37 | access to field Field | non-null |
|
||||
| Guards.cs:60:13:60:45 | ... == ... | true | Guards.cs:60:13:60:37 | access to field Field | null |
|
||||
| Guards.cs:68:16:68:24 | ... != ... | false | Guards.cs:68:16:68:16 | access to parameter s | null |
|
||||
| Guards.cs:68:16:68:24 | ... != ... | true | Guards.cs:68:16:68:16 | access to parameter s | non-null |
|
||||
| Guards.cs:72:31:72:31 | access to parameter s | empty | Guards.cs:71:17:71:20 | null | empty |
|
||||
| Guards.cs:72:31:72:31 | access to parameter s | non-empty | Guards.cs:71:17:71:20 | null | non-empty |
|
||||
| Guards.cs:72:31:72:31 | access to parameter s | non-null | Guards.cs:71:17:71:20 | null | non-null |
|
||||
| Guards.cs:72:31:72:31 | access to parameter s | null | Guards.cs:71:17:71:20 | null | null |
|
||||
| Guards.cs:78:13:78:21 | access to property Length | non-null | Guards.cs:78:13:78:13 | access to parameter s | non-null |
|
||||
| Guards.cs:78:13:78:21 | access to property Length | null | Guards.cs:78:13:78:13 | access to parameter s | null |
|
||||
| Guards.cs:78:13:78:26 | ... == ... | true | Guards.cs:78:13:78:21 | access to property Length | non-null |
|
||||
| Guards.cs:80:13:80:21 | access to property Length | non-null | Guards.cs:80:13:80:13 | access to parameter s | non-null |
|
||||
| Guards.cs:80:13:80:21 | access to property Length | null | Guards.cs:80:13:80:13 | access to parameter s | null |
|
||||
| Guards.cs:80:13:80:25 | ... > ... | true | Guards.cs:80:13:80:21 | access to property Length | non-null |
|
||||
| Guards.cs:82:13:82:21 | access to property Length | non-null | Guards.cs:82:13:82:13 | access to parameter s | non-null |
|
||||
| Guards.cs:82:13:82:21 | access to property Length | null | Guards.cs:82:13:82:13 | access to parameter s | null |
|
||||
| Guards.cs:82:13:82:26 | ... >= ... | true | Guards.cs:82:13:82:21 | access to property Length | non-null |
|
||||
| Guards.cs:84:13:84:21 | access to property Length | non-null | Guards.cs:84:13:84:13 | access to parameter s | non-null |
|
||||
| Guards.cs:84:13:84:21 | access to property Length | null | Guards.cs:84:13:84:13 | access to parameter s | null |
|
||||
| Guards.cs:84:13:84:26 | ... < ... | true | Guards.cs:84:13:84:21 | access to property Length | non-null |
|
||||
| Guards.cs:86:13:86:21 | access to property Length | non-null | Guards.cs:86:13:86:13 | access to parameter s | non-null |
|
||||
| Guards.cs:86:13:86:21 | access to property Length | null | Guards.cs:86:13:86:13 | access to parameter s | null |
|
||||
| Guards.cs:86:13:86:27 | ... <= ... | true | Guards.cs:86:13:86:21 | access to property Length | non-null |
|
||||
| Guards.cs:88:13:88:21 | access to property Length | non-null | Guards.cs:88:13:88:13 | access to parameter s | non-null |
|
||||
| Guards.cs:88:13:88:21 | access to property Length | null | Guards.cs:88:13:88:13 | access to parameter s | null |
|
||||
| Guards.cs:88:13:88:29 | ... != ... | false | Guards.cs:88:13:88:21 | access to property Length | null |
|
||||
| Guards.cs:88:13:88:29 | ... != ... | true | Guards.cs:88:13:88:21 | access to property Length | non-null |
|
||||
| Guards.cs:92:13:92:21 | access to property Length | non-null | Guards.cs:92:13:92:13 | access to parameter s | non-null |
|
||||
| Guards.cs:92:13:92:21 | access to property Length | null | Guards.cs:92:13:92:13 | access to parameter s | null |
|
||||
| Guards.cs:92:13:92:25 | ... - ... | non-null | Guards.cs:92:13:92:21 | access to property Length | non-null |
|
||||
| Guards.cs:92:13:92:25 | ... - ... | non-null | Guards.cs:92:25:92:25 | (...) ... | non-null |
|
||||
| Guards.cs:92:13:92:25 | ... - ... | null | Guards.cs:92:13:92:21 | access to property Length | null |
|
||||
| Guards.cs:92:13:92:30 | ... != ... | false | Guards.cs:92:13:92:25 | ... - ... | non-null |
|
||||
| Guards.cs:96:13:96:19 | ... == ... | true | Guards.cs:96:13:96:13 | access to parameter s | non-null |
|
||||
| Guards.cs:104:13:104:45 | ... == ... | false | Guards.cs:104:13:104:37 | access to field Field | non-null |
|
||||
| Guards.cs:104:13:104:45 | ... == ... | true | Guards.cs:104:13:104:37 | access to field Field | null |
|
||||
| Guards.cs:107:27:107:36 | access to property Property | non-null | Guards.cs:106:22:106:25 | null | non-null |
|
||||
| Guards.cs:107:27:107:36 | access to property Property | null | Guards.cs:106:22:106:25 | null | null |
|
||||
| Guards.cs:108:27:108:36 | access to property Property | non-null | Guards.cs:106:22:106:25 | null | non-null |
|
||||
| Guards.cs:108:27:108:36 | access to property Property | null | Guards.cs:106:22:106:25 | null | null |
|
||||
| Guards.cs:113:21:114:38 | ... ?? ... | null | Guards.cs:113:21:113:45 | access to field Field | null |
|
||||
| Guards.cs:113:21:114:38 | ... ?? ... | null | Guards.cs:114:14:114:38 | access to field Field | null |
|
||||
| Guards.cs:115:17:115:55 | ... ?? ... | null | Guards.cs:115:17:115:41 | access to field Field | null |
|
||||
| Guards.cs:115:17:115:55 | ... ?? ... | null | Guards.cs:115:46:115:55 | throw ... | null |
|
||||
| Guards.cs:118:27:118:36 | access to property Property | non-null | Guards.cs:117:22:117:25 | null | non-null |
|
||||
| Guards.cs:118:27:118:36 | access to property Property | null | Guards.cs:117:22:117:25 | null | null |
|
||||
| Guards.cs:119:27:119:36 | access to property Property | non-null | Guards.cs:117:22:117:25 | null | non-null |
|
||||
| Guards.cs:119:27:119:36 | access to property Property | null | Guards.cs:117:22:117:25 | null | null |
|
||||
| Guards.cs:125:18:125:31 | call to method Equals | non-null | Guards.cs:125:18:125:19 | access to parameter s1 | non-null |
|
||||
| Guards.cs:125:18:125:31 | call to method Equals | null | Guards.cs:125:18:125:19 | access to parameter s1 | null |
|
||||
| Guards.cs:125:18:125:31 | call to method Equals | true | Guards.cs:125:18:125:19 | access to parameter s1 | non-null |
|
||||
| Guards.cs:125:18:125:31 | call to method Equals | true | Guards.cs:125:29:125:30 | access to parameter s1 | non-null |
|
||||
| Guards.cs:130:13:130:21 | ... is ... | false | Guards.cs:130:13:130:13 | access to parameter s | non-null |
|
||||
| Guards.cs:130:13:130:21 | ... is ... | true | Guards.cs:130:13:130:13 | access to parameter s | null |
|
||||
| Guards.cs:137:13:137:25 | ... is ... | false | Guards.cs:137:13:137:13 | access to parameter s | null |
|
||||
| Guards.cs:137:13:137:25 | ... is ... | true | Guards.cs:137:13:137:13 | access to parameter s | non-null |
|
||||
| Guards.cs:144:13:144:25 | ... is ... | true | Guards.cs:144:13:144:13 | access to parameter o | non-null |
|
||||
| Guards.cs:145:20:145:20 | access to local variable s | empty | Guards.cs:144:13:144:13 | access to parameter o | empty |
|
||||
| Guards.cs:145:20:145:20 | access to local variable s | non-empty | Guards.cs:144:13:144:13 | access to parameter o | non-empty |
|
||||
| Guards.cs:145:20:145:20 | access to local variable s | non-null | Guards.cs:144:13:144:13 | access to parameter o | non-null |
|
||||
| Guards.cs:145:20:145:20 | access to local variable s | null | Guards.cs:144:13:144:13 | access to parameter o | null |
|
||||
| Guards.cs:151:17:151:17 | access to parameter o | match "" | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:151:17:151:17 | access to parameter o | match Action<String> a | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:151:17:151:17 | access to parameter o | match access to type Action<Object> | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:151:17:151:17 | access to parameter o | match null | Guards.cs:151:17:151:17 | access to parameter o | null |
|
||||
| Guards.cs:151:17:151:17 | access to parameter o | non-match null | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:156:24:156:24 | access to local variable a | non-null | Guards.cs:151:17:151:17 | access to parameter o | non-null |
|
||||
| Guards.cs:156:24:156:24 | access to local variable a | null | Guards.cs:151:17:151:17 | access to parameter o | null |
|
||||
| Guards.cs:168:13:168:41 | !... | false | Guards.cs:168:14:168:41 | call to method IsNullOrWhiteSpace | true |
|
||||
| Guards.cs:168:13:168:41 | !... | true | Guards.cs:168:14:168:41 | call to method IsNullOrWhiteSpace | false |
|
||||
| Guards.cs:168:14:168:41 | call to method IsNullOrWhiteSpace | false | Guards.cs:168:40:168:40 | access to parameter x | non-null |
|
||||
| Guards.cs:172:34:172:42 | ... == ... | false | Guards.cs:172:34:172:34 | access to parameter o | non-null |
|
||||
| Guards.cs:172:34:172:42 | ... == ... | true | Guards.cs:172:34:172:34 | access to parameter o | null |
|
||||
| Guards.cs:176:13:176:21 | ... is ... | false | Guards.cs:176:13:176:13 | access to parameter o | non-null |
|
||||
| Guards.cs:176:13:176:21 | ... is ... | true | Guards.cs:176:13:176:13 | access to parameter o | null |
|
||||
| Guards.cs:181:34:181:42 | ... == ... | false | Guards.cs:181:34:181:34 | access to parameter o | non-null |
|
||||
| Guards.cs:181:34:181:42 | ... == ... | true | Guards.cs:181:34:181:34 | access to parameter o | null |
|
||||
| Guards.cs:181:34:181:57 | ... ? ... : ... | false | Guards.cs:181:34:181:42 | ... == ... | false |
|
||||
| Guards.cs:181:34:181:57 | ... ? ... : ... | true | Guards.cs:181:34:181:42 | ... == ... | true |
|
||||
| Guards.cs:183:37:183:49 | !... | false | Guards.cs:183:38:183:49 | call to method NullTest3 | true |
|
||||
| Guards.cs:183:37:183:49 | !... | true | Guards.cs:183:38:183:49 | call to method NullTest3 | false |
|
||||
| Guards.cs:183:38:183:49 | call to method NullTest3 | false | Guards.cs:183:48:183:48 | access to parameter o | non-null |
|
||||
| Guards.cs:183:38:183:49 | call to method NullTest3 | true | Guards.cs:183:48:183:48 | access to parameter o | null |
|
||||
| Guards.cs:185:38:185:46 | ... == ... | false | Guards.cs:185:38:185:38 | access to parameter o | non-null |
|
||||
| Guards.cs:185:38:185:46 | ... == ... | true | Guards.cs:185:38:185:38 | access to parameter o | null |
|
||||
| Guards.cs:185:38:185:60 | ... ? ... : ... | false | Guards.cs:185:38:185:46 | ... == ... | false |
|
||||
| Guards.cs:185:38:185:60 | ... ? ... : ... | false | Guards.cs:185:38:185:46 | ... == ... | true |
|
||||
| Guards.cs:189:13:189:25 | !... | false | Guards.cs:189:14:189:25 | call to method NullTest1 | true |
|
||||
| Guards.cs:189:13:189:25 | !... | true | Guards.cs:189:14:189:25 | call to method NullTest1 | false |
|
||||
| Guards.cs:189:14:189:25 | call to method NullTest1 | false | Guards.cs:189:24:189:24 | access to parameter s | non-null |
|
||||
| Guards.cs:189:14:189:25 | call to method NullTest1 | true | Guards.cs:189:24:189:24 | access to parameter s | null |
|
||||
| Guards.cs:191:13:191:25 | !... | false | Guards.cs:191:14:191:25 | call to method NullTest2 | true |
|
||||
| Guards.cs:191:13:191:25 | !... | true | Guards.cs:191:14:191:25 | call to method NullTest2 | false |
|
||||
| Guards.cs:191:14:191:25 | call to method NullTest2 | false | Guards.cs:191:24:191:24 | access to parameter s | non-null |
|
||||
| Guards.cs:191:14:191:25 | call to method NullTest2 | true | Guards.cs:191:24:191:24 | access to parameter s | null |
|
||||
| Guards.cs:193:13:193:25 | !... | false | Guards.cs:193:14:193:25 | call to method NullTest3 | true |
|
||||
| Guards.cs:193:13:193:25 | !... | true | Guards.cs:193:14:193:25 | call to method NullTest3 | false |
|
||||
| Guards.cs:193:14:193:25 | call to method NullTest3 | false | Guards.cs:193:24:193:24 | access to parameter s | non-null |
|
||||
| Guards.cs:193:14:193:25 | call to method NullTest3 | true | Guards.cs:193:24:193:24 | access to parameter s | null |
|
||||
| Guards.cs:195:13:195:27 | call to method NotNullTest4 | false | Guards.cs:195:26:195:26 | access to parameter s | null |
|
||||
| Guards.cs:195:13:195:27 | call to method NotNullTest4 | true | Guards.cs:195:26:195:26 | access to parameter s | non-null |
|
||||
| Guards.cs:197:13:197:29 | !... | false | Guards.cs:197:14:197:29 | call to method NullTestWrong | true |
|
||||
| Guards.cs:197:13:197:29 | !... | true | Guards.cs:197:14:197:29 | call to method NullTestWrong | false |
|
||||
| Guards.cs:203:13:203:21 | ... != ... | false | Guards.cs:203:13:203:13 | access to parameter o | null |
|
||||
| Guards.cs:203:13:203:21 | ... != ... | true | Guards.cs:203:13:203:13 | access to parameter o | non-null |
|
||||
| Guards.cs:218:17:218:18 | access to local variable b2 | match true | Guards.cs:216:13:216:14 | access to parameter b1 | false |
|
||||
| Guards.cs:218:17:218:18 | access to local variable b2 | match true | Guards.cs:218:17:218:18 | access to local variable b2 | true |
|
||||
| Guards.cs:231:17:231:18 | access to local variable b2 | match true | Guards.cs:229:13:229:14 | access to parameter b1 | true |
|
||||
| Guards.cs:231:17:231:18 | access to local variable b2 | match true | Guards.cs:231:17:231:18 | access to local variable b2 | true |
|
||||
| Guards.cs:231:17:231:18 | access to local variable b2 | non-match true | Guards.cs:229:13:229:14 | access to parameter b1 | false |
|
||||
| Guards.cs:244:17:244:17 | access to local variable i | match 1 | Guards.cs:242:13:242:13 | access to parameter b | true |
|
||||
| Guards.cs:244:17:244:17 | access to local variable i | match 1 | Guards.cs:244:17:244:17 | access to local variable i | 1 |
|
||||
| Guards.cs:244:17:244:17 | access to local variable i | non-match 1 | Guards.cs:242:13:242:13 | access to parameter b | false |
|
||||
| Guards.cs:258:17:258:17 | access to local variable e | match access to constant B | Guards.cs:256:13:256:13 | access to parameter b | true |
|
||||
| Guards.cs:258:17:258:17 | access to local variable e | match access to constant B | Guards.cs:258:17:258:17 | access to local variable e | 1 |
|
||||
| Guards.cs:258:17:258:17 | access to local variable e | non-match access to constant B | Guards.cs:256:13:256:13 | access to parameter b | false |
|
||||
| Guards.cs:268:13:268:25 | call to method GetType | non-null | Guards.cs:268:13:268:14 | access to parameter o1 | non-null |
|
||||
| Guards.cs:268:13:268:41 | call to operator == | true | Guards.cs:268:13:268:25 | call to method GetType | non-null |
|
||||
| Guards.cs:270:13:270:25 | call to method GetType | non-null | Guards.cs:270:13:270:14 | access to parameter o1 | non-null |
|
||||
| Guards.cs:270:30:270:42 | call to method GetType | non-null | Guards.cs:270:30:270:31 | access to parameter o2 | non-null |
|
||||
| Guards.cs:276:16:276:16 | access to parameter o | match "" | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:276:16:276:16 | access to parameter o | match Action<String> a | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:276:16:276:16 | access to parameter o | match access to type Action<Object> | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:276:16:276:16 | access to parameter o | match null | Guards.cs:276:16:276:16 | access to parameter o | null |
|
||||
| Guards.cs:276:16:276:16 | access to parameter o | non-match null | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:278:13:279:28 | ... => ... | true | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:280:13:281:28 | ... => ... | true | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:281:17:281:17 | access to local variable a | non-null | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:281:17:281:17 | access to local variable a | null | Guards.cs:276:16:276:16 | access to parameter o | null |
|
||||
| Guards.cs:282:13:283:28 | ... => ... | true | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:284:13:285:28 | ... => ... | false | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:284:13:285:28 | ... => ... | true | Guards.cs:276:16:276:16 | access to parameter o | null |
|
||||
| Guards.cs:286:13:287:28 | ... => ... | true | Guards.cs:276:16:276:16 | access to parameter o | non-null |
|
||||
| Guards.cs:296:16:296:17 | access to local variable b2 | match true | Guards.cs:294:13:294:14 | access to parameter b1 | false |
|
||||
| Guards.cs:296:16:296:17 | access to local variable b2 | match true | Guards.cs:296:16:296:17 | access to local variable b2 | true |
|
||||
| Guards.cs:308:16:308:17 | access to local variable b2 | match true | Guards.cs:306:13:306:14 | access to parameter b1 | true |
|
||||
| Guards.cs:308:16:308:17 | access to local variable b2 | match true | Guards.cs:308:16:308:17 | access to local variable b2 | true |
|
||||
| Guards.cs:308:16:308:17 | access to local variable b2 | non-match true | Guards.cs:306:13:306:14 | access to parameter b1 | false |
|
||||
| Guards.cs:320:16:320:16 | access to local variable i | match 1 | Guards.cs:318:13:318:13 | access to parameter b | true |
|
||||
| Guards.cs:320:16:320:16 | access to local variable i | match 1 | Guards.cs:320:16:320:16 | access to local variable i | 1 |
|
||||
| Guards.cs:320:16:320:16 | access to local variable i | non-match 1 | Guards.cs:318:13:318:13 | access to parameter b | false |
|
||||
| Guards.cs:332:16:332:16 | access to local variable e | match access to constant B | Guards.cs:330:13:330:13 | access to parameter b | true |
|
||||
| Guards.cs:332:16:332:16 | access to local variable e | match access to constant B | Guards.cs:332:16:332:16 | access to local variable e | 1 |
|
||||
| Guards.cs:332:16:332:16 | access to local variable e | non-match access to constant B | Guards.cs:330:13:330:13 | access to parameter b | false |
|
||||
| Guards.cs:341:20:341:32 | ... ? ... : ... | non-null | Guards.cs:341:20:341:20 | access to parameter b | false |
|
||||
| Guards.cs:341:20:341:32 | ... ? ... : ... | non-null | Guards.cs:341:31:341:32 | "" | non-null |
|
||||
| Guards.cs:341:20:341:32 | ... ? ... : ... | null | Guards.cs:341:20:341:20 | access to parameter b | true |
|
||||
| Guards.cs:341:20:341:32 | ... ? ... : ... | null | Guards.cs:341:24:341:27 | null | null |
|
||||
| Guards.cs:342:13:342:13 | access to local variable s | empty | Guards.cs:341:20:341:32 | ... ? ... : ... | empty |
|
||||
| Guards.cs:342:13:342:13 | access to local variable s | non-empty | Guards.cs:341:20:341:32 | ... ? ... : ... | non-empty |
|
||||
| Guards.cs:342:13:342:13 | access to local variable s | non-null | Guards.cs:341:20:341:32 | ... ? ... : ... | non-null |
|
||||
| Guards.cs:342:13:342:13 | access to local variable s | null | Guards.cs:341:20:341:32 | ... ? ... : ... | null |
|
||||
| Guards.cs:342:13:342:21 | ... != ... | false | Guards.cs:341:20:341:20 | access to parameter b | true |
|
||||
| Guards.cs:342:13:342:21 | ... != ... | false | Guards.cs:342:13:342:13 | access to local variable s | null |
|
||||
| Guards.cs:342:13:342:21 | ... != ... | true | Guards.cs:341:20:341:20 | access to parameter b | false |
|
||||
| Guards.cs:342:13:342:21 | ... != ... | true | Guards.cs:342:13:342:13 | access to local variable s | non-null |
|
||||
| Guards.cs:342:13:342:27 | ... && ... | true | Guards.cs:342:13:342:21 | ... != ... | true |
|
||||
| Guards.cs:342:13:342:27 | ... && ... | true | Guards.cs:342:26:342:27 | !... | true |
|
||||
| Guards.cs:342:26:342:27 | !... | false | Guards.cs:342:27:342:27 | access to parameter b | true |
|
||||
| Guards.cs:342:26:342:27 | !... | true | Guards.cs:342:27:342:27 | access to parameter b | false |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | non-null | Guards.cs:341:20:341:32 | ... ? ... : ... | non-null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | null | Guards.cs:341:20:341:32 | ... ? ... : ... | null |
|
||||
| Guards.cs:348:13:348:25 | ... is ... | true | Guards.cs:348:13:348:13 | access to parameter o | non-null |
|
||||
@@ -0,0 +1,6 @@
|
||||
import csharp
|
||||
import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
query predicate impliesStep(Expr e1, AbstractValue v1, Expr e2, AbstractValue v2) {
|
||||
Internal::impliesStep(e1, v1, e2, v2)
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
| Guards.cs:154:24:154:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:153:13:153:34 | case ...: | match access to type Action<Object> | true |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:153:13:153:34 | case ...: | non-match access to type Action<Object> | false |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:155:13:155:34 | case ...: | non-match Action<String> a | false |
|
||||
| Guards.cs:158:24:158:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:157:13:157:20 | case ...: | match "" | true |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:153:13:153:34 | case ...: | non-match access to type Action<Object> | false |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:155:13:155:34 | case ...: | non-match Action<String> a | false |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:157:13:157:20 | case ...: | non-match "" | false |
|
||||
| Guards.cs:160:24:160:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:159:13:159:22 | case ...: | match null | true |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:153:13:153:34 | case ...: | non-match access to type Action<Object> | false |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:155:13:155:34 | case ...: | non-match Action<String> a | false |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:157:13:157:20 | case ...: | non-match "" | false |
|
||||
| Guards.cs:162:24:162:24 | access to parameter o | Guards.cs:151:17:151:17 | access to parameter o | Guards.cs:159:13:159:22 | case ...: | non-match null | false |
|
||||
| Guards.cs:279:17:279:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | match access to type Action<Object> | true |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | non-match access to type Action<Object> | false |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:280:13:281:28 | ... => ... | non-match Action<String> a | false |
|
||||
| Guards.cs:283:17:283:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | match "" | true |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | non-match access to type Action<Object> | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:280:13:281:28 | ... => ... | non-match Action<String> a | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | non-match "" | false |
|
||||
| Guards.cs:285:17:285:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | match null | true |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | non-match access to type Action<Object> | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:280:13:281:28 | ... => ... | non-match Action<String> a | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | non-match "" | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | non-match null | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:286:13:287:28 | ... => ... | match _ | true |
|
||||
@@ -0,0 +1,8 @@
|
||||
import csharp
|
||||
import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
from GuardedExpr ge, Expr e, AbstractValues::MatchValue v, boolean match
|
||||
where
|
||||
e = ge.getAGuard(e, v) and
|
||||
if v.isMatch() then match = true else match = false
|
||||
select ge, e, v.getCase(), v, match
|
||||
@@ -5,8 +5,10 @@
|
||||
import csharp
|
||||
import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
private predicate stringConstCompare(Guard guard, Expr testedNode, GuardValue value) {
|
||||
guard.isEquality(any(StringLiteral lit), testedNode, value.asBooleanValue())
|
||||
private predicate stringConstCompare(Guard guard, Expr testedNode, AbstractValue value) {
|
||||
guard
|
||||
.isEquality(any(StringLiteral lit), testedNode,
|
||||
value.(AbstractValues::BooleanValue).getValue())
|
||||
}
|
||||
|
||||
class StringConstCompareBarrier extends DataFlow::Node {
|
||||
|
||||
@@ -18,7 +18,9 @@ module Config implements DataFlow::ConfigSig {
|
||||
}
|
||||
|
||||
predicate isBarrier(DataFlow::Node node) {
|
||||
exists(GuardValue nv | node.(GuardedDataFlowNode).mustHaveValue(nv) | nv.isNullValue())
|
||||
exists(AbstractValues::NullValue nv | node.(GuardedDataFlowNode).mustHaveValue(nv) |
|
||||
nv.isNull()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
| FormatInvalid.cs:111:23:111:25 | "}" | FormatInvalid.cs:111:23:111:25 | "}" | FormatInvalid.cs:111:23:111:25 | "}" | Invalid format string used in $@ formatting call. | FormatInvalid.cs:111:9:111:32 | call to method Write | this | FormatInvalid.cs:111:9:111:32 | call to method Write | this |
|
||||
| FormatInvalid.cs:112:23:112:25 | "}" | FormatInvalid.cs:112:23:112:25 | "}" | FormatInvalid.cs:112:23:112:25 | "}" | Invalid format string used in $@ formatting call. | FormatInvalid.cs:112:9:112:35 | call to method Write | this | FormatInvalid.cs:112:9:112:35 | call to method Write | this |
|
||||
| FormatInvalid.cs:113:23:113:25 | "}" | FormatInvalid.cs:113:23:113:25 | "}" | FormatInvalid.cs:113:23:113:25 | "}" | Invalid format string used in $@ formatting call. | FormatInvalid.cs:113:9:113:38 | call to method Write | this | FormatInvalid.cs:113:9:113:38 | call to method Write | this |
|
||||
| FormatInvalid.cs:118:56:118:58 | "}" | FormatInvalid.cs:118:56:118:58 | "}" | FormatInvalid.cs:118:56:118:58 | "}" | Invalid format string used in $@ formatting call. | FormatInvalid.cs:118:9:118:63 | call to method Assert | this | FormatInvalid.cs:118:9:118:63 | call to method Assert | this |
|
||||
| FormatInvalid.cs:118:56:118:58 | "}" | FormatInvalid.cs:118:56:118:58 | [assertion success] "}" | FormatInvalid.cs:118:56:118:58 | [assertion success] "}" | Invalid format string used in $@ formatting call. | FormatInvalid.cs:118:9:118:63 | call to method Assert | this | FormatInvalid.cs:118:9:118:63 | call to method Assert | this |
|
||||
| FormatInvalid.cs:119:18:119:20 | "}" | FormatInvalid.cs:119:18:119:20 | "}" | FormatInvalid.cs:119:18:119:20 | "}" | Invalid format string used in $@ formatting call. | FormatInvalid.cs:119:9:119:24 | call to method Write | this | FormatInvalid.cs:119:9:119:24 | call to method Write | this |
|
||||
| FormatInvalid.cs:120:40:120:42 | "}" | FormatInvalid.cs:120:40:120:42 | "}" | FormatInvalid.cs:120:40:120:42 | "}" | Invalid format string used in $@ formatting call. | FormatInvalid.cs:120:9:120:47 | call to method Print | this | FormatInvalid.cs:120:9:120:47 | call to method Print | this |
|
||||
| FormatInvalid.cs:140:44:140:46 | "}" | FormatInvalid.cs:140:44:140:46 | "}" | FormatInvalid.cs:140:44:140:46 | "}" | Invalid format string used in $@ formatting call. | FormatInvalid.cs:140:22:140:47 | call to method Parse | this | FormatInvalid.cs:140:22:140:47 | call to method Parse | this |
|
||||
@@ -264,8 +264,8 @@ nodes
|
||||
| FormatInvalid.cs:112:23:112:25 | "}" | semmle.label | "}" |
|
||||
| FormatInvalid.cs:113:23:113:25 | "}" | semmle.label | "}" |
|
||||
| FormatInvalid.cs:113:23:113:25 | "}" | semmle.label | "}" |
|
||||
| FormatInvalid.cs:118:56:118:58 | "}" | semmle.label | "}" |
|
||||
| FormatInvalid.cs:118:56:118:58 | "}" | semmle.label | "}" |
|
||||
| FormatInvalid.cs:118:56:118:58 | [assertion success] "}" | semmle.label | [assertion success] "}" |
|
||||
| FormatInvalid.cs:118:56:118:58 | [assertion success] "}" | semmle.label | [assertion success] "}" |
|
||||
| FormatInvalid.cs:119:18:119:20 | "}" | semmle.label | "}" |
|
||||
| FormatInvalid.cs:119:18:119:20 | "}" | semmle.label | "}" |
|
||||
| FormatInvalid.cs:120:40:120:42 | "}" | semmle.label | "}" |
|
||||
|
||||
@@ -74,7 +74,7 @@ public class C
|
||||
|
||||
public void TestNull()
|
||||
{
|
||||
object o = Maybe() ? null : new object();
|
||||
object o = null;
|
||||
if (IsNotNull(o))
|
||||
o.ToString(); // GOOD
|
||||
|
||||
|
||||
@@ -190,12 +190,12 @@
|
||||
| E.cs:83:13:83:24 | ... != ... | false | E.cs:83:21:83:24 | null | E.cs:83:13:83:16 | access to parameter vals |
|
||||
| E.cs:85:18:85:29 | ... != ... | false | E.cs:85:18:85:21 | access to parameter vals | E.cs:85:26:85:29 | null |
|
||||
| E.cs:85:18:85:29 | ... != ... | false | E.cs:85:26:85:29 | null | E.cs:85:18:85:21 | access to parameter vals |
|
||||
| E.cs:92:13:92:28 | case ...: | true | E.cs:90:17:90:27 | access to local variable switchguard | E.cs:92:18:92:27 | access to constant MY_CONST_A |
|
||||
| E.cs:92:13:92:28 | case ...: | true | E.cs:92:18:92:27 | access to constant MY_CONST_A | E.cs:90:17:90:27 | access to local variable switchguard |
|
||||
| E.cs:95:13:95:28 | case ...: | true | E.cs:90:17:90:27 | access to local variable switchguard | E.cs:95:18:95:27 | access to constant MY_CONST_C |
|
||||
| E.cs:95:13:95:28 | case ...: | true | E.cs:95:18:95:27 | access to constant MY_CONST_C | E.cs:90:17:90:27 | access to local variable switchguard |
|
||||
| E.cs:97:13:97:28 | case ...: | true | E.cs:90:17:90:27 | access to local variable switchguard | E.cs:97:18:97:27 | access to constant MY_CONST_B |
|
||||
| E.cs:97:13:97:28 | case ...: | true | E.cs:97:18:97:27 | access to constant MY_CONST_B | E.cs:90:17:90:27 | access to local variable switchguard |
|
||||
| E.cs:90:17:90:27 | access to local variable switchguard | match access to constant MY_CONST_A | E.cs:90:17:90:27 | access to local variable switchguard | E.cs:92:18:92:27 | access to constant MY_CONST_A |
|
||||
| E.cs:90:17:90:27 | access to local variable switchguard | match access to constant MY_CONST_A | E.cs:92:18:92:27 | access to constant MY_CONST_A | E.cs:90:17:90:27 | access to local variable switchguard |
|
||||
| E.cs:90:17:90:27 | access to local variable switchguard | match access to constant MY_CONST_B | E.cs:90:17:90:27 | access to local variable switchguard | E.cs:97:18:97:27 | access to constant MY_CONST_B |
|
||||
| E.cs:90:17:90:27 | access to local variable switchguard | match access to constant MY_CONST_B | E.cs:97:18:97:27 | access to constant MY_CONST_B | E.cs:90:17:90:27 | access to local variable switchguard |
|
||||
| E.cs:90:17:90:27 | access to local variable switchguard | match access to constant MY_CONST_C | E.cs:90:17:90:27 | access to local variable switchguard | E.cs:95:18:95:27 | access to constant MY_CONST_C |
|
||||
| E.cs:90:17:90:27 | access to local variable switchguard | match access to constant MY_CONST_C | E.cs:95:18:95:27 | access to constant MY_CONST_C | E.cs:90:17:90:27 | access to local variable switchguard |
|
||||
| E.cs:126:21:126:29 | ... == ... | true | E.cs:126:21:126:24 | access to local variable step | E.cs:126:29:126:29 | 0 |
|
||||
| E.cs:126:21:126:29 | ... == ... | true | E.cs:126:29:126:29 | 0 | E.cs:126:21:126:24 | access to local variable step |
|
||||
| E.cs:153:13:153:24 | ... != ... | false | E.cs:153:13:153:16 | access to local variable obj2 | E.cs:153:21:153:24 | null |
|
||||
@@ -252,8 +252,6 @@
|
||||
| E.cs:442:13:442:18 | ... == ... | true | E.cs:442:18:442:18 | 1 | E.cs:442:13:442:13 | access to parameter i |
|
||||
| E.cs:447:13:447:18 | ... == ... | true | E.cs:447:13:447:13 | access to parameter i | E.cs:447:18:447:18 | 2 |
|
||||
| E.cs:447:13:447:18 | ... == ... | true | E.cs:447:18:447:18 | 2 | E.cs:447:13:447:13 | access to parameter i |
|
||||
| E.cs:447:23:447:35 | ... is ... | false | E.cs:447:23:447:23 | access to parameter s | E.cs:447:32:447:35 | null |
|
||||
| E.cs:447:23:447:35 | ... is ... | false | E.cs:447:32:447:35 | null | E.cs:447:23:447:23 | access to parameter s |
|
||||
| E.cs:452:13:452:18 | ... == ... | true | E.cs:452:13:452:13 | access to parameter i | E.cs:452:18:452:18 | 3 |
|
||||
| E.cs:452:13:452:18 | ... == ... | true | E.cs:452:18:452:18 | 3 | E.cs:452:13:452:13 | access to parameter i |
|
||||
| Forwarding.cs:59:13:59:21 | ... == ... | true | Forwarding.cs:59:13:59:13 | access to parameter o | Forwarding.cs:59:18:59:21 | null |
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import csharp
|
||||
import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
from Guard guard, Expr e1, Expr e2, boolean eqval
|
||||
where guard.isEquality(e1, e2, eqval)
|
||||
select guard, eqval, e1, e2
|
||||
from Expr e1, AbstractValue v, Expr e2
|
||||
select Internal::getAnEqualityCheck(e1, v, e2), v, e1, e2
|
||||
|
||||
@@ -28,7 +28,7 @@ class ForwardingTests
|
||||
|
||||
if (IsNotNull(s))
|
||||
{
|
||||
Console.WriteLine(s.Length); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-is-always-null]
|
||||
Console.WriteLine(s.Length); // GOOD
|
||||
}
|
||||
|
||||
if (IsNotNullWrong(s))
|
||||
|
||||
1509
csharp/ql/test/query-tests/Nullness/Implications.expected
Normal file
1509
csharp/ql/test/query-tests/Nullness/Implications.expected
Normal file
File diff suppressed because it is too large
Load Diff
8
csharp/ql/test/query-tests/Nullness/Implications.ql
Normal file
8
csharp/ql/test/query-tests/Nullness/Implications.ql
Normal file
@@ -0,0 +1,8 @@
|
||||
import csharp
|
||||
import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
query predicate impliesStep(Expr e1, AbstractValue v1, Expr e2, AbstractValue v2) {
|
||||
e1.fromSource() and
|
||||
e2.fromSource() and
|
||||
Internal::impliesStep(e1, v1, e2, v2)
|
||||
}
|
||||
@@ -37,7 +37,6 @@
|
||||
| E.cs:405:16:405:16 | access to local variable i | Variable $@ is always null at this dereference. | E.cs:403:14:403:14 | i | i |
|
||||
| E.cs:439:13:439:13 | access to parameter s | Variable $@ is always null at this dereference. | E.cs:435:29:435:29 | s | s |
|
||||
| F.cs:8:9:8:9 | access to local variable o | Variable $@ is always null at this dereference. | F.cs:7:16:7:16 | o | o |
|
||||
| Forwarding.cs:31:31:31:31 | access to local variable s | Variable $@ is always null at this dereference. | Forwarding.cs:7:16:7:16 | s | s |
|
||||
| Forwarding.cs:36:31:36:31 | access to local variable s | Variable $@ is always null at this dereference. | Forwarding.cs:7:16:7:16 | s | s |
|
||||
| Forwarding.cs:40:27:40:27 | access to local variable s | Variable $@ is always null at this dereference. | Forwarding.cs:7:16:7:16 | s | s |
|
||||
| NullAlwaysBad.cs:9:30:9:30 | access to parameter s | Variable $@ is always null at this dereference. | NullAlwaysBad.cs:7:29:7:29 | s | s |
|
||||
|
||||
@@ -1,149 +1,356 @@
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:22 | access to local variable s |
|
||||
| Assert.cs:22:23:22:31 | ... == ... | Assert.cs:22:23:22:23 | access to local variable s |
|
||||
| Assert.cs:26:23:26:31 | ... != ... | Assert.cs:26:23:26:23 | access to local variable s |
|
||||
| Assert.cs:30:24:30:32 | ... != ... | Assert.cs:30:24:30:24 | access to local variable s |
|
||||
| Assert.cs:34:24:34:32 | ... == ... | Assert.cs:34:24:34:24 | access to local variable s |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:23 | access to local variable s |
|
||||
| Assert.cs:42:24:42:32 | ... == ... | Assert.cs:42:24:42:24 | access to local variable s |
|
||||
| Assert.cs:46:23:46:31 | ... == ... | Assert.cs:46:23:46:23 | access to local variable s |
|
||||
| Assert.cs:50:24:50:32 | ... != ... | Assert.cs:50:24:50:24 | access to local variable s |
|
||||
| B.cs:12:13:12:32 | call to operator == | B.cs:12:13:12:24 | access to local variable eqCallAlways |
|
||||
| B.cs:12:13:12:32 | call to operator == | B.cs:12:29:12:32 | null |
|
||||
| B.cs:15:13:15:22 | call to operator != | B.cs:15:13:15:14 | access to local variable b2 |
|
||||
| B.cs:15:13:15:22 | call to operator != | B.cs:15:19:15:22 | null |
|
||||
| B.cs:18:13:18:22 | call to operator == | B.cs:18:13:18:14 | access to local variable b3 |
|
||||
| B.cs:18:13:18:22 | call to operator == | B.cs:18:19:18:22 | null |
|
||||
| B.cs:22:13:22:33 | call to operator != | B.cs:22:13:22:25 | access to local variable neqCallAlways |
|
||||
| B.cs:22:13:22:33 | call to operator != | B.cs:22:30:22:33 | null |
|
||||
| B.cs:53:17:53:33 | ... != ... | B.cs:53:17:53:25 | (...) ... |
|
||||
| B.cs:53:17:53:33 | ... != ... | B.cs:53:30:53:33 | null |
|
||||
| B.cs:55:26:55:36 | call to method Equals | B.cs:55:26:55:26 | access to local variable o |
|
||||
| B.cs:55:26:55:36 | call to method Equals | B.cs:55:35:55:35 | access to local variable o |
|
||||
| C.cs:11:19:11:27 | ... == ... | C.cs:11:19:11:19 | access to local variable o |
|
||||
| C.cs:11:19:11:27 | ... == ... | C.cs:11:24:11:27 | null |
|
||||
| C.cs:16:15:16:23 | ... != ... | C.cs:16:15:16:15 | access to local variable o |
|
||||
| C.cs:16:15:16:23 | ... != ... | C.cs:16:20:16:23 | null |
|
||||
| C.cs:24:13:24:21 | ... != ... | C.cs:24:13:24:13 | access to parameter o |
|
||||
| C.cs:28:37:28:45 | ... == ... | C.cs:28:37:28:37 | access to parameter o |
|
||||
| C.cs:30:40:30:48 | ... != ... | C.cs:30:40:30:40 | access to parameter o |
|
||||
| C.cs:34:13:34:21 | ... == ... | C.cs:34:13:34:13 | access to parameter o |
|
||||
| C.cs:41:22:41:30 | ... == ... | C.cs:41:22:41:22 | access to local variable s |
|
||||
| C.cs:45:22:45:30 | ... != ... | C.cs:45:22:45:22 | access to local variable s |
|
||||
| C.cs:78:13:78:24 | call to method IsNotNull | C.cs:78:23:78:23 | access to local variable o |
|
||||
| C.cs:81:14:81:22 | call to method IsNull | C.cs:81:21:81:21 | access to local variable o |
|
||||
| C.cs:113:22:113:36 | ... == ... | C.cs:113:22:113:28 | access to local variable colours |
|
||||
| C.cs:113:22:113:36 | ... == ... | C.cs:113:33:113:36 | null |
|
||||
| C.cs:120:13:120:28 | ... == ... | C.cs:120:13:120:20 | access to local variable children |
|
||||
| C.cs:120:13:120:28 | ... == ... | C.cs:120:25:120:28 | null |
|
||||
| C.cs:129:13:129:38 | ... == ... | C.cs:129:14:129:29 | ... = ... |
|
||||
| C.cs:129:13:129:38 | ... == ... | C.cs:129:35:129:38 | null |
|
||||
| C.cs:145:13:145:39 | ... != ... | C.cs:145:14:145:30 | ... = ... |
|
||||
| C.cs:145:13:145:39 | ... != ... | C.cs:145:36:145:39 | null |
|
||||
| C.cs:157:16:157:24 | ... != ... | C.cs:157:16:157:16 | access to local variable s |
|
||||
| C.cs:157:16:157:24 | ... != ... | C.cs:157:21:157:24 | null |
|
||||
| C.cs:165:16:165:24 | ... != ... | C.cs:165:16:165:16 | access to local variable s |
|
||||
| C.cs:165:16:165:24 | ... != ... | C.cs:165:21:165:24 | null |
|
||||
| C.cs:172:16:172:24 | ... != ... | C.cs:172:16:172:16 | access to local variable s |
|
||||
| C.cs:172:16:172:24 | ... != ... | C.cs:172:21:172:24 | null |
|
||||
| C.cs:186:16:186:24 | ... != ... | C.cs:186:16:186:16 | access to local variable s |
|
||||
| C.cs:211:13:211:21 | ... != ... | C.cs:211:13:211:13 | access to local variable s |
|
||||
| C.cs:217:13:217:21 | ... == ... | C.cs:217:13:217:13 | access to local variable s |
|
||||
| C.cs:229:22:229:30 | ... != ... | C.cs:229:22:229:22 | access to local variable s |
|
||||
| C.cs:235:24:235:32 | ... == ... | C.cs:235:24:235:24 | access to local variable s |
|
||||
| C.cs:235:24:235:32 | ... == ... | C.cs:235:29:235:32 | null |
|
||||
| D.cs:28:13:28:25 | ... != ... | D.cs:28:13:28:17 | access to parameter param |
|
||||
| D.cs:38:13:38:21 | ... == ... | D.cs:38:13:38:13 | access to parameter x |
|
||||
| D.cs:39:16:39:24 | ... == ... | D.cs:39:16:39:16 | access to parameter x |
|
||||
| D.cs:45:13:45:22 | ... != ... | D.cs:45:13:45:14 | access to local variable o1 |
|
||||
| D.cs:48:13:48:24 | ... is ... | D.cs:48:13:48:14 | access to local variable o2 |
|
||||
| D.cs:51:13:51:44 | ... != ... | D.cs:51:14:51:35 | ... = ... |
|
||||
| D.cs:55:23:55:32 | ... != ... | D.cs:55:23:55:24 | access to local variable o4 |
|
||||
| D.cs:58:19:58:28 | ... != ... | D.cs:58:19:58:20 | access to local variable o4 |
|
||||
| D.cs:59:13:59:22 | ... != ... | D.cs:59:13:59:14 | access to local variable o5 |
|
||||
| D.cs:61:13:61:22 | ... != ... | D.cs:61:13:61:14 | access to local variable o4 |
|
||||
| D.cs:65:14:65:29 | call to method CustomIsNull | D.cs:65:27:65:28 | access to local variable o6 |
|
||||
| D.cs:69:18:69:27 | ... != ... | D.cs:69:18:69:19 | access to local variable o7 |
|
||||
| D.cs:76:21:76:30 | ... == ... | D.cs:76:21:76:22 | access to local variable o8 |
|
||||
| D.cs:110:26:110:35 | ... != ... | D.cs:110:26:110:27 | access to local variable xs |
|
||||
| D.cs:118:13:118:21 | ... == ... | D.cs:118:13:118:13 | access to local variable x |
|
||||
| D.cs:119:13:119:21 | ... == ... | D.cs:119:13:119:13 | access to local variable x |
|
||||
| D.cs:127:20:127:28 | ... == ... | D.cs:127:20:127:20 | access to parameter a |
|
||||
| D.cs:128:20:128:28 | ... == ... | D.cs:128:20:128:20 | access to parameter b |
|
||||
| D.cs:139:13:139:21 | ... != ... | D.cs:139:13:139:13 | access to parameter a |
|
||||
| D.cs:152:17:152:27 | ... != ... | D.cs:152:17:152:19 | access to parameter obj |
|
||||
| D.cs:206:17:206:25 | ... == ... | D.cs:206:17:206:17 | access to local variable e |
|
||||
| D.cs:212:18:212:26 | ... == ... | D.cs:212:18:212:18 | access to local variable n |
|
||||
| D.cs:212:18:212:26 | ... == ... | D.cs:212:23:212:26 | null |
|
||||
| D.cs:242:13:242:25 | ... == ... | D.cs:242:13:242:17 | access to local variable other |
|
||||
| D.cs:244:13:244:25 | ... != ... | D.cs:244:13:244:17 | access to local variable other |
|
||||
| D.cs:336:13:336:23 | ... == ... | D.cs:336:13:336:15 | access to parameter obj |
|
||||
| D.cs:341:13:341:23 | ... != ... | D.cs:341:13:341:15 | access to local variable msg |
|
||||
| D.cs:367:27:367:35 | ... == ... | D.cs:367:27:367:27 | access to local variable b |
|
||||
| D.cs:382:13:382:23 | ... != ... | D.cs:382:13:382:15 | access to local variable ioe |
|
||||
| D.cs:390:20:390:28 | ... == ... | D.cs:390:20:390:20 | access to parameter a |
|
||||
| D.cs:397:20:397:28 | ... == ... | D.cs:397:20:397:20 | access to parameter b |
|
||||
| D.cs:407:14:407:22 | ... != ... | D.cs:407:14:407:14 | access to parameter x |
|
||||
| D.cs:407:27:407:35 | ... == ... | D.cs:407:27:407:27 | access to parameter y |
|
||||
| D.cs:407:42:407:50 | ... == ... | D.cs:407:42:407:42 | access to parameter x |
|
||||
| D.cs:407:55:407:63 | ... != ... | D.cs:407:55:407:55 | access to parameter y |
|
||||
| D.cs:409:13:409:21 | ... != ... | D.cs:409:13:409:13 | access to parameter x |
|
||||
| D.cs:411:13:411:21 | ... != ... | D.cs:411:13:411:13 | access to parameter y |
|
||||
| E.cs:10:34:10:54 | ... != ... | E.cs:10:35:10:45 | ... = ... |
|
||||
| E.cs:12:32:12:52 | ... != ... | E.cs:12:33:12:43 | ... = ... |
|
||||
| E.cs:20:19:20:28 | ... == ... | E.cs:20:19:20:20 | access to local variable s1 |
|
||||
| E.cs:21:13:21:22 | ... == ... | E.cs:21:13:21:14 | access to local variable s2 |
|
||||
| E.cs:24:19:24:28 | ... == ... | E.cs:24:19:24:20 | access to local variable s1 |
|
||||
| E.cs:26:13:26:22 | ... != ... | E.cs:26:13:26:14 | access to local variable s2 |
|
||||
| E.cs:70:22:70:32 | ... == ... | E.cs:70:22:70:24 | access to parameter arr |
|
||||
| E.cs:83:13:83:24 | ... != ... | E.cs:83:13:83:16 | access to parameter vals |
|
||||
| E.cs:85:18:85:29 | ... != ... | E.cs:85:18:85:21 | access to parameter vals |
|
||||
| E.cs:153:13:153:24 | ... != ... | E.cs:153:13:153:16 | access to local variable obj2 |
|
||||
| E.cs:164:17:164:25 | ... == ... | E.cs:164:17:164:17 | access to parameter a |
|
||||
| E.cs:175:19:175:29 | ... == ... | E.cs:175:19:175:21 | access to parameter obj |
|
||||
| E.cs:180:13:180:23 | ... == ... | E.cs:180:13:180:15 | access to parameter obj |
|
||||
| E.cs:193:17:193:17 | access to parameter o | E.cs:193:17:193:17 | access to parameter o |
|
||||
| E.cs:208:13:208:23 | ... is ... | E.cs:208:13:208:13 | access to parameter s |
|
||||
| E.cs:245:13:245:22 | access to property HasValue | E.cs:245:13:245:13 | access to parameter i |
|
||||
| E.cs:252:13:252:21 | ... != ... | E.cs:252:13:252:13 | access to parameter i |
|
||||
| E.cs:259:13:259:21 | ... == ... | E.cs:259:13:259:13 | access to parameter i |
|
||||
| E.cs:274:17:274:25 | ... != ... | E.cs:274:17:274:17 | access to local variable o |
|
||||
| E.cs:284:9:284:9 | access to local variable o | E.cs:284:9:284:9 | access to local variable o |
|
||||
| E.cs:293:13:293:13 | access to local variable s | E.cs:293:13:293:13 | access to local variable s |
|
||||
| E.cs:306:31:306:31 | access to field l | E.cs:306:31:306:31 | access to field l |
|
||||
| E.cs:309:13:309:22 | access to property HasValue | E.cs:309:13:309:13 | access to field l |
|
||||
| E.cs:321:13:321:30 | ... is ... | E.cs:321:14:321:21 | ... ?? ... |
|
||||
| E.cs:321:14:321:15 | access to parameter s1 | E.cs:321:14:321:15 | access to parameter s1 |
|
||||
| E.cs:330:17:330:28 | (...) ... | E.cs:330:17:330:28 | (...) ... |
|
||||
| E.cs:336:17:336:17 | access to parameter s | E.cs:336:17:336:17 | access to parameter s |
|
||||
| E.cs:342:17:342:17 | access to parameter s | E.cs:342:17:342:17 | access to parameter s |
|
||||
| E.cs:348:21:348:21 | access to parameter s | E.cs:348:21:348:21 | access to parameter s |
|
||||
| E.cs:354:21:354:21 | access to parameter s | E.cs:354:21:354:21 | access to parameter s |
|
||||
| E.cs:355:13:355:21 | dynamic call to operator != | E.cs:355:13:355:13 | access to local variable x |
|
||||
| E.cs:361:17:361:17 | access to parameter s | E.cs:361:17:361:17 | access to parameter s |
|
||||
| E.cs:362:13:362:29 | ... != ... | E.cs:362:13:362:13 | access to local variable x |
|
||||
| E.cs:382:14:382:23 | ... == ... | E.cs:382:14:382:15 | access to parameter e1 |
|
||||
| E.cs:382:28:382:37 | ... != ... | E.cs:382:28:382:29 | access to parameter e2 |
|
||||
| E.cs:382:44:382:53 | ... != ... | E.cs:382:44:382:45 | access to parameter e1 |
|
||||
| E.cs:382:58:382:67 | ... == ... | E.cs:382:58:382:59 | access to parameter e2 |
|
||||
| E.cs:384:13:384:22 | ... == ... | E.cs:384:13:384:14 | access to parameter e1 |
|
||||
| E.cs:384:27:384:36 | ... == ... | E.cs:384:27:384:28 | access to parameter e2 |
|
||||
| E.cs:391:9:391:9 | access to parameter i | E.cs:391:9:391:9 | access to parameter i |
|
||||
| E.cs:397:9:397:13 | access to parameter color | E.cs:397:9:397:13 | access to parameter color |
|
||||
| E.cs:404:9:404:9 | access to local variable i | E.cs:404:9:404:9 | access to local variable i |
|
||||
| E.cs:422:13:422:22 | access to property HasValue | E.cs:422:13:422:13 | access to parameter i |
|
||||
| E.cs:429:13:429:22 | access to property HasValue | E.cs:429:13:429:13 | access to parameter i |
|
||||
| E.cs:437:23:437:31 | ... is ... | E.cs:437:23:437:23 | access to parameter s |
|
||||
| E.cs:447:23:447:35 | ... is ... | E.cs:447:23:447:23 | access to parameter s |
|
||||
| Forwarding.cs:45:66:45:75 | call to method IsNull | Forwarding.cs:45:66:45:66 | access to parameter o |
|
||||
| Forwarding.cs:59:13:59:21 | ... == ... | Forwarding.cs:59:13:59:13 | access to parameter o |
|
||||
| Forwarding.cs:78:16:78:39 | call to method ReferenceEquals | Forwarding.cs:78:32:78:32 | access to parameter o |
|
||||
| Forwarding.cs:83:16:83:24 | ... != ... | Forwarding.cs:83:16:83:16 | access to parameter o |
|
||||
| GuardedString.cs:19:13:19:13 | access to local variable s | GuardedString.cs:19:13:19:13 | access to local variable s |
|
||||
| GuardedString.cs:22:13:22:13 | access to local variable s | GuardedString.cs:22:13:22:13 | access to local variable s |
|
||||
| GuardedString.cs:25:13:25:13 | access to local variable s | GuardedString.cs:25:13:25:13 | access to local variable s |
|
||||
| GuardedString.cs:28:13:28:13 | access to local variable s | GuardedString.cs:28:13:28:13 | access to local variable s |
|
||||
| GuardedString.cs:31:13:31:13 | access to local variable s | GuardedString.cs:31:13:31:13 | access to local variable s |
|
||||
| GuardedString.cs:34:13:34:13 | access to local variable s | GuardedString.cs:34:13:34:13 | access to local variable s |
|
||||
| NullAlwaysBad.cs:9:17:9:25 | ... != ... | NullAlwaysBad.cs:9:17:9:17 | access to parameter s |
|
||||
| NullAlwaysGood.cs:9:17:9:25 | ... != ... | NullAlwaysGood.cs:9:17:9:17 | access to parameter s |
|
||||
| NullMaybeGood.cs:7:13:7:21 | ... != ... | NullMaybeGood.cs:7:13:7:13 | access to parameter o |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:22 | access to local variable s | false | true |
|
||||
| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:22 | access to local variable s | true | false |
|
||||
| Assert.cs:14:23:14:23 | access to local variable s | Assert.cs:14:23:14:23 | access to local variable s | non-null | false |
|
||||
| Assert.cs:14:23:14:23 | access to local variable s | Assert.cs:14:23:14:23 | access to local variable s | null | true |
|
||||
| Assert.cs:18:26:18:26 | access to local variable s | Assert.cs:18:26:18:26 | access to local variable s | non-null | false |
|
||||
| Assert.cs:18:26:18:26 | access to local variable s | Assert.cs:18:26:18:26 | access to local variable s | null | true |
|
||||
| Assert.cs:22:23:22:31 | ... == ... | Assert.cs:22:23:22:23 | access to local variable s | false | false |
|
||||
| Assert.cs:22:23:22:31 | ... == ... | Assert.cs:22:23:22:23 | access to local variable s | true | true |
|
||||
| Assert.cs:26:23:26:31 | ... != ... | Assert.cs:26:23:26:23 | access to local variable s | false | true |
|
||||
| Assert.cs:26:23:26:31 | ... != ... | Assert.cs:26:23:26:23 | access to local variable s | true | false |
|
||||
| Assert.cs:30:24:30:32 | ... != ... | Assert.cs:30:24:30:24 | access to local variable s | false | true |
|
||||
| Assert.cs:30:24:30:32 | ... != ... | Assert.cs:30:24:30:24 | access to local variable s | true | false |
|
||||
| Assert.cs:34:24:34:32 | ... == ... | Assert.cs:34:24:34:24 | access to local variable s | false | false |
|
||||
| Assert.cs:34:24:34:32 | ... == ... | Assert.cs:34:24:34:24 | access to local variable s | true | true |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:23 | access to local variable s | false | true |
|
||||
| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:23 | access to local variable s | true | false |
|
||||
| Assert.cs:42:24:42:32 | ... == ... | Assert.cs:42:24:42:24 | access to local variable s | false | false |
|
||||
| Assert.cs:42:24:42:32 | ... == ... | Assert.cs:42:24:42:24 | access to local variable s | true | true |
|
||||
| Assert.cs:46:23:46:31 | ... == ... | Assert.cs:46:23:46:23 | access to local variable s | false | false |
|
||||
| Assert.cs:46:23:46:31 | ... == ... | Assert.cs:46:23:46:23 | access to local variable s | true | true |
|
||||
| Assert.cs:50:24:50:32 | ... != ... | Assert.cs:50:24:50:24 | access to local variable s | false | true |
|
||||
| Assert.cs:50:24:50:32 | ... != ... | Assert.cs:50:24:50:24 | access to local variable s | true | false |
|
||||
| B.cs:12:13:12:32 | call to operator == | B.cs:12:13:12:24 | access to local variable eqCallAlways | false | false |
|
||||
| B.cs:12:13:12:32 | call to operator == | B.cs:12:13:12:24 | access to local variable eqCallAlways | true | true |
|
||||
| B.cs:12:13:12:32 | call to operator == | B.cs:12:29:12:32 | null | false | false |
|
||||
| B.cs:12:13:12:32 | call to operator == | B.cs:12:29:12:32 | null | true | true |
|
||||
| B.cs:15:13:15:22 | call to operator != | B.cs:15:13:15:14 | access to local variable b2 | false | true |
|
||||
| B.cs:15:13:15:22 | call to operator != | B.cs:15:13:15:14 | access to local variable b2 | true | false |
|
||||
| B.cs:15:13:15:22 | call to operator != | B.cs:15:19:15:22 | null | false | true |
|
||||
| B.cs:15:13:15:22 | call to operator != | B.cs:15:19:15:22 | null | true | false |
|
||||
| B.cs:18:13:18:22 | call to operator == | B.cs:18:13:18:14 | access to local variable b3 | false | false |
|
||||
| B.cs:18:13:18:22 | call to operator == | B.cs:18:13:18:14 | access to local variable b3 | true | true |
|
||||
| B.cs:18:13:18:22 | call to operator == | B.cs:18:19:18:22 | null | false | false |
|
||||
| B.cs:18:13:18:22 | call to operator == | B.cs:18:19:18:22 | null | true | true |
|
||||
| B.cs:22:13:22:33 | call to operator != | B.cs:22:13:22:25 | access to local variable neqCallAlways | false | true |
|
||||
| B.cs:22:13:22:33 | call to operator != | B.cs:22:13:22:25 | access to local variable neqCallAlways | true | false |
|
||||
| B.cs:22:13:22:33 | call to operator != | B.cs:22:30:22:33 | null | false | true |
|
||||
| B.cs:22:13:22:33 | call to operator != | B.cs:22:30:22:33 | null | true | false |
|
||||
| B.cs:53:17:53:33 | ... != ... | B.cs:53:17:53:25 | (...) ... | false | true |
|
||||
| B.cs:53:17:53:33 | ... != ... | B.cs:53:17:53:25 | (...) ... | true | false |
|
||||
| B.cs:53:17:53:33 | ... != ... | B.cs:53:30:53:33 | null | false | true |
|
||||
| B.cs:53:17:53:33 | ... != ... | B.cs:53:30:53:33 | null | true | false |
|
||||
| B.cs:55:26:55:36 | call to method Equals | B.cs:55:26:55:26 | access to local variable o | false | false |
|
||||
| B.cs:55:26:55:36 | call to method Equals | B.cs:55:26:55:26 | access to local variable o | true | true |
|
||||
| B.cs:55:26:55:36 | call to method Equals | B.cs:55:35:55:35 | access to local variable o | false | false |
|
||||
| B.cs:55:26:55:36 | call to method Equals | B.cs:55:35:55:35 | access to local variable o | true | true |
|
||||
| C.cs:11:19:11:27 | ... == ... | C.cs:11:19:11:19 | access to local variable o | false | false |
|
||||
| C.cs:11:19:11:27 | ... == ... | C.cs:11:19:11:19 | access to local variable o | true | true |
|
||||
| C.cs:11:19:11:27 | ... == ... | C.cs:11:24:11:27 | null | false | false |
|
||||
| C.cs:11:19:11:27 | ... == ... | C.cs:11:24:11:27 | null | true | true |
|
||||
| C.cs:16:15:16:23 | ... != ... | C.cs:16:15:16:15 | access to local variable o | false | true |
|
||||
| C.cs:16:15:16:23 | ... != ... | C.cs:16:15:16:15 | access to local variable o | true | false |
|
||||
| C.cs:16:15:16:23 | ... != ... | C.cs:16:20:16:23 | null | false | true |
|
||||
| C.cs:16:15:16:23 | ... != ... | C.cs:16:20:16:23 | null | true | false |
|
||||
| C.cs:24:13:24:21 | ... != ... | C.cs:24:13:24:13 | access to parameter o | false | true |
|
||||
| C.cs:24:13:24:21 | ... != ... | C.cs:24:13:24:13 | access to parameter o | true | false |
|
||||
| C.cs:28:37:28:45 | ... == ... | C.cs:28:37:28:37 | access to parameter o | false | false |
|
||||
| C.cs:28:37:28:45 | ... == ... | C.cs:28:37:28:37 | access to parameter o | true | true |
|
||||
| C.cs:30:40:30:48 | ... != ... | C.cs:30:40:30:40 | access to parameter o | false | true |
|
||||
| C.cs:30:40:30:48 | ... != ... | C.cs:30:40:30:40 | access to parameter o | true | false |
|
||||
| C.cs:34:13:34:21 | ... == ... | C.cs:34:13:34:13 | access to parameter o | false | false |
|
||||
| C.cs:34:13:34:21 | ... == ... | C.cs:34:13:34:13 | access to parameter o | true | true |
|
||||
| C.cs:41:22:41:30 | ... == ... | C.cs:41:22:41:22 | access to local variable s | false | false |
|
||||
| C.cs:41:22:41:30 | ... == ... | C.cs:41:22:41:22 | access to local variable s | true | true |
|
||||
| C.cs:45:22:45:30 | ... != ... | C.cs:45:22:45:22 | access to local variable s | false | true |
|
||||
| C.cs:45:22:45:30 | ... != ... | C.cs:45:22:45:22 | access to local variable s | true | false |
|
||||
| C.cs:56:23:56:24 | access to local variable o2 | C.cs:56:23:56:24 | access to local variable o2 | non-null | false |
|
||||
| C.cs:56:23:56:24 | access to local variable o2 | C.cs:56:23:56:24 | access to local variable o2 | null | true |
|
||||
| C.cs:71:26:71:27 | access to local variable o3 | C.cs:71:26:71:27 | access to local variable o3 | non-null | false |
|
||||
| C.cs:71:26:71:27 | access to local variable o3 | C.cs:71:26:71:27 | access to local variable o3 | null | true |
|
||||
| C.cs:78:13:78:24 | call to method IsNotNull | C.cs:78:23:78:23 | access to local variable o | false | true |
|
||||
| C.cs:78:13:78:24 | call to method IsNotNull | C.cs:78:23:78:23 | access to local variable o | true | false |
|
||||
| C.cs:81:14:81:22 | call to method IsNull | C.cs:81:21:81:21 | access to local variable o | false | false |
|
||||
| C.cs:81:14:81:22 | call to method IsNull | C.cs:81:21:81:21 | access to local variable o | true | true |
|
||||
| C.cs:88:13:88:23 | ... is ... | C.cs:88:13:88:13 | access to local variable o | true | false |
|
||||
| C.cs:113:22:113:36 | ... == ... | C.cs:113:22:113:28 | access to local variable colours | false | false |
|
||||
| C.cs:113:22:113:36 | ... == ... | C.cs:113:22:113:28 | access to local variable colours | true | true |
|
||||
| C.cs:113:22:113:36 | ... == ... | C.cs:113:33:113:36 | null | false | false |
|
||||
| C.cs:113:22:113:36 | ... == ... | C.cs:113:33:113:36 | null | true | true |
|
||||
| C.cs:120:13:120:28 | ... == ... | C.cs:120:13:120:20 | access to local variable children | false | false |
|
||||
| C.cs:120:13:120:28 | ... == ... | C.cs:120:13:120:20 | access to local variable children | true | true |
|
||||
| C.cs:120:13:120:28 | ... == ... | C.cs:120:25:120:28 | null | false | false |
|
||||
| C.cs:120:13:120:28 | ... == ... | C.cs:120:25:120:28 | null | true | true |
|
||||
| C.cs:129:13:129:38 | ... == ... | C.cs:129:14:129:29 | ... = ... | false | false |
|
||||
| C.cs:129:13:129:38 | ... == ... | C.cs:129:14:129:29 | ... = ... | true | true |
|
||||
| C.cs:129:13:129:38 | ... == ... | C.cs:129:35:129:38 | null | false | false |
|
||||
| C.cs:129:13:129:38 | ... == ... | C.cs:129:35:129:38 | null | true | true |
|
||||
| C.cs:145:13:145:39 | ... != ... | C.cs:145:14:145:30 | ... = ... | false | true |
|
||||
| C.cs:145:13:145:39 | ... != ... | C.cs:145:14:145:30 | ... = ... | true | false |
|
||||
| C.cs:145:13:145:39 | ... != ... | C.cs:145:36:145:39 | null | false | true |
|
||||
| C.cs:145:13:145:39 | ... != ... | C.cs:145:36:145:39 | null | true | false |
|
||||
| C.cs:157:16:157:24 | ... != ... | C.cs:157:16:157:16 | access to local variable s | false | true |
|
||||
| C.cs:157:16:157:24 | ... != ... | C.cs:157:16:157:16 | access to local variable s | true | false |
|
||||
| C.cs:157:16:157:24 | ... != ... | C.cs:157:21:157:24 | null | false | true |
|
||||
| C.cs:157:16:157:24 | ... != ... | C.cs:157:21:157:24 | null | true | false |
|
||||
| C.cs:165:16:165:24 | ... != ... | C.cs:165:16:165:16 | access to local variable s | false | true |
|
||||
| C.cs:165:16:165:24 | ... != ... | C.cs:165:16:165:16 | access to local variable s | true | false |
|
||||
| C.cs:165:16:165:24 | ... != ... | C.cs:165:21:165:24 | null | false | true |
|
||||
| C.cs:165:16:165:24 | ... != ... | C.cs:165:21:165:24 | null | true | false |
|
||||
| C.cs:172:16:172:24 | ... != ... | C.cs:172:16:172:16 | access to local variable s | false | true |
|
||||
| C.cs:172:16:172:24 | ... != ... | C.cs:172:16:172:16 | access to local variable s | true | false |
|
||||
| C.cs:172:16:172:24 | ... != ... | C.cs:172:21:172:24 | null | false | true |
|
||||
| C.cs:172:16:172:24 | ... != ... | C.cs:172:21:172:24 | null | true | false |
|
||||
| C.cs:186:16:186:24 | ... != ... | C.cs:186:16:186:16 | access to local variable s | false | true |
|
||||
| C.cs:186:16:186:24 | ... != ... | C.cs:186:16:186:16 | access to local variable s | true | false |
|
||||
| C.cs:211:13:211:21 | ... != ... | C.cs:211:13:211:13 | access to local variable s | false | true |
|
||||
| C.cs:211:13:211:21 | ... != ... | C.cs:211:13:211:13 | access to local variable s | true | false |
|
||||
| C.cs:217:13:217:21 | ... == ... | C.cs:217:13:217:13 | access to local variable s | false | false |
|
||||
| C.cs:217:13:217:21 | ... == ... | C.cs:217:13:217:13 | access to local variable s | true | true |
|
||||
| C.cs:221:13:221:21 | ... != ... | C.cs:221:13:221:13 | access to local variable s | false | true |
|
||||
| C.cs:221:13:221:21 | ... != ... | C.cs:221:13:221:13 | access to local variable s | true | false |
|
||||
| C.cs:221:13:221:21 | ... != ... | C.cs:221:18:221:21 | null | false | false |
|
||||
| C.cs:229:22:229:30 | ... != ... | C.cs:229:22:229:22 | access to local variable s | false | true |
|
||||
| C.cs:229:22:229:30 | ... != ... | C.cs:229:22:229:22 | access to local variable s | true | false |
|
||||
| C.cs:235:24:235:32 | ... == ... | C.cs:235:24:235:24 | access to local variable s | false | false |
|
||||
| C.cs:235:24:235:32 | ... == ... | C.cs:235:24:235:24 | access to local variable s | true | true |
|
||||
| C.cs:235:24:235:32 | ... == ... | C.cs:235:29:235:32 | null | false | false |
|
||||
| C.cs:235:24:235:32 | ... == ... | C.cs:235:29:235:32 | null | true | true |
|
||||
| D.cs:28:13:28:25 | ... != ... | D.cs:28:13:28:17 | access to parameter param | false | true |
|
||||
| D.cs:28:13:28:25 | ... != ... | D.cs:28:13:28:17 | access to parameter param | true | false |
|
||||
| D.cs:37:13:37:23 | ... is ... | D.cs:37:13:37:13 | access to parameter x | true | false |
|
||||
| D.cs:38:13:38:21 | ... == ... | D.cs:38:13:38:13 | access to parameter x | false | false |
|
||||
| D.cs:38:13:38:21 | ... == ... | D.cs:38:13:38:13 | access to parameter x | true | true |
|
||||
| D.cs:39:16:39:24 | ... == ... | D.cs:39:16:39:16 | access to parameter x | false | false |
|
||||
| D.cs:39:16:39:24 | ... == ... | D.cs:39:16:39:16 | access to parameter x | true | true |
|
||||
| D.cs:45:13:45:22 | ... != ... | D.cs:45:13:45:14 | access to local variable o1 | false | true |
|
||||
| D.cs:45:13:45:22 | ... != ... | D.cs:45:13:45:14 | access to local variable o1 | true | false |
|
||||
| D.cs:48:13:48:24 | ... is ... | D.cs:48:13:48:14 | access to local variable o2 | false | true |
|
||||
| D.cs:48:13:48:24 | ... is ... | D.cs:48:13:48:14 | access to local variable o2 | true | false |
|
||||
| D.cs:51:13:51:44 | ... != ... | D.cs:51:14:51:35 | ... = ... | false | true |
|
||||
| D.cs:51:13:51:44 | ... != ... | D.cs:51:14:51:35 | ... = ... | true | false |
|
||||
| D.cs:55:23:55:32 | ... != ... | D.cs:55:23:55:24 | access to local variable o4 | false | true |
|
||||
| D.cs:55:23:55:32 | ... != ... | D.cs:55:23:55:24 | access to local variable o4 | true | false |
|
||||
| D.cs:58:19:58:28 | ... != ... | D.cs:58:19:58:20 | access to local variable o4 | false | true |
|
||||
| D.cs:58:19:58:28 | ... != ... | D.cs:58:19:58:20 | access to local variable o4 | true | false |
|
||||
| D.cs:59:13:59:22 | ... != ... | D.cs:59:13:59:14 | access to local variable o5 | false | true |
|
||||
| D.cs:59:13:59:22 | ... != ... | D.cs:59:13:59:14 | access to local variable o5 | true | false |
|
||||
| D.cs:61:13:61:22 | ... != ... | D.cs:61:13:61:14 | access to local variable o4 | false | true |
|
||||
| D.cs:61:13:61:22 | ... != ... | D.cs:61:13:61:14 | access to local variable o4 | true | false |
|
||||
| D.cs:65:14:65:29 | call to method CustomIsNull | D.cs:65:27:65:28 | access to local variable o6 | false | false |
|
||||
| D.cs:65:14:65:29 | call to method CustomIsNull | D.cs:65:27:65:28 | access to local variable o6 | true | true |
|
||||
| D.cs:69:18:69:27 | ... != ... | D.cs:69:18:69:19 | access to local variable o7 | false | true |
|
||||
| D.cs:69:18:69:27 | ... != ... | D.cs:69:18:69:19 | access to local variable o7 | true | false |
|
||||
| D.cs:76:21:76:30 | ... == ... | D.cs:76:21:76:22 | access to local variable o8 | false | false |
|
||||
| D.cs:76:21:76:30 | ... == ... | D.cs:76:21:76:22 | access to local variable o8 | true | true |
|
||||
| D.cs:110:26:110:35 | ... != ... | D.cs:110:26:110:27 | access to local variable xs | false | true |
|
||||
| D.cs:110:26:110:35 | ... != ... | D.cs:110:26:110:27 | access to local variable xs | true | false |
|
||||
| D.cs:118:13:118:21 | ... == ... | D.cs:118:13:118:13 | access to local variable x | false | false |
|
||||
| D.cs:118:13:118:21 | ... == ... | D.cs:118:13:118:13 | access to local variable x | true | true |
|
||||
| D.cs:119:13:119:21 | ... == ... | D.cs:119:13:119:13 | access to local variable x | false | false |
|
||||
| D.cs:119:13:119:21 | ... == ... | D.cs:119:13:119:13 | access to local variable x | true | true |
|
||||
| D.cs:127:20:127:28 | ... == ... | D.cs:127:20:127:20 | access to parameter a | false | false |
|
||||
| D.cs:127:20:127:28 | ... == ... | D.cs:127:20:127:20 | access to parameter a | true | true |
|
||||
| D.cs:128:20:128:28 | ... == ... | D.cs:128:20:128:20 | access to parameter b | false | false |
|
||||
| D.cs:128:20:128:28 | ... == ... | D.cs:128:20:128:20 | access to parameter b | true | true |
|
||||
| D.cs:139:13:139:21 | ... != ... | D.cs:139:13:139:13 | access to parameter a | false | true |
|
||||
| D.cs:139:13:139:21 | ... != ... | D.cs:139:13:139:13 | access to parameter a | true | false |
|
||||
| D.cs:152:17:152:27 | ... != ... | D.cs:152:17:152:19 | access to parameter obj | false | true |
|
||||
| D.cs:152:17:152:27 | ... != ... | D.cs:152:17:152:19 | access to parameter obj | true | false |
|
||||
| D.cs:196:13:196:21 | ... == ... | D.cs:196:13:196:13 | access to local variable o | false | false |
|
||||
| D.cs:196:13:196:21 | ... == ... | D.cs:196:13:196:13 | access to local variable o | true | true |
|
||||
| D.cs:196:13:196:21 | ... == ... | D.cs:196:18:196:21 | null | true | false |
|
||||
| D.cs:206:17:206:25 | ... == ... | D.cs:206:17:206:17 | access to local variable e | false | false |
|
||||
| D.cs:206:17:206:25 | ... == ... | D.cs:206:17:206:17 | access to local variable e | true | true |
|
||||
| D.cs:212:18:212:26 | ... == ... | D.cs:212:18:212:18 | access to local variable n | false | false |
|
||||
| D.cs:212:18:212:26 | ... == ... | D.cs:212:18:212:18 | access to local variable n | true | true |
|
||||
| D.cs:212:18:212:26 | ... == ... | D.cs:212:23:212:26 | null | false | false |
|
||||
| D.cs:212:18:212:26 | ... == ... | D.cs:212:23:212:26 | null | true | true |
|
||||
| D.cs:216:13:216:22 | ... == ... | D.cs:216:13:216:14 | access to local variable o3 | false | false |
|
||||
| D.cs:216:13:216:22 | ... == ... | D.cs:216:13:216:14 | access to local variable o3 | true | true |
|
||||
| D.cs:216:13:216:22 | ... == ... | D.cs:216:19:216:22 | null | true | false |
|
||||
| D.cs:221:13:221:22 | ... == ... | D.cs:221:13:221:14 | access to local variable o4 | false | false |
|
||||
| D.cs:221:13:221:22 | ... == ... | D.cs:221:13:221:14 | access to local variable o4 | true | true |
|
||||
| D.cs:221:13:221:22 | ... == ... | D.cs:221:19:221:22 | null | true | false |
|
||||
| D.cs:242:13:242:25 | ... == ... | D.cs:242:13:242:17 | access to local variable other | false | false |
|
||||
| D.cs:242:13:242:25 | ... == ... | D.cs:242:13:242:17 | access to local variable other | true | true |
|
||||
| D.cs:244:13:244:25 | ... != ... | D.cs:244:13:244:17 | access to local variable other | false | true |
|
||||
| D.cs:244:13:244:25 | ... != ... | D.cs:244:13:244:17 | access to local variable other | true | false |
|
||||
| D.cs:266:13:266:27 | ... is ... | D.cs:266:13:266:17 | access to local variable other | true | false |
|
||||
| D.cs:336:13:336:23 | ... == ... | D.cs:336:13:336:15 | access to parameter obj | false | false |
|
||||
| D.cs:336:13:336:23 | ... == ... | D.cs:336:13:336:15 | access to parameter obj | true | true |
|
||||
| D.cs:341:13:341:23 | ... != ... | D.cs:341:13:341:15 | access to local variable msg | false | true |
|
||||
| D.cs:341:13:341:23 | ... != ... | D.cs:341:13:341:15 | access to local variable msg | true | false |
|
||||
| D.cs:367:27:367:35 | ... == ... | D.cs:367:27:367:27 | access to local variable b | false | false |
|
||||
| D.cs:367:27:367:35 | ... == ... | D.cs:367:27:367:27 | access to local variable b | true | true |
|
||||
| D.cs:382:13:382:23 | ... != ... | D.cs:382:13:382:15 | access to local variable ioe | false | true |
|
||||
| D.cs:382:13:382:23 | ... != ... | D.cs:382:13:382:15 | access to local variable ioe | true | false |
|
||||
| D.cs:390:20:390:28 | ... == ... | D.cs:390:20:390:20 | access to parameter a | false | false |
|
||||
| D.cs:390:20:390:28 | ... == ... | D.cs:390:20:390:20 | access to parameter a | true | true |
|
||||
| D.cs:397:20:397:28 | ... == ... | D.cs:397:20:397:20 | access to parameter b | false | false |
|
||||
| D.cs:397:20:397:28 | ... == ... | D.cs:397:20:397:20 | access to parameter b | true | true |
|
||||
| D.cs:407:14:407:22 | ... != ... | D.cs:407:14:407:14 | access to parameter x | false | true |
|
||||
| D.cs:407:14:407:22 | ... != ... | D.cs:407:14:407:14 | access to parameter x | true | false |
|
||||
| D.cs:407:27:407:35 | ... == ... | D.cs:407:27:407:27 | access to parameter y | false | false |
|
||||
| D.cs:407:27:407:35 | ... == ... | D.cs:407:27:407:27 | access to parameter y | true | true |
|
||||
| D.cs:407:42:407:50 | ... == ... | D.cs:407:42:407:42 | access to parameter x | false | false |
|
||||
| D.cs:407:42:407:50 | ... == ... | D.cs:407:42:407:42 | access to parameter x | true | true |
|
||||
| D.cs:407:55:407:63 | ... != ... | D.cs:407:55:407:55 | access to parameter y | false | true |
|
||||
| D.cs:407:55:407:63 | ... != ... | D.cs:407:55:407:55 | access to parameter y | true | false |
|
||||
| D.cs:409:13:409:21 | ... != ... | D.cs:409:13:409:13 | access to parameter x | false | true |
|
||||
| D.cs:409:13:409:21 | ... != ... | D.cs:409:13:409:13 | access to parameter x | true | false |
|
||||
| D.cs:411:13:411:21 | ... != ... | D.cs:411:13:411:13 | access to parameter y | false | true |
|
||||
| D.cs:411:13:411:21 | ... != ... | D.cs:411:13:411:13 | access to parameter y | true | false |
|
||||
| E.cs:10:34:10:54 | ... != ... | E.cs:10:35:10:45 | ... = ... | false | true |
|
||||
| E.cs:10:34:10:54 | ... != ... | E.cs:10:35:10:45 | ... = ... | true | false |
|
||||
| E.cs:12:32:12:52 | ... != ... | E.cs:12:33:12:43 | ... = ... | false | true |
|
||||
| E.cs:12:32:12:52 | ... != ... | E.cs:12:33:12:43 | ... = ... | true | false |
|
||||
| E.cs:20:19:20:28 | ... == ... | E.cs:20:19:20:20 | access to local variable s1 | false | false |
|
||||
| E.cs:20:19:20:28 | ... == ... | E.cs:20:19:20:20 | access to local variable s1 | true | true |
|
||||
| E.cs:21:13:21:22 | ... == ... | E.cs:21:13:21:14 | access to local variable s2 | false | false |
|
||||
| E.cs:21:13:21:22 | ... == ... | E.cs:21:13:21:14 | access to local variable s2 | true | true |
|
||||
| E.cs:24:19:24:28 | ... == ... | E.cs:24:19:24:20 | access to local variable s1 | false | false |
|
||||
| E.cs:24:19:24:28 | ... == ... | E.cs:24:19:24:20 | access to local variable s1 | true | true |
|
||||
| E.cs:26:13:26:22 | ... != ... | E.cs:26:13:26:14 | access to local variable s2 | false | true |
|
||||
| E.cs:26:13:26:22 | ... != ... | E.cs:26:13:26:14 | access to local variable s2 | true | false |
|
||||
| E.cs:70:22:70:32 | ... == ... | E.cs:70:22:70:24 | access to parameter arr | false | false |
|
||||
| E.cs:70:22:70:32 | ... == ... | E.cs:70:22:70:24 | access to parameter arr | true | true |
|
||||
| E.cs:83:13:83:24 | ... != ... | E.cs:83:13:83:16 | access to parameter vals | false | true |
|
||||
| E.cs:83:13:83:24 | ... != ... | E.cs:83:13:83:16 | access to parameter vals | true | false |
|
||||
| E.cs:85:18:85:29 | ... != ... | E.cs:85:18:85:21 | access to parameter vals | false | true |
|
||||
| E.cs:85:18:85:29 | ... != ... | E.cs:85:18:85:21 | access to parameter vals | true | false |
|
||||
| E.cs:153:13:153:24 | ... != ... | E.cs:153:13:153:16 | access to local variable obj2 | false | true |
|
||||
| E.cs:153:13:153:24 | ... != ... | E.cs:153:13:153:16 | access to local variable obj2 | true | false |
|
||||
| E.cs:164:17:164:25 | ... == ... | E.cs:164:17:164:17 | access to parameter a | false | false |
|
||||
| E.cs:164:17:164:25 | ... == ... | E.cs:164:17:164:17 | access to parameter a | true | true |
|
||||
| E.cs:175:19:175:29 | ... == ... | E.cs:175:19:175:21 | access to parameter obj | false | false |
|
||||
| E.cs:175:19:175:29 | ... == ... | E.cs:175:19:175:21 | access to parameter obj | true | true |
|
||||
| E.cs:176:13:176:22 | ... == ... | E.cs:176:13:176:14 | (...) ... | false | false |
|
||||
| E.cs:176:13:176:22 | ... == ... | E.cs:176:13:176:14 | (...) ... | true | true |
|
||||
| E.cs:176:13:176:22 | ... == ... | E.cs:176:19:176:22 | null | true | false |
|
||||
| E.cs:180:13:180:23 | ... == ... | E.cs:180:13:180:15 | access to parameter obj | false | false |
|
||||
| E.cs:180:13:180:23 | ... == ... | E.cs:180:13:180:15 | access to parameter obj | true | true |
|
||||
| E.cs:184:13:184:22 | ... == ... | E.cs:184:13:184:14 | (...) ... | false | false |
|
||||
| E.cs:184:13:184:22 | ... == ... | E.cs:184:13:184:14 | (...) ... | true | true |
|
||||
| E.cs:184:13:184:22 | ... == ... | E.cs:184:19:184:22 | null | true | false |
|
||||
| E.cs:193:17:193:17 | access to parameter o | E.cs:193:17:193:17 | access to parameter o | non-null | false |
|
||||
| E.cs:193:17:193:17 | access to parameter o | E.cs:193:17:193:17 | access to parameter o | null | true |
|
||||
| E.cs:208:13:208:23 | ... is ... | E.cs:208:13:208:13 | access to parameter s | false | true |
|
||||
| E.cs:208:13:208:23 | ... is ... | E.cs:208:13:208:13 | access to parameter s | true | false |
|
||||
| E.cs:245:13:245:22 | access to property HasValue | E.cs:245:13:245:13 | access to parameter i | false | true |
|
||||
| E.cs:245:13:245:22 | access to property HasValue | E.cs:245:13:245:13 | access to parameter i | true | false |
|
||||
| E.cs:252:13:252:21 | ... != ... | E.cs:252:13:252:13 | access to parameter i | false | true |
|
||||
| E.cs:252:13:252:21 | ... != ... | E.cs:252:13:252:13 | access to parameter i | true | false |
|
||||
| E.cs:259:13:259:21 | ... == ... | E.cs:259:13:259:13 | access to parameter i | false | false |
|
||||
| E.cs:259:13:259:21 | ... == ... | E.cs:259:13:259:13 | access to parameter i | true | true |
|
||||
| E.cs:274:17:274:25 | ... != ... | E.cs:274:17:274:17 | access to local variable o | false | true |
|
||||
| E.cs:274:17:274:25 | ... != ... | E.cs:274:17:274:17 | access to local variable o | true | false |
|
||||
| E.cs:284:9:284:9 | access to local variable o | E.cs:284:9:284:9 | access to local variable o | non-null | false |
|
||||
| E.cs:284:9:284:9 | access to local variable o | E.cs:284:9:284:9 | access to local variable o | null | true |
|
||||
| E.cs:293:13:293:13 | access to local variable s | E.cs:293:13:293:13 | access to local variable s | non-null | false |
|
||||
| E.cs:293:13:293:13 | access to local variable s | E.cs:293:13:293:13 | access to local variable s | null | true |
|
||||
| E.cs:293:13:293:24 | ... == ... | E.cs:293:13:293:19 | call to method M2 | true | false |
|
||||
| E.cs:306:31:306:31 | access to field l | E.cs:306:31:306:31 | access to field l | non-null | false |
|
||||
| E.cs:306:31:306:31 | access to field l | E.cs:306:31:306:31 | access to field l | null | true |
|
||||
| E.cs:309:13:309:22 | access to property HasValue | E.cs:309:13:309:13 | access to field l | false | true |
|
||||
| E.cs:309:13:309:22 | access to property HasValue | E.cs:309:13:309:13 | access to field l | true | false |
|
||||
| E.cs:321:13:321:30 | ... is ... | E.cs:321:14:321:21 | ... ?? ... | false | false |
|
||||
| E.cs:321:13:321:30 | ... is ... | E.cs:321:14:321:21 | ... ?? ... | true | true |
|
||||
| E.cs:321:14:321:15 | access to parameter s1 | E.cs:321:14:321:15 | access to parameter s1 | non-null | false |
|
||||
| E.cs:321:14:321:15 | access to parameter s1 | E.cs:321:14:321:15 | access to parameter s1 | null | true |
|
||||
| E.cs:330:17:330:28 | (...) ... | E.cs:330:17:330:28 | (...) ... | null | true |
|
||||
| E.cs:336:17:336:17 | access to parameter s | E.cs:336:17:336:17 | access to parameter s | non-null | false |
|
||||
| E.cs:336:17:336:17 | access to parameter s | E.cs:336:17:336:17 | access to parameter s | null | true |
|
||||
| E.cs:342:17:342:17 | access to parameter s | E.cs:342:17:342:17 | access to parameter s | non-null | false |
|
||||
| E.cs:342:17:342:17 | access to parameter s | E.cs:342:17:342:17 | access to parameter s | null | true |
|
||||
| E.cs:348:21:348:21 | access to parameter s | E.cs:348:21:348:21 | access to parameter s | non-null | false |
|
||||
| E.cs:348:21:348:21 | access to parameter s | E.cs:348:21:348:21 | access to parameter s | null | true |
|
||||
| E.cs:354:21:354:21 | access to parameter s | E.cs:354:21:354:21 | access to parameter s | non-null | false |
|
||||
| E.cs:354:21:354:21 | access to parameter s | E.cs:354:21:354:21 | access to parameter s | null | true |
|
||||
| E.cs:355:13:355:21 | dynamic call to operator != | E.cs:355:13:355:13 | access to local variable x | false | true |
|
||||
| E.cs:355:13:355:21 | dynamic call to operator != | E.cs:355:13:355:13 | access to local variable x | true | false |
|
||||
| E.cs:361:17:361:17 | access to parameter s | E.cs:361:17:361:17 | access to parameter s | non-null | false |
|
||||
| E.cs:361:17:361:17 | access to parameter s | E.cs:361:17:361:17 | access to parameter s | null | true |
|
||||
| E.cs:362:13:362:29 | ... != ... | E.cs:362:13:362:13 | access to local variable x | false | true |
|
||||
| E.cs:362:13:362:29 | ... != ... | E.cs:362:13:362:13 | access to local variable x | true | false |
|
||||
| E.cs:372:13:372:23 | ... is ... | E.cs:372:13:372:13 | access to parameter o | true | false |
|
||||
| E.cs:382:14:382:23 | ... == ... | E.cs:382:14:382:15 | access to parameter e1 | false | false |
|
||||
| E.cs:382:14:382:23 | ... == ... | E.cs:382:14:382:15 | access to parameter e1 | true | true |
|
||||
| E.cs:382:28:382:37 | ... != ... | E.cs:382:28:382:29 | access to parameter e2 | false | true |
|
||||
| E.cs:382:28:382:37 | ... != ... | E.cs:382:28:382:29 | access to parameter e2 | true | false |
|
||||
| E.cs:382:44:382:53 | ... != ... | E.cs:382:44:382:45 | access to parameter e1 | false | true |
|
||||
| E.cs:382:44:382:53 | ... != ... | E.cs:382:44:382:45 | access to parameter e1 | true | false |
|
||||
| E.cs:382:58:382:67 | ... == ... | E.cs:382:58:382:59 | access to parameter e2 | false | false |
|
||||
| E.cs:382:58:382:67 | ... == ... | E.cs:382:58:382:59 | access to parameter e2 | true | true |
|
||||
| E.cs:384:13:384:22 | ... == ... | E.cs:384:13:384:14 | access to parameter e1 | false | false |
|
||||
| E.cs:384:13:384:22 | ... == ... | E.cs:384:13:384:14 | access to parameter e1 | true | true |
|
||||
| E.cs:384:27:384:36 | ... == ... | E.cs:384:27:384:28 | access to parameter e2 | false | false |
|
||||
| E.cs:384:27:384:36 | ... == ... | E.cs:384:27:384:28 | access to parameter e2 | true | true |
|
||||
| E.cs:391:9:391:9 | access to parameter i | E.cs:391:9:391:9 | access to parameter i | non-null | false |
|
||||
| E.cs:391:9:391:9 | access to parameter i | E.cs:391:9:391:9 | access to parameter i | null | true |
|
||||
| E.cs:397:9:397:13 | access to parameter color | E.cs:397:9:397:13 | access to parameter color | non-null | false |
|
||||
| E.cs:397:9:397:13 | access to parameter color | E.cs:397:9:397:13 | access to parameter color | null | true |
|
||||
| E.cs:404:9:404:9 | access to local variable i | E.cs:404:9:404:9 | access to local variable i | non-null | false |
|
||||
| E.cs:404:9:404:9 | access to local variable i | E.cs:404:9:404:9 | access to local variable i | null | true |
|
||||
| E.cs:411:9:411:9 | access to local variable i | E.cs:411:9:411:9 | access to local variable i | non-null | false |
|
||||
| E.cs:411:9:411:9 | access to local variable i | E.cs:411:9:411:9 | access to local variable i | null | true |
|
||||
| E.cs:422:13:422:22 | access to property HasValue | E.cs:422:13:422:13 | access to parameter i | false | true |
|
||||
| E.cs:422:13:422:22 | access to property HasValue | E.cs:422:13:422:13 | access to parameter i | true | false |
|
||||
| E.cs:429:13:429:22 | access to property HasValue | E.cs:429:13:429:13 | access to parameter i | false | true |
|
||||
| E.cs:429:13:429:22 | access to property HasValue | E.cs:429:13:429:13 | access to parameter i | true | false |
|
||||
| E.cs:437:23:437:31 | ... is ... | E.cs:437:23:437:23 | access to parameter s | false | false |
|
||||
| E.cs:437:23:437:31 | ... is ... | E.cs:437:23:437:23 | access to parameter s | true | true |
|
||||
| E.cs:442:23:442:39 | ... is ... | E.cs:442:23:442:23 | access to parameter s | false | false |
|
||||
| E.cs:447:23:447:35 | ... is ... | E.cs:447:23:447:23 | access to parameter s | true | false |
|
||||
| E.cs:452:23:452:33 | ... is ... | E.cs:452:23:452:23 | access to parameter s | true | false |
|
||||
| E.cs:457:13:457:27 | ... is ... | E.cs:457:13:457:13 | access to parameter s | false | false |
|
||||
| Forwarding.cs:9:14:9:30 | call to method IsNullOrEmpty | Forwarding.cs:9:14:9:14 | access to local variable s | false | false |
|
||||
| Forwarding.cs:14:13:14:32 | call to method IsNotNullOrEmpty | Forwarding.cs:14:13:14:13 | access to local variable s | true | false |
|
||||
| Forwarding.cs:19:14:19:23 | call to method IsNull | Forwarding.cs:19:14:19:14 | access to local variable s | false | false |
|
||||
| Forwarding.cs:19:14:19:23 | call to method IsNull | Forwarding.cs:19:14:19:14 | access to local variable s | true | true |
|
||||
| Forwarding.cs:24:13:24:25 | call to method IsNotNull | Forwarding.cs:24:13:24:13 | access to local variable s | false | true |
|
||||
| Forwarding.cs:24:13:24:25 | call to method IsNotNull | Forwarding.cs:24:13:24:13 | access to local variable s | true | false |
|
||||
| Forwarding.cs:29:13:29:24 | call to method IsNotNull | Forwarding.cs:29:23:29:23 | access to local variable s | true | false |
|
||||
| Forwarding.cs:34:13:34:29 | call to method IsNotNullWrong | Forwarding.cs:34:28:34:28 | access to local variable s | false | false |
|
||||
| Forwarding.cs:45:16:45:26 | ... is ... | Forwarding.cs:45:16:45:16 | access to parameter o | true | false |
|
||||
| Forwarding.cs:45:31:45:61 | call to method IsNullOrEmpty | Forwarding.cs:45:52:45:60 | (...) ... | false | false |
|
||||
| Forwarding.cs:45:66:45:75 | call to method IsNull | Forwarding.cs:45:66:45:66 | access to parameter o | false | false |
|
||||
| Forwarding.cs:45:66:45:75 | call to method IsNull | Forwarding.cs:45:66:45:66 | access to parameter o | true | true |
|
||||
| Forwarding.cs:50:13:50:23 | ... is ... | Forwarding.cs:50:13:50:13 | access to parameter o | true | false |
|
||||
| Forwarding.cs:52:21:52:51 | call to method IsNullOrEmpty | Forwarding.cs:52:42:52:50 | (...) ... | false | false |
|
||||
| Forwarding.cs:59:13:59:21 | ... == ... | Forwarding.cs:59:13:59:13 | access to parameter o | false | false |
|
||||
| Forwarding.cs:59:13:59:21 | ... == ... | Forwarding.cs:59:13:59:13 | access to parameter o | true | true |
|
||||
| Forwarding.cs:68:16:68:38 | call to method IsNullOrEmpty | Forwarding.cs:68:37:68:37 | access to parameter s | false | false |
|
||||
| Forwarding.cs:73:17:73:39 | call to method IsNullOrEmpty | Forwarding.cs:73:38:73:38 | access to parameter s | false | false |
|
||||
| Forwarding.cs:78:16:78:39 | call to method ReferenceEquals | Forwarding.cs:78:32:78:32 | access to parameter o | false | false |
|
||||
| Forwarding.cs:78:16:78:39 | call to method ReferenceEquals | Forwarding.cs:78:32:78:32 | access to parameter o | true | true |
|
||||
| Forwarding.cs:83:16:83:24 | ... != ... | Forwarding.cs:83:16:83:16 | access to parameter o | false | true |
|
||||
| Forwarding.cs:83:16:83:24 | ... != ... | Forwarding.cs:83:16:83:16 | access to parameter o | true | false |
|
||||
| GuardedString.cs:9:14:9:36 | call to method IsNullOrEmpty | GuardedString.cs:9:35:9:35 | access to local variable s | false | false |
|
||||
| GuardedString.cs:14:14:14:41 | call to method IsNullOrWhiteSpace | GuardedString.cs:14:40:14:40 | access to local variable s | false | false |
|
||||
| GuardedString.cs:19:13:19:13 | access to local variable s | GuardedString.cs:19:13:19:13 | access to local variable s | non-null | false |
|
||||
| GuardedString.cs:19:13:19:13 | access to local variable s | GuardedString.cs:19:13:19:13 | access to local variable s | null | true |
|
||||
| GuardedString.cs:19:13:19:26 | ... == ... | GuardedString.cs:19:13:19:21 | access to property Length | true | false |
|
||||
| GuardedString.cs:22:13:22:13 | access to local variable s | GuardedString.cs:22:13:22:13 | access to local variable s | non-null | false |
|
||||
| GuardedString.cs:22:13:22:13 | access to local variable s | GuardedString.cs:22:13:22:13 | access to local variable s | null | true |
|
||||
| GuardedString.cs:22:13:22:25 | ... > ... | GuardedString.cs:22:13:22:21 | access to property Length | true | false |
|
||||
| GuardedString.cs:25:13:25:13 | access to local variable s | GuardedString.cs:25:13:25:13 | access to local variable s | non-null | false |
|
||||
| GuardedString.cs:25:13:25:13 | access to local variable s | GuardedString.cs:25:13:25:13 | access to local variable s | null | true |
|
||||
| GuardedString.cs:25:13:25:26 | ... >= ... | GuardedString.cs:25:13:25:21 | access to property Length | true | false |
|
||||
| GuardedString.cs:28:13:28:13 | access to local variable s | GuardedString.cs:28:13:28:13 | access to local variable s | non-null | false |
|
||||
| GuardedString.cs:28:13:28:13 | access to local variable s | GuardedString.cs:28:13:28:13 | access to local variable s | null | true |
|
||||
| GuardedString.cs:28:13:28:26 | ... < ... | GuardedString.cs:28:13:28:21 | access to property Length | true | false |
|
||||
| GuardedString.cs:31:13:31:13 | access to local variable s | GuardedString.cs:31:13:31:13 | access to local variable s | non-null | false |
|
||||
| GuardedString.cs:31:13:31:13 | access to local variable s | GuardedString.cs:31:13:31:13 | access to local variable s | null | true |
|
||||
| GuardedString.cs:31:13:31:27 | ... <= ... | GuardedString.cs:31:13:31:21 | access to property Length | true | false |
|
||||
| GuardedString.cs:34:13:34:13 | access to local variable s | GuardedString.cs:34:13:34:13 | access to local variable s | non-null | false |
|
||||
| GuardedString.cs:34:13:34:13 | access to local variable s | GuardedString.cs:34:13:34:13 | access to local variable s | null | true |
|
||||
| GuardedString.cs:34:13:34:26 | ... != ... | GuardedString.cs:34:13:34:21 | access to property Length | false | false |
|
||||
| NullAlwaysBad.cs:9:17:9:25 | ... != ... | NullAlwaysBad.cs:9:17:9:17 | access to parameter s | false | true |
|
||||
| NullAlwaysBad.cs:9:17:9:25 | ... != ... | NullAlwaysBad.cs:9:17:9:17 | access to parameter s | true | false |
|
||||
| NullAlwaysGood.cs:9:17:9:25 | ... != ... | NullAlwaysGood.cs:9:17:9:17 | access to parameter s | false | true |
|
||||
| NullAlwaysGood.cs:9:17:9:25 | ... != ... | NullAlwaysGood.cs:9:17:9:17 | access to parameter s | true | false |
|
||||
| NullMaybeGood.cs:7:13:7:21 | ... != ... | NullMaybeGood.cs:7:13:7:13 | access to parameter o | false | true |
|
||||
| NullMaybeGood.cs:7:13:7:21 | ... != ... | NullMaybeGood.cs:7:13:7:13 | access to parameter o | true | false |
|
||||
| StringConcatenation.cs:15:16:15:22 | ... != ... | StringConcatenation.cs:15:16:15:16 | access to local variable s | false | false |
|
||||
| StringConcatenation.cs:22:16:22:22 | ... != ... | StringConcatenation.cs:22:16:22:16 | access to local variable s | false | false |
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import csharp
|
||||
import semmle.code.csharp.controlflow.Guards
|
||||
|
||||
from DereferenceableExpr de, Guards::Guard reason
|
||||
where de.guardSuggestsMaybeNull(reason)
|
||||
select reason, de
|
||||
from DereferenceableExpr de, AbstractValue v, boolean isNull
|
||||
select de.getANullCheck(v, isNull), de, v, isNull
|
||||
|
||||
@@ -57,9 +57,7 @@
|
||||
| E.cs:423:38:423:38 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:420:27:420:27 | i | i | E.cs:420:27:420:27 | i | this |
|
||||
| E.cs:430:39:430:39 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:427:27:427:27 | i | i | E.cs:427:27:427:27 | i | this |
|
||||
| E.cs:444:13:444:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:437:23:437:31 | ... is ... | this |
|
||||
| E.cs:444:13:444:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:447:23:447:35 | ... is ... | this |
|
||||
| E.cs:459:13:459:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:437:23:437:31 | ... is ... | this |
|
||||
| E.cs:459:13:459:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:447:23:447:35 | ... is ... | this |
|
||||
| GuardedString.cs:35:31:35:31 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | GuardedString.cs:7:16:7:16 | s | s | GuardedString.cs:7:16:7:32 | String s = ... | this |
|
||||
| NullMaybeBad.cs:7:27:7:27 | access to parameter o | Variable $@ may be null at this access because of $@ null argument. | NullMaybeBad.cs:5:25:5:25 | o | o | NullMaybeBad.cs:13:17:13:20 | null | this |
|
||||
| Params.cs:14:17:14:20 | access to parameter args | Variable $@ may be null at this access because of $@ null argument. | Params.cs:12:36:12:39 | args | args | Params.cs:20:12:20:15 | null | this |
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.github.codeql
|
||||
|
||||
import com.github.codeql.utils.ClassInstanceStack
|
||||
import com.github.codeql.utils.isExternalFileClassMember
|
||||
import com.semmle.extractor.java.OdasaOutput
|
||||
import com.semmle.util.data.StringDigestor
|
||||
@@ -19,7 +18,6 @@ class ExternalDeclExtractor(
|
||||
val compression: Compression,
|
||||
val invocationTrapFile: String,
|
||||
val sourceFilePath: String,
|
||||
val classInstanceStack: ClassInstanceStack,
|
||||
val primitiveTypeMapping: PrimitiveTypeMapping,
|
||||
val pluginContext: IrPluginContext,
|
||||
val globalExtensionState: KotlinExtractorGlobalState,
|
||||
@@ -165,7 +163,6 @@ class ExternalDeclExtractor(
|
||||
binaryPath,
|
||||
manager,
|
||||
this,
|
||||
classInstanceStack,
|
||||
primitiveTypeMapping,
|
||||
pluginContext,
|
||||
KotlinFileExtractor.DeclarationStack(),
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.github.codeql
|
||||
|
||||
import com.github.codeql.utils.ClassInstanceStack
|
||||
import com.github.codeql.utils.versions.usesK2
|
||||
import com.semmle.util.files.FileUtil
|
||||
import com.semmle.util.trap.pathtransformers.PathTransformer
|
||||
@@ -152,7 +151,6 @@ class KotlinExtractorExtension(
|
||||
}
|
||||
val compression = getCompression(logger)
|
||||
|
||||
val classInstanceStack = ClassInstanceStack()
|
||||
val primitiveTypeMapping = PrimitiveTypeMapping(logger, pluginContext)
|
||||
// FIXME: FileUtil expects a static global logger
|
||||
// which should be provided by SLF4J's factory facility. For now we set it here.
|
||||
@@ -184,7 +182,6 @@ class KotlinExtractorExtension(
|
||||
trapDir,
|
||||
srcDir,
|
||||
file,
|
||||
classInstanceStack,
|
||||
primitiveTypeMapping,
|
||||
pluginContext,
|
||||
globalExtensionState
|
||||
@@ -361,7 +358,6 @@ private fun doFile(
|
||||
dbTrapDir: File,
|
||||
dbSrcDir: File,
|
||||
srcFile: IrFile,
|
||||
classInstanceStack: ClassInstanceStack,
|
||||
primitiveTypeMapping: PrimitiveTypeMapping,
|
||||
pluginContext: IrPluginContext,
|
||||
globalExtensionState: KotlinExtractorGlobalState
|
||||
@@ -419,7 +415,6 @@ private fun doFile(
|
||||
compression,
|
||||
invocationTrapFile,
|
||||
srcFilePath,
|
||||
classInstanceStack,
|
||||
primitiveTypeMapping,
|
||||
pluginContext,
|
||||
globalExtensionState,
|
||||
@@ -434,7 +429,6 @@ private fun doFile(
|
||||
srcFilePath,
|
||||
null,
|
||||
externalDeclExtractor,
|
||||
classInstanceStack,
|
||||
primitiveTypeMapping,
|
||||
pluginContext,
|
||||
KotlinFileExtractor.DeclarationStack(),
|
||||
|
||||
@@ -62,7 +62,6 @@ open class KotlinFileExtractor(
|
||||
val filePath: String,
|
||||
dependencyCollector: OdasaOutput.TrapFileManager?,
|
||||
externalClassExtractor: ExternalDeclExtractor,
|
||||
classInstanceStack: ClassInstanceStack,
|
||||
primitiveTypeMapping: PrimitiveTypeMapping,
|
||||
pluginContext: IrPluginContext,
|
||||
val declarationStack: DeclarationStack,
|
||||
@@ -73,7 +72,6 @@ open class KotlinFileExtractor(
|
||||
tw,
|
||||
dependencyCollector,
|
||||
externalClassExtractor,
|
||||
classInstanceStack,
|
||||
primitiveTypeMapping,
|
||||
pluginContext,
|
||||
globalExtensionState
|
||||
@@ -498,17 +496,12 @@ open class KotlinFileExtractor(
|
||||
}
|
||||
|
||||
extractClassModifiers(c, id)
|
||||
classInstanceStack.push(c)
|
||||
try {
|
||||
extractClassSupertypes(
|
||||
c,
|
||||
id,
|
||||
if (argsIncludingOuterClasses == null) ExtractSupertypesMode.Raw
|
||||
else ExtractSupertypesMode.Specialised(argsIncludingOuterClasses)
|
||||
)
|
||||
} finally {
|
||||
classInstanceStack.pop()
|
||||
}
|
||||
extractClassSupertypes(
|
||||
c,
|
||||
id,
|
||||
if (argsIncludingOuterClasses == null) ExtractSupertypesMode.Raw
|
||||
else ExtractSupertypesMode.Specialised(argsIncludingOuterClasses)
|
||||
)
|
||||
|
||||
val locId = getLocation(c, argsIncludingOuterClasses)
|
||||
tw.writeHasLocation(id, locId)
|
||||
|
||||
@@ -49,7 +49,6 @@ open class KotlinUsesExtractor(
|
||||
open val tw: TrapWriter,
|
||||
val dependencyCollector: OdasaOutput.TrapFileManager?,
|
||||
val externalClassExtractor: ExternalDeclExtractor,
|
||||
val classInstanceStack: ClassInstanceStack,
|
||||
val primitiveTypeMapping: PrimitiveTypeMapping,
|
||||
val pluginContext: IrPluginContext,
|
||||
val globalExtensionState: KotlinExtractorGlobalState
|
||||
@@ -183,7 +182,6 @@ open class KotlinUsesExtractor(
|
||||
filePath,
|
||||
dependencyCollector,
|
||||
externalClassExtractor,
|
||||
classInstanceStack,
|
||||
primitiveTypeMapping,
|
||||
pluginContext,
|
||||
newDeclarationStack,
|
||||
@@ -201,7 +199,6 @@ open class KotlinUsesExtractor(
|
||||
clsFile.path,
|
||||
dependencyCollector,
|
||||
externalClassExtractor,
|
||||
classInstanceStack,
|
||||
primitiveTypeMapping,
|
||||
pluginContext,
|
||||
newDeclarationStack,
|
||||
@@ -540,19 +537,6 @@ open class KotlinUsesExtractor(
|
||||
return Pair(p?.first ?: c, p?.second ?: argsIncludingOuterClassesBeforeReplacement)
|
||||
}
|
||||
|
||||
private fun avoidInfiniteRecursion(
|
||||
pair: Pair<IrClass, List<IrTypeArgument>?>
|
||||
): Pair<IrClass, List<IrTypeArgument>?> {
|
||||
val c = pair.first
|
||||
val args = pair.second
|
||||
if (args != null && args.isNotEmpty() && classInstanceStack.possiblyCyclicExtraction(c, args)) {
|
||||
logger.warn("Making use of ${c.name} a raw type to avoid infinite recursion")
|
||||
return Pair(c, null)
|
||||
} else {
|
||||
return pair
|
||||
}
|
||||
}
|
||||
|
||||
// `typeArgs` can be null to describe a raw generic type.
|
||||
// For non-generic types it will be zero-length list.
|
||||
private fun addClassLabel(
|
||||
@@ -561,7 +545,7 @@ open class KotlinUsesExtractor(
|
||||
inReceiverContext: Boolean = false
|
||||
): TypeResult<DbClassorinterface> {
|
||||
val replaced =
|
||||
avoidInfiniteRecursion(tryReplaceType(cBeforeReplacement, argsIncludingOuterClassesBeforeReplacement))
|
||||
tryReplaceType(cBeforeReplacement, argsIncludingOuterClassesBeforeReplacement)
|
||||
val replacedClass = replaced.first
|
||||
val replacedArgsIncludingOuterClasses = replaced.second
|
||||
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.github.codeql.utils
|
||||
|
||||
import java.util.Stack
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.types.*
|
||||
|
||||
class ClassInstanceStack {
|
||||
private val stack: Stack<IrClass> = Stack()
|
||||
|
||||
fun push(c: IrClass) = stack.push(c)
|
||||
fun pop() = stack.pop()
|
||||
|
||||
private fun checkTypeArgs(sym: IrClassSymbol, args: List<IrTypeArgument>): Boolean {
|
||||
for (arg in args) {
|
||||
if (arg is IrTypeProjection) {
|
||||
if (checkType(sym, arg.type)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
private fun checkType(sym: IrClassSymbol, type: IrType): Boolean {
|
||||
if (type is IrSimpleType) {
|
||||
val decl = type.classifier.owner
|
||||
if (decl.symbol == sym) {
|
||||
return true
|
||||
}
|
||||
if (checkTypeArgs(sym, type.arguments)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun possiblyCyclicExtraction(classToCheck: IrClass, args: List<IrTypeArgument>): Boolean {
|
||||
for (c in stack) {
|
||||
if (c.symbol == classToCheck.symbol && checkTypeArgs(c.symbol, args)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
package somepkg;
|
||||
|
||||
public interface IfaceA<T> extends IfaceB<T> {}
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
package somepkg;
|
||||
|
||||
public interface IfaceB<T> extends IfaceC<IfaceA<IfaceB<T>>> {}
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
package somepkg;
|
||||
|
||||
public interface IfaceC<T> {}
|
||||
@@ -1,6 +0,0 @@
|
||||
|
||||
package somepkg;
|
||||
|
||||
public interface IfaceZ {
|
||||
public <T> IfaceA<String> someFun();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package mypkg
|
||||
|
||||
import somepkg.IfaceZ
|
||||
|
||||
class SomeClass(private val myVal: IfaceZ) { }
|
||||
@@ -1,6 +0,0 @@
|
||||
import commands
|
||||
|
||||
def test(codeql, java_full):
|
||||
codeql.database.create(
|
||||
command=["kotlinc somepkg/IfaceA.java somepkg/IfaceB.java somepkg/IfaceC.java somepkg/IfaceZ.java test.kt"]
|
||||
)
|
||||
@@ -1,19 +0,0 @@
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<IfaceB<>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<IfaceB<String>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<IfaceB<T>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<IfaceB> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<String> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB<> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB<IfaceB> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB<String> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB<T> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<IfaceA<IfaceB<>>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<IfaceA<IfaceB<String>>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<IfaceA<IfaceB<T>>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<IfaceA<IfaceB>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceZ.class:0:0:0:0 | IfaceZ |
|
||||
@@ -1,5 +0,0 @@
|
||||
import java
|
||||
|
||||
from Type t
|
||||
where t.getName().matches("Iface%")
|
||||
select t
|
||||
@@ -1,16 +0,0 @@
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
// Diagnostic Matches: %Making use of Stack a raw type to avoid infinite recursion%
|
||||
|
||||
class MyType
|
||||
|
||||
fun foo1(x: List<List<List<List<MyType>>>>) { }
|
||||
|
||||
fun foo2(x: Stack<Stack<Stack<Stack<MyType>>>>) { }
|
||||
|
||||
class MkT<T> { }
|
||||
|
||||
fun foo3(x: MkT<MkT<MkT<MkT<MyType>>>>) { }
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
| file:///!unknown-binary-location/MkT.class:0:0:0:0 | MkT<MkT<MkT<MkT<MyType>>>> |
|
||||
| file:///!unknown-binary-location/MkT.class:0:0:0:0 | MkT<MkT<MkT<MyType>>> |
|
||||
| file:///!unknown-binary-location/MkT.class:0:0:0:0 | MkT<MkT<MyType>> |
|
||||
| file:///!unknown-binary-location/MkT.class:0:0:0:0 | MkT<MyType> |
|
||||
| file:///modules/java.base/java/util/List.class:0:0:0:0 | List<? extends List<? extends List<? extends List<MyType>>>> |
|
||||
| file:///modules/java.base/java/util/List.class:0:0:0:0 | List<? extends List<? extends List<MyType>>> |
|
||||
| file:///modules/java.base/java/util/List.class:0:0:0:0 | List<? extends List<MyType>> |
|
||||
| file:///modules/java.base/java/util/List.class:0:0:0:0 | List<MyType> |
|
||||
| file:///modules/java.base/java/util/List.class:0:0:0:0 | List<Stack<MyType>> |
|
||||
| file:///modules/java.base/java/util/Stack.class:0:0:0:0 | Stack<MyType> |
|
||||
| file:///modules/java.base/java/util/Stack.class:0:0:0:0 | Stack<Stack<MyType>> |
|
||||
| file:///modules/java.base/java/util/Stack.class:0:0:0:0 | Stack<Stack<Stack<MyType>>> |
|
||||
| file:///modules/java.base/java/util/Stack.class:0:0:0:0 | Stack<Stack<Stack<Stack<MyType>>>> |
|
||||
@@ -1,7 +0,0 @@
|
||||
import java
|
||||
|
||||
from Type t
|
||||
where
|
||||
t.getName().matches("%MyType%") and
|
||||
t.getName().matches(["List<%", "Stack<%", "MkT<%"])
|
||||
select t
|
||||
@@ -1,2 +0,0 @@
|
||||
// Ensure at least one file without errors is included, as extraction fails otherwise.
|
||||
console.log("Hello")
|
||||
@@ -4,14 +4,6 @@
|
||||
|
||||
import javascript
|
||||
|
||||
pragma[nomagic]
|
||||
private predicate adjacentTokens(Token token1, Token token2) {
|
||||
exists(TopLevel top, int index |
|
||||
tokeninfo(token1, _, top, index, _) and
|
||||
tokeninfo(token2, _, top, index + 1, _)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* A token occurring in a piece of JavaScript source code.
|
||||
*
|
||||
@@ -35,7 +27,10 @@ class Token extends Locatable, @token {
|
||||
string getValue() { tokeninfo(this, _, _, _, result) }
|
||||
|
||||
/** Gets the token following this token inside the same toplevel structure, if any. */
|
||||
Token getNextToken() { adjacentTokens(this, result) }
|
||||
Token getNextToken() {
|
||||
this.getTopLevel() = result.getTopLevel() and
|
||||
this.getIndex() + 1 = result.getIndex()
|
||||
}
|
||||
|
||||
/** Gets the token preceding this token inside the same toplevel structure, if any. */
|
||||
Token getPreviousToken() { result.getNextToken() = this }
|
||||
|
||||
14
rust/ql/.generated.list
generated
14
rust/ql/.generated.list
generated
@@ -135,7 +135,7 @@ lib/codeql/rust/elements/RefPat.qll fe076bdccb454111b38f360837d180274ba8a003b4cf
|
||||
lib/codeql/rust/elements/RefTypeRepr.qll 563d2edc097aa1896b3dea5a3918e6225f23dda91b3fb46e2f4c32feb813d56c af3bd746239130e3e94dd41ab682473b29b8b900b05c557beb8a2eba6508ebd9
|
||||
lib/codeql/rust/elements/Rename.qll 5cb0ebad580d9842cfe65033059d4d373a1386f047f3a78f402a93e060e2c13e 642c6f37d94442575df12b2e998572a725d094ac5ae76147a56057e75138d72b
|
||||
lib/codeql/rust/elements/RestPat.qll 5fedfac18080b068f597c9bbb84de672834f72cc22295d6312e111f151f8e3c7 c0e1f77bfcdd40e8ab06ad8c138e6098d79940247758adf9de03a05b00c23de3
|
||||
lib/codeql/rust/elements/RetTypeRepr.qll d68b7c6c2eda13821fcfe085ac3d63010d89a206be09d23deaf531cac405ba96 6db787a96d95265ca20a17ce00603a678b39ac8c7c1d0e1ad6ed119dcf9858fa
|
||||
lib/codeql/rust/elements/RetTypeRepr.qll a603393d373f38831dded00878c3299d61fdb977723d3e1038692f7a46bfebc5 583c626f7ae7fb4ec9a9f93f072330c16560ab52c8dfec566c46af40fb9f39f8
|
||||
lib/codeql/rust/elements/ReturnExpr.qll b87187cff55bc33c8c18558c9b88617179183d1341b322c1cab35ba07167bbdb 892f3a9df2187e745c869e67f33c228ee42754bc9e4f8f4c1718472eb8f8c80f
|
||||
lib/codeql/rust/elements/ReturnTypeSyntax.qll f30b779f79bc2f0329d5585a462511e1aaa9da63182cb45231873a9bd9644d19 5ba004dae2bca323ced27bb4b2f54f725ae974421ab11b176eac4888c642b3fa
|
||||
lib/codeql/rust/elements/SelfParam.qll e36b54cdc57529935910b321c336783e9e2662c762f3cd6af492d819373ff188 7a4735dbf532fc0c33ebdb0b5c1dfc4e5267e79ceff4ca8977065eb0ce54aaf5
|
||||
@@ -177,7 +177,7 @@ lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a
|
||||
lib/codeql/rust/elements/Union.qll 13f7f62e98b117d18e79db5f6e6535447bc069ebb08f7cdb390b012678b7e085 bd8c37bc0ff09926753bc250e1848ed25923f224829d0136afc27b749eaddd1f
|
||||
lib/codeql/rust/elements/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546
|
||||
lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147
|
||||
lib/codeql/rust/elements/UseBoundGenericArgs.qll 841913cfbb84de14aab1820a5433eae978bbadbb8e6d413b8ba70780c7328335 c9ec9d086cff91d15c3aea64f1080b22b41cdaf64e3c8b192aaaec17604a5d10
|
||||
lib/codeql/rust/elements/UseBoundGenericArgs.qll d9821a82a1d57e609fdc5e79d65e9a88b0088f51d03927e09f41b6931d3484ab 181483a95e22622c7cee07cce87e9476053f824a82e67e2bdecabf5a39f672ad
|
||||
lib/codeql/rust/elements/UseTree.qll e67c148f63668319c37914a46ff600692de477242a0129fa1bb9839754c0f830 de9b39d3d078d51ec9130db6579bff13e6297e60556a7214a5c51cbf89d92791
|
||||
lib/codeql/rust/elements/UseTreeList.qll 92ebfee4392a485b38fb3265fdede7c8f2ed1dbe2ab860aa61b1497c33874d25 a4e677455d20838e422e430eebd73d0a488e34e8c960f375fef7b99e79d4c911
|
||||
lib/codeql/rust/elements/Variant.qll 7895461fa728f6c3a7293799c5e6b965b413b679566dcbd40bbe2609db8b6cde b0413547365a301bd9fbb6b266757f956394abad0a77f0e424446e23ec7d83e9
|
||||
@@ -369,7 +369,7 @@ lib/codeql/rust/elements/internal/RenameConstructor.qll 65fa2e938978d154701e6cac
|
||||
lib/codeql/rust/elements/internal/RenameImpl.qll 61c681055f1f86402af0772539f702e9e19a123f8cfcfca225535c3a1a4cb1d7 1aa1c78616c4b54a31c8af74de141aef9e5ada53f3859df631ecb4238faabdbf
|
||||
lib/codeql/rust/elements/internal/RestPatConstructor.qll 45430925ddf08fba70ede44c7f413ddb41b3113c149b7efc276e0c2bf72507b4 25c678898d72446e7a975bb8b7f2fde51e55b59dbd42f2cca997c833b1a995f1
|
||||
lib/codeql/rust/elements/internal/RetTypeReprConstructor.qll 6dcb56c92a13f5ca2c9a8344bc05638cc611543896c578cd6ca185054f155537 3fe34953ba397dc31533bd28b48df76693e86b51c4a89c26ad4dfdbd816a0874
|
||||
lib/codeql/rust/elements/internal/RetTypeReprImpl.qll 321355a9b39193e09ef7c38b807d7f3c221dce06b0cafd2e0ceccdfbb81712e4 02ea0fb17416889b400e0706eeacc0afc6b489b76158e8c26b9b77102df6bd60
|
||||
lib/codeql/rust/elements/internal/RetTypeReprImpl.qll 799e55ffcf27bf6f010419e1d61ebbbf3448e37b903b0f13984d0b44d6b7a999 be774bb09d121c35f40c75d5bee08918e7a6b5fccb4fd573fc55a650466b46e0
|
||||
lib/codeql/rust/elements/internal/ReturnExprConstructor.qll 57be5afbe20aa8db6e63c1f2871914c19c186730ad7dccaa424038c6305730d5 4d3c4f2e9b38a4b54ff26a0032455cdcca3d35fec201b6c932072a9e31fbb4fe
|
||||
lib/codeql/rust/elements/internal/ReturnTypeSyntaxConstructor.qll 8994672e504d1674e5773157d0ad8a0dc3aad3d64ef295e7722e647e78e36c11 abe7df754721f4ff7f3e3bb22d275976b2e9a1ef51436a461fe52ebd2d29cff1
|
||||
lib/codeql/rust/elements/internal/ReturnTypeSyntaxImpl.qll 554af21b52fedfc356cb873e25c2429e6660ae62ea01be708de4342960cf4048 cdc497a3693bb162a7528b75e902c4743b0a974c6c44152f822a16107a83bee4
|
||||
@@ -428,7 +428,7 @@ lib/codeql/rust/elements/internal/UnimplementedImpl.qll 06771abc088e0a8fc24032c9
|
||||
lib/codeql/rust/elements/internal/UnionConstructor.qll d650551a1b3ef29c5a770bdad626269cf539ed0c675af954bc847d2c6111f3f6 aca9064ad653a126ab4f03703e96b274587c852dc5e7ff3fea0fec4d45993f10
|
||||
lib/codeql/rust/elements/internal/UseBoundGenericArgImpl.qll 2f90bfd5e43113da1155445bef0334ab84acddef102bd62dfa2ef908717a5d09 dd2fa3c6081d79e1d96360dbdb339128cd944e7b7dc26c449c04f970ee1d7848
|
||||
lib/codeql/rust/elements/internal/UseBoundGenericArgsConstructor.qll 84d4a959d098fcd1713cb169e15b4945d846121701d2c5709b11e19202c21f2b 93113c92be9bc9f0b8530c308fe482dfeddc7dc827fc44049cecb3eab28df731
|
||||
lib/codeql/rust/elements/internal/UseBoundGenericArgsImpl.qll 0f98d47c1e09c46dd3da66a4770181a0caae0512b362faaec997af22bb5f4ce7 1919235e50b9d2fee9bd5d407a0bc023a02dbb04b2662349fad5a8d6cfa98069
|
||||
lib/codeql/rust/elements/internal/UseBoundGenericArgsImpl.qll f5c082fc8f7d9acc3783da18e61ad2c9831b46c1855e1bde9b7af95adc289ad9 eb83520c5333b199788638ccd70ee8e96fc3f05306072f51a76fd0a643f8930f
|
||||
lib/codeql/rust/elements/internal/UseConstructor.qll a4f790795e18abc29a50d6fbaa0db64cba781e3259a42cbf0468c24ac66b63e7 2fa288f073ac094a838c11f091def2c790b347b6a1b79407c11b10c73d6bff57
|
||||
lib/codeql/rust/elements/internal/UseTreeConstructor.qll 3e6e834100fcc7249f8a20f8bd9debe09b705fcf5a0e655537e71ac1c6f7956b cdbc84b8f1b009be1e4a7aaba7f5237823cea62c86b38f1794aad97e3dfcf64b
|
||||
lib/codeql/rust/elements/internal/UseTreeListConstructor.qll 973577da5d7b58eb245f108bd1ae2fecc5645f2795421dedf7687b067a233003 f41e5e3ffcb2a387e5c37f56c0b271e8dc20428b6ff4c63e1ee42fcfa4e67d0a
|
||||
@@ -584,13 +584,13 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 8d0ea4f6c7f8203340bf
|
||||
lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f
|
||||
lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9
|
||||
lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9
|
||||
lib/codeql/rust/elements/internal/generated/Raw.qll f50925f4925848cef73003adf01420566ca3efa16f491eadac62a30972ee9204 17d62252413618e1fa162c6c0b303ccfcac5f7f70cc170d739b20cc95f57035b
|
||||
lib/codeql/rust/elements/internal/generated/Raw.qll 3f86deef2f54093e3b4bd24237ba0d80fa94856fdcf2ba6a9812033bec6c0021 30cd773ce7a390afbdabd8a078f5f1408671eaca6fa7e213bed6196dfa872447
|
||||
lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66
|
||||
lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05
|
||||
lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b
|
||||
lib/codeql/rust/elements/internal/generated/Rename.qll 53dd50d35aa38cb6eb4174c94e8e23042b42bdc4f38df009489ebf707380483b db14fbce0d95b4dae3d7512f9bdee92e0dc2dffde5ba5d7458f2f5dd632876b0
|
||||
lib/codeql/rust/elements/internal/generated/RestPat.qll 369f5828bb78f2856d528679a9869f81859b375c2f831ff72f4507daaee976e3 17f24ce8aa6a27359c10a654667b7877ca7a1509509e2ab246ed26fe15ef66b4
|
||||
lib/codeql/rust/elements/internal/generated/RetTypeRepr.qll 853b7fd6c1f3678d0f9315ac23a99a0828a6e54148de24016a265039c7b1941c f1e140d2b113c494601143b735482869ee817c8a7d92026f6a511bc5c1420552
|
||||
lib/codeql/rust/elements/internal/generated/RetTypeRepr.qll 7e782d6ca346fd4057e95a6eefe796e3fba7eef62144a0df78e2d115a7ae9ba9 d5da144e06d180673fa7ce274c5e7e2ca2db12b064df1155bc56f2f9378b58b4
|
||||
lib/codeql/rust/elements/internal/generated/ReturnExpr.qll c9c05400d326cd8e0da11c3bfa524daa08b2579ecaee80e468076e5dd7911d56 e7694926727220f46a7617b6ca336767450e359c6fa3782e82b1e21d85d37268
|
||||
lib/codeql/rust/elements/internal/generated/ReturnTypeSyntax.qll 7b7692ca9fbe627afa0759050a740f0f42a8083446c1c3196084f5698fc570c3 96a735d60a3919c7c994f7b67930c9e51a3713940678d04a5fee54557d733c24
|
||||
lib/codeql/rust/elements/internal/generated/SelfParam.qll 076c583f7f34e29aaaf3319e9d64565a34c64caa5a6dfca240c0cc7800e9a14c 375afed1772d193b71980d3825c4ac438e90b295cba0baf58319d29a3a8463a0
|
||||
@@ -634,7 +634,7 @@ lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff12
|
||||
lib/codeql/rust/elements/internal/generated/Union.qll 456504e6a32991ba17ca65f97636f4dfb86c758c7f8509aaca1b0d0432231dfe c96068edfec3e0755a7726426a10996455ee9f0f2d678af258719f1943a3063e
|
||||
lib/codeql/rust/elements/internal/generated/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393
|
||||
lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8
|
||||
lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll cedde7ccf689e3a2a246113be94544c206c56fb1c01b83b074e1f6edd3acfced f022ea4c653d1b5f311917efde8e59be27394ce7f6abf2561bb1e42f93f74adf
|
||||
lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll 2cc8ab0068b7bf44ca17a62b32a8dd1d89cd743532c8a96b262b164fd81b0c36 347e7709a0f5ace197beb6827f6cf04a31ff68ff2dff3707914c6b910658d00a
|
||||
lib/codeql/rust/elements/internal/generated/UseTree.qll 3d7cbcc8ae76068b8f660c7d5b81b05595026043015cd6b4d42a60ed4c165811 b9f0bcf82feb31f31406e787670fee93e1aa0966bcc0e4cc285c342e88793e4e
|
||||
lib/codeql/rust/elements/internal/generated/UseTreeList.qll 38efaa569b76ca79be047703279388e8f64583a126b98078fbbb6586e0c6eb56 1623a50fd2d3b1e4b85323ad73dd655172f7cbc658d3506aaa6b409e9ebe576e
|
||||
lib/codeql/rust/elements/internal/generated/Variant.qll fa6909715133049b3dba4622e6262fa30c4a9478b6219ec4fd12e07c58750709 71fc2ddac97fc4c4e6b92a13ee217cccc81dffc7c12295b6bc97c56ad25a92cc
|
||||
|
||||
@@ -38,10 +38,7 @@ module Folder = Impl::Folder;
|
||||
|
||||
/** A file. */
|
||||
class File extends Container, Impl::File {
|
||||
/**
|
||||
* Holds if this file was extracted from the source code of the target project
|
||||
* (rather than another location such as inside a dependency).
|
||||
*/
|
||||
/** Holds if this file was extracted from ordinary source code. */
|
||||
predicate fromSource() {
|
||||
exists(ExtractorStep s | s.getAction() = "Extract" and s.getFile() = this)
|
||||
}
|
||||
|
||||
2
rust/ql/lib/codeql/rust/elements/RetTypeRepr.qll
generated
2
rust/ql/lib/codeql/rust/elements/RetTypeRepr.qll
generated
@@ -12,7 +12,7 @@ import codeql.rust.elements.TypeRepr
|
||||
*
|
||||
* For example:
|
||||
* ```rust
|
||||
* fn foo() -> i32 { 0 }
|
||||
* fn foo() -> i32 {}
|
||||
* // ^^^^^^
|
||||
* ```
|
||||
*/
|
||||
|
||||
@@ -12,7 +12,7 @@ import codeql.rust.elements.UseBoundGenericArg
|
||||
*
|
||||
* For example:
|
||||
* ```rust
|
||||
* pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> { 0 }
|
||||
* pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> {}
|
||||
* // ^^^^^^^^
|
||||
* ```
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,7 @@ module Impl {
|
||||
*
|
||||
* For example:
|
||||
* ```rust
|
||||
* fn foo() -> i32 { 0 }
|
||||
* fn foo() -> i32 {}
|
||||
* // ^^^^^^
|
||||
* ```
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,7 @@ module Impl {
|
||||
*
|
||||
* For example:
|
||||
* ```rust
|
||||
* pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> { 0 }
|
||||
* pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> {}
|
||||
* // ^^^^^^^^
|
||||
* ```
|
||||
*/
|
||||
|
||||
@@ -460,12 +460,7 @@ module Impl {
|
||||
VariableAccessCand cand, VariableScope scope, string name, int nestLevel, int ord
|
||||
) {
|
||||
name = cand.getName() and
|
||||
(
|
||||
scope = cand
|
||||
or
|
||||
not cand instanceof VariableScope and
|
||||
scope = getEnclosingScope(cand)
|
||||
) and
|
||||
scope = [cand.(VariableScope), getEnclosingScope(cand)] and
|
||||
ord = getPreOrderNumbering(scope, cand) and
|
||||
nestLevel = 0
|
||||
or
|
||||
|
||||
@@ -874,7 +874,7 @@ module Raw {
|
||||
*
|
||||
* For example:
|
||||
* ```rust
|
||||
* fn foo() -> i32 { 0 }
|
||||
* fn foo() -> i32 {}
|
||||
* // ^^^^^^
|
||||
* ```
|
||||
*/
|
||||
@@ -1270,7 +1270,7 @@ module Raw {
|
||||
*
|
||||
* For example:
|
||||
* ```rust
|
||||
* pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> { 0 }
|
||||
* pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> {}
|
||||
* // ^^^^^^^^
|
||||
* ```
|
||||
*/
|
||||
|
||||
@@ -19,7 +19,7 @@ module Generated {
|
||||
*
|
||||
* For example:
|
||||
* ```rust
|
||||
* fn foo() -> i32 { 0 }
|
||||
* fn foo() -> i32 {}
|
||||
* // ^^^^^^
|
||||
* ```
|
||||
* INTERNAL: Do not reference the `Generated::RetTypeRepr` class directly.
|
||||
|
||||
@@ -19,7 +19,7 @@ module Generated {
|
||||
*
|
||||
* For example:
|
||||
* ```rust
|
||||
* pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> { 0 }
|
||||
* pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> {}
|
||||
* // ^^^^^^^^
|
||||
* ```
|
||||
* INTERNAL: Do not reference the `Generated::UseBoundGenericArgs` class directly.
|
||||
|
||||
@@ -31,27 +31,6 @@ class BuiltinType extends Struct {
|
||||
string getName() { result = super.getName().getText() }
|
||||
}
|
||||
|
||||
/**
|
||||
* A numerical type, such as `i64`, `usize`, `f32` or `f64`.
|
||||
*/
|
||||
abstract private class NumericTypeImpl extends BuiltinType { }
|
||||
|
||||
final class NumericType = NumericTypeImpl;
|
||||
|
||||
/**
|
||||
* An integral numerical type, such as `i64` or `usize`.
|
||||
*/
|
||||
abstract private class IntegralTypeImpl extends NumericTypeImpl { }
|
||||
|
||||
final class IntegralType = IntegralTypeImpl;
|
||||
|
||||
/**
|
||||
* A floating-point numerical type, such as `f32` or `f64`.
|
||||
*/
|
||||
abstract private class FloatingPointTypeImpl extends NumericTypeImpl { }
|
||||
|
||||
final class FloatingPointType = FloatingPointTypeImpl;
|
||||
|
||||
/** The builtin `bool` type. */
|
||||
class Bool extends BuiltinType {
|
||||
Bool() { this.getName() = "bool" }
|
||||
@@ -68,71 +47,71 @@ class Str extends BuiltinType {
|
||||
}
|
||||
|
||||
/** The builtin `i8` type. */
|
||||
class I8 extends IntegralTypeImpl {
|
||||
class I8 extends BuiltinType {
|
||||
I8() { this.getName() = "i8" }
|
||||
}
|
||||
|
||||
/** The builtin `i16` type. */
|
||||
class I16 extends IntegralTypeImpl {
|
||||
class I16 extends BuiltinType {
|
||||
I16() { this.getName() = "i16" }
|
||||
}
|
||||
|
||||
/** The builtin `i32` type. */
|
||||
class I32 extends IntegralTypeImpl {
|
||||
class I32 extends BuiltinType {
|
||||
I32() { this.getName() = "i32" }
|
||||
}
|
||||
|
||||
/** The builtin `i64` type. */
|
||||
class I64 extends IntegralTypeImpl {
|
||||
class I64 extends BuiltinType {
|
||||
I64() { this.getName() = "i64" }
|
||||
}
|
||||
|
||||
/** The builtin `i128` type. */
|
||||
class I128 extends IntegralTypeImpl {
|
||||
class I128 extends BuiltinType {
|
||||
I128() { this.getName() = "i128" }
|
||||
}
|
||||
|
||||
/** The builtin `u8` type. */
|
||||
class U8 extends IntegralTypeImpl {
|
||||
class U8 extends BuiltinType {
|
||||
U8() { this.getName() = "u8" }
|
||||
}
|
||||
|
||||
/** The builtin `u16` type. */
|
||||
class U16 extends IntegralTypeImpl {
|
||||
class U16 extends BuiltinType {
|
||||
U16() { this.getName() = "u16" }
|
||||
}
|
||||
|
||||
/** The builtin `u32` type. */
|
||||
class U32 extends IntegralTypeImpl {
|
||||
class U32 extends BuiltinType {
|
||||
U32() { this.getName() = "u32" }
|
||||
}
|
||||
|
||||
/** The builtin `u64` type. */
|
||||
class U64 extends IntegralTypeImpl {
|
||||
class U64 extends BuiltinType {
|
||||
U64() { this.getName() = "u64" }
|
||||
}
|
||||
|
||||
/** The builtin `u128` type. */
|
||||
class U128 extends IntegralTypeImpl {
|
||||
class U128 extends BuiltinType {
|
||||
U128() { this.getName() = "u128" }
|
||||
}
|
||||
|
||||
/** The builtin `usize` type. */
|
||||
class Usize extends IntegralTypeImpl {
|
||||
class Usize extends BuiltinType {
|
||||
Usize() { this.getName() = "usize" }
|
||||
}
|
||||
|
||||
/** The builtin `isize` type. */
|
||||
class Isize extends IntegralTypeImpl {
|
||||
class Isize extends BuiltinType {
|
||||
Isize() { this.getName() = "isize" }
|
||||
}
|
||||
|
||||
/** The builtin `f32` type. */
|
||||
class F32 extends FloatingPointTypeImpl {
|
||||
class F32 extends BuiltinType {
|
||||
F32() { this.getName() = "f32" }
|
||||
}
|
||||
|
||||
/** The builtin `f64` type. */
|
||||
class F64 extends FloatingPointTypeImpl {
|
||||
class F64 extends BuiltinType {
|
||||
F64() { this.getName() = "f64" }
|
||||
}
|
||||
|
||||
@@ -73,14 +73,6 @@ query predicate multiplePositions(Element parent, int pos1, int pos2, string acc
|
||||
pos1 != pos2
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `va` is a variable access that refers to multiple variables.
|
||||
*/
|
||||
query predicate multipleVariableTargets(VariableAccess va, Variable v1) {
|
||||
va = v1.getAnAccess() and
|
||||
strictcount(va.getVariable()) > 1
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets counts of abstract syntax tree inconsistencies of each type.
|
||||
*/
|
||||
@@ -106,7 +98,4 @@ int getAstInconsistencyCounts(string type) {
|
||||
or
|
||||
type = "Multiple positions" and
|
||||
result = count(Element e | multiplePositions(_, _, _, _, e) | e)
|
||||
or
|
||||
type = "Multiple variable targets" and
|
||||
result = count(VariableAccess va | multipleVariableTargets(va, _) | va)
|
||||
}
|
||||
|
||||
@@ -232,14 +232,9 @@ import M2
|
||||
module Consistency {
|
||||
import M2::Consistency
|
||||
|
||||
private Type inferCertainTypeAdj(AstNode n, TypePath path) {
|
||||
result = CertainTypeInference::inferCertainType(n, path) and
|
||||
not result = TNeverType()
|
||||
}
|
||||
|
||||
predicate nonUniqueCertainType(AstNode n, TypePath path, Type t) {
|
||||
strictcount(inferCertainTypeAdj(n, path)) > 1 and
|
||||
t = inferCertainTypeAdj(n, path) and
|
||||
strictcount(CertainTypeInference::inferCertainType(n, path)) > 1 and
|
||||
t = CertainTypeInference::inferCertainType(n, path) and
|
||||
// Suppress the inconsistency if `n` is a self parameter and the type
|
||||
// mention for the self type has multiple types for a path.
|
||||
not exists(ImplItemNode impl, TypePath selfTypePath |
|
||||
@@ -283,7 +278,7 @@ private TypeMention getTypeAnnotation(AstNode n) {
|
||||
)
|
||||
or
|
||||
exists(Function f |
|
||||
result = getReturnTypeMention(f) and
|
||||
result = f.getRetType().getTypeRepr() and
|
||||
n = f.getFunctionBody()
|
||||
)
|
||||
}
|
||||
@@ -296,17 +291,6 @@ private Type inferAnnotatedType(AstNode n, TypePath path) {
|
||||
result = n.(ShorthandSelfParameterMention).resolveTypeAt(path)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `me` is a call to the `panic!` macro.
|
||||
*
|
||||
* `panic!` needs special treatment, because it expands to a block expression
|
||||
* that looks like it should have type `()` instead of the correct `!` type.
|
||||
*/
|
||||
pragma[nomagic]
|
||||
private predicate isPanicMacroCall(MacroExpr me) {
|
||||
me.getMacroCall().resolveMacro().(MacroRules).getName().getText() = "panic"
|
||||
}
|
||||
|
||||
/** Module for inferring certain type information. */
|
||||
module CertainTypeInference {
|
||||
pragma[nomagic]
|
||||
@@ -452,21 +436,14 @@ module CertainTypeInference {
|
||||
result = inferTupleRootType(n) and
|
||||
path.isEmpty()
|
||||
or
|
||||
result = inferBlockExprType(n, path)
|
||||
result = inferAsyncBlockExprRootType(n) and
|
||||
path.isEmpty()
|
||||
or
|
||||
result = inferArrayExprType(n) and
|
||||
path.isEmpty()
|
||||
or
|
||||
result = inferCastExprType(n, path)
|
||||
or
|
||||
exprHasUnitType(n) and
|
||||
path.isEmpty() and
|
||||
result instanceof UnitType
|
||||
or
|
||||
isPanicMacroCall(n) and
|
||||
path.isEmpty() and
|
||||
result instanceof NeverType
|
||||
or
|
||||
infersCertainTypeAt(n, path, result.getATypeParameter())
|
||||
}
|
||||
|
||||
@@ -603,8 +580,7 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat
|
||||
n2 = be.getRhs()
|
||||
)
|
||||
or
|
||||
n1 = n2.(MacroExpr).getMacroCall().getMacroCallExpansion() and
|
||||
not isPanicMacroCall(n2)
|
||||
n1 = n2.(MacroExpr).getMacroCall().getMacroCallExpansion()
|
||||
or
|
||||
n1 = n2.(MacroPat).getMacroCall().getMacroCallExpansion()
|
||||
or
|
||||
@@ -956,17 +932,14 @@ private predicate functionInfoBlanketLike(
|
||||
*/
|
||||
bindingset[path, type]
|
||||
private predicate isComplexRootStripped(TypePath path, Type type) {
|
||||
(
|
||||
path.isEmpty() and
|
||||
not validSelfType(type)
|
||||
or
|
||||
exists(TypeParameter tp |
|
||||
complexSelfRoot(_, tp) and
|
||||
path = TypePath::singleton(tp) and
|
||||
exists(type)
|
||||
)
|
||||
) and
|
||||
type != TNeverType()
|
||||
path.isEmpty() and
|
||||
not validSelfType(type)
|
||||
or
|
||||
exists(TypeParameter tp |
|
||||
complexSelfRoot(_, tp) and
|
||||
path = TypePath::singleton(tp) and
|
||||
exists(type)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1568,8 +1541,7 @@ private module MethodResolution {
|
||||
MethodCall getMethodCall() { result = mc_ }
|
||||
|
||||
Type getTypeAt(TypePath path) {
|
||||
result = mc_.getACandidateReceiverTypeAtSubstituteLookupTraits(derefChain, borrow, path) and
|
||||
not result = TNeverType()
|
||||
result = mc_.getACandidateReceiverTypeAtSubstituteLookupTraits(derefChain, borrow, path)
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
@@ -1882,7 +1854,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi
|
||||
}
|
||||
|
||||
private Type resolveRetType(TypePath path) {
|
||||
result = getReturnTypeMention(this).resolveTypeAt(path)
|
||||
result = this.getRetType().getTypeRepr().(TypeMention).resolveTypeAt(path)
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
@@ -2827,37 +2799,10 @@ private AssociatedTypeTypeParameter getFutureOutputTypeParameter() {
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
predicate isUnitBlockExpr(BlockExpr be) {
|
||||
not be.getStmtList().hasTailExpr() and
|
||||
not be = any(Callable c).getBody() and
|
||||
not be.hasLabel()
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
private Type inferBlockExprType(BlockExpr be, TypePath path) {
|
||||
private TraitType inferAsyncBlockExprRootType(AsyncBlockExpr abe) {
|
||||
// `typeEquality` handles the non-root case
|
||||
if be instanceof AsyncBlockExpr
|
||||
then (
|
||||
path.isEmpty() and
|
||||
result = getFutureTraitType()
|
||||
or
|
||||
isUnitBlockExpr(be) and
|
||||
path = TypePath::singleton(getFutureOutputTypeParameter()) and
|
||||
result instanceof UnitType
|
||||
) else (
|
||||
isUnitBlockExpr(be) and
|
||||
path.isEmpty() and
|
||||
result instanceof UnitType
|
||||
)
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
private predicate exprHasUnitType(Expr e) {
|
||||
e = any(IfExpr ie | not ie.hasElse())
|
||||
or
|
||||
e instanceof WhileExpr
|
||||
or
|
||||
e instanceof ForExpr
|
||||
exists(abe) and
|
||||
result = getFutureTraitType()
|
||||
}
|
||||
|
||||
final private class AwaitTarget extends Expr {
|
||||
|
||||
@@ -443,34 +443,6 @@ TypeMention getSelfParamTypeMention(SelfParam self) {
|
||||
result = self.getTypeRepr()
|
||||
}
|
||||
|
||||
/**
|
||||
* An element used to represent the implicit `()` return type of a function.
|
||||
*
|
||||
* Since the implicit type does not appear in the AST, we (somewhat arbitrarily)
|
||||
* choose the name of the function as a type mention. This works because there
|
||||
* is a one-to-one correspondence between a function and its name.
|
||||
*/
|
||||
class ShorthandReturnTypeMention extends TypeMention instanceof Name {
|
||||
private Function f;
|
||||
|
||||
ShorthandReturnTypeMention() {
|
||||
this = f.getName() and
|
||||
not f.getRetType().hasTypeRepr()
|
||||
}
|
||||
|
||||
override Type resolveTypeAt(TypePath typePath) {
|
||||
typePath.isEmpty() and
|
||||
result instanceof UnitType
|
||||
}
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
TypeMention getReturnTypeMention(Function f) {
|
||||
result.(ShorthandReturnTypeMention) = f.getName()
|
||||
or
|
||||
result = f.getRetType().getTypeRepr()
|
||||
}
|
||||
|
||||
class DynTraitTypeReprMention extends TypeMention instanceof DynTraitTypeRepr {
|
||||
private DynTraitType dynType;
|
||||
|
||||
|
||||
@@ -90,10 +90,7 @@ module SatisfiesBlanketConstraint<
|
||||
|
||||
Location getLocation() { result = at.getLocation() }
|
||||
|
||||
Type getTypeAt(TypePath path) {
|
||||
result = at.getTypeAt(blanketPath.appendInverse(path)) and
|
||||
not result = TNeverType()
|
||||
}
|
||||
Type getTypeAt(TypePath path) { result = at.getTypeAt(blanketPath.appendInverse(path)) }
|
||||
|
||||
string toString() { result = at.toString() + " [blanket at " + blanketPath.toString() + "]" }
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ class FunctionPosition extends TFunctionPosition {
|
||||
result = f.getParam(this.asPosition()).getTypeRepr()
|
||||
or
|
||||
this.isReturn() and
|
||||
result = getReturnTypeMention(f)
|
||||
result = f.getRetType().getTypeRepr()
|
||||
}
|
||||
|
||||
string toString() {
|
||||
@@ -227,10 +227,7 @@ module ArgIsInstantiationOf<
|
||||
final private class ArgFinal = Arg;
|
||||
|
||||
private class ArgSubst extends ArgFinal {
|
||||
Type getTypeAt(TypePath path) {
|
||||
result = substituteLookupTraits(super.getTypeAt(path)) and
|
||||
not result = TNeverType()
|
||||
}
|
||||
Type getTypeAt(TypePath path) { result = substituteLookupTraits(super.getTypeAt(path)) }
|
||||
}
|
||||
|
||||
private module IsInstantiationOfInput implements
|
||||
@@ -335,10 +332,10 @@ module ArgsAreInstantiationsOf<ArgsAreInstantiationsOfInputSig Input> {
|
||||
CallAndPos cp, Input::Call call, FunctionPosition pos, int rnk, Function f,
|
||||
TypeAbstraction abs, AssocFunctionType constraint
|
||||
) {
|
||||
cp = MkCallAndPos(call, pragma[only_bind_into](pos)) and
|
||||
cp = MkCallAndPos(call, pos) and
|
||||
call.hasTargetCand(abs, f) and
|
||||
toCheckRanked(abs, f, pragma[only_bind_into](pos), rnk) and
|
||||
Input::toCheck(abs, f, pragma[only_bind_into](pos), constraint)
|
||||
toCheckRanked(abs, f, pos, rnk) and
|
||||
Input::toCheck(abs, f, pos, constraint)
|
||||
}
|
||||
|
||||
pragma[nomagic]
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
/**
|
||||
* Classes to represent barriers commonly used in dataflow and taint tracking
|
||||
* configurations.
|
||||
*/
|
||||
|
||||
import rust
|
||||
private import codeql.rust.dataflow.DataFlow
|
||||
private import codeql.rust.internal.TypeInference as TypeInference
|
||||
private import codeql.rust.internal.Type
|
||||
private import codeql.rust.frameworks.stdlib.Builtins
|
||||
|
||||
/**
|
||||
* A node whose type is a numeric or boolean type, which may be an appropriate
|
||||
* taint flow barrier for some queries.
|
||||
*/
|
||||
class NumericTypeBarrier extends DataFlow::Node {
|
||||
NumericTypeBarrier() {
|
||||
exists(StructType t, Struct s |
|
||||
t = TypeInference::inferType(this.asExpr().getExpr()) and
|
||||
s = t.getStruct()
|
||||
|
|
||||
s instanceof NumericType or
|
||||
s instanceof Bool
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A node whose type is an integral (integer) or boolean type, which may be an
|
||||
* appropriate taint flow barrier for some queries.
|
||||
*/
|
||||
class IntegralOrBooleanTypeBarrier extends DataFlow::Node {
|
||||
IntegralOrBooleanTypeBarrier() {
|
||||
exists(StructType t, Struct s |
|
||||
t = TypeInference::inferType(this.asExpr().getExpr()) and
|
||||
s = t.getStruct()
|
||||
|
|
||||
s instanceof IntegralType or
|
||||
s instanceof Bool
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,6 @@ private import codeql.rust.dataflow.DataFlow
|
||||
private import codeql.rust.dataflow.FlowSink
|
||||
private import codeql.rust.Concepts
|
||||
private import codeql.util.Unit
|
||||
private import codeql.rust.security.Barriers as Barriers
|
||||
|
||||
/**
|
||||
* Provides default sources, sinks and barriers for detecting log injection
|
||||
@@ -43,10 +42,4 @@ module LogInjection {
|
||||
private class ModelsAsDataSink extends Sink {
|
||||
ModelsAsDataSink() { sinkNode(this, "log-injection") }
|
||||
}
|
||||
|
||||
/**
|
||||
* A barrier for log injection vulnerabilities for nodes whose type is a
|
||||
* numeric or boolean type, which is unlikely to expose any vulnerability.
|
||||
*/
|
||||
private class NumericTypeBarrier extends Barrier instanceof Barriers::NumericTypeBarrier { }
|
||||
}
|
||||
|
||||
@@ -9,7 +9,8 @@ private import codeql.rust.dataflow.DataFlow
|
||||
private import codeql.rust.dataflow.FlowSink
|
||||
private import codeql.rust.Concepts
|
||||
private import codeql.util.Unit
|
||||
private import codeql.rust.security.Barriers as Barriers
|
||||
private import codeql.rust.controlflow.ControlFlowGraph as Cfg
|
||||
private import codeql.rust.controlflow.CfgNodes as CfgNodes
|
||||
|
||||
/**
|
||||
* Provides default sources, sinks and barriers for detecting SQL injection
|
||||
@@ -60,8 +61,155 @@ module SqlInjection {
|
||||
}
|
||||
|
||||
/**
|
||||
* A barrier for SQL injection vulnerabilities for nodes whose type is a numeric or
|
||||
* boolean type, which is unlikely to expose any vulnerability.
|
||||
* A barrier for SQL injection vulnerabilities for nodes that result from parsing to numeric types.
|
||||
*
|
||||
* Numeric types are considered safe because they cannot contain SQL injection payloads.
|
||||
* This barrier stops taint flow when untrusted data is parsed to a numeric type like i32, u32, f64, etc.
|
||||
*/
|
||||
private class NumericTypeBarrier extends Barrier instanceof Barriers::NumericTypeBarrier { }
|
||||
private class NumericTypeBarrier extends Barrier {
|
||||
NumericTypeBarrier() {
|
||||
// Match dataflow nodes that come from the result of parsing strings to numeric types
|
||||
// The parse method is called with a turbofish operator specifying the target type: .parse::<i32>()
|
||||
exists(MethodCallExpr parse, string typeName |
|
||||
parse.getIdentifier().getText() = "parse" and
|
||||
this.asExpr().getExpr() = parse and
|
||||
// Extract the type name from the generic argument list
|
||||
typeName = parse.getGenericArgList().toString() and
|
||||
// Check if it's a numeric type
|
||||
(
|
||||
typeName.matches("%i8%") or
|
||||
typeName.matches("%i16%") or
|
||||
typeName.matches("%i32%") or
|
||||
typeName.matches("%i64%") or
|
||||
typeName.matches("%i128%") or
|
||||
typeName.matches("%isize%") or
|
||||
typeName.matches("%u8%") or
|
||||
typeName.matches("%u16%") or
|
||||
typeName.matches("%u32%") or
|
||||
typeName.matches("%u64%") or
|
||||
typeName.matches("%u128%") or
|
||||
typeName.matches("%usize%") or
|
||||
typeName.matches("%f32%") or
|
||||
typeName.matches("%f64%")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if comparison `guard` validates `node` by comparing it with a string literal
|
||||
* when `branch` is true.
|
||||
*/
|
||||
private predicate stringConstCompare(CfgNodes::AstCfgNode guard, Cfg::CfgNode node, boolean branch) {
|
||||
exists(EqualsOperation eq |
|
||||
guard = eq.getACfgNode() and
|
||||
branch = true and
|
||||
(
|
||||
// node == "literal" or "literal" == node
|
||||
node = eq.getLhs().getACfgNode() and
|
||||
eq.getRhs() instanceof StringLiteralExpr
|
||||
or
|
||||
node = eq.getRhs().getACfgNode() and
|
||||
eq.getLhs() instanceof StringLiteralExpr
|
||||
)
|
||||
)
|
||||
or
|
||||
exists(NotEqualsOperation ne |
|
||||
guard = ne.getACfgNode() and
|
||||
branch = false and
|
||||
(
|
||||
// node != "literal" or "literal" != node
|
||||
node = ne.getLhs().getACfgNode() and
|
||||
ne.getRhs() instanceof StringLiteralExpr
|
||||
or
|
||||
node = ne.getRhs().getACfgNode() and
|
||||
ne.getLhs() instanceof StringLiteralExpr
|
||||
)
|
||||
)
|
||||
or
|
||||
// Handle multiple comparisons with OR
|
||||
stringConstCompareOr(guard, node, branch)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `guard` is an OR expression where both operands compare `node`
|
||||
* with string literals when `branch` is true.
|
||||
*/
|
||||
private predicate stringConstCompareOr(
|
||||
CfgNodes::AstCfgNode guard, Cfg::CfgNode node, boolean branch
|
||||
) {
|
||||
exists(LogicalOrExpr orExpr, EqualsOperation eqLeft, EqualsOperation eqRight |
|
||||
guard = orExpr.getACfgNode() and
|
||||
branch = true and
|
||||
eqLeft.getACfgNode() = orExpr.getLhs().getACfgNode() and
|
||||
eqRight.getACfgNode() = orExpr.getRhs().getACfgNode() and
|
||||
// Both sides must compare the same node against string literals
|
||||
(
|
||||
node = eqLeft.getLhs().getACfgNode() and
|
||||
node = eqRight.getLhs().getACfgNode() and
|
||||
eqLeft.getRhs() instanceof StringLiteralExpr and
|
||||
eqRight.getRhs() instanceof StringLiteralExpr
|
||||
or
|
||||
node = eqLeft.getRhs().getACfgNode() and
|
||||
node = eqRight.getRhs().getACfgNode() and
|
||||
eqLeft.getLhs() instanceof StringLiteralExpr and
|
||||
eqRight.getLhs() instanceof StringLiteralExpr
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* A barrier for SQL injection vulnerabilities where the data is validated
|
||||
* against one or more constant string values.
|
||||
*
|
||||
* For example, `if remote_string == "admin"` or `if remote_string == "person" || remote_string == "vehicle"`.
|
||||
*/
|
||||
private class StringConstCompareBarrier extends Barrier {
|
||||
StringConstCompareBarrier() {
|
||||
this = DataFlow::BarrierGuard<stringConstCompare/3>::getABarrierNode()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `guard` is a call to a collection contains/includes method that checks
|
||||
* if `node` is in a collection of string literals.
|
||||
*/
|
||||
private predicate stringConstArrayInclusionCall(
|
||||
CfgNodes::AstCfgNode guard, Cfg::CfgNode node, boolean branch
|
||||
) {
|
||||
exists(MethodCallExpr call |
|
||||
guard = call.getACfgNode() and
|
||||
branch = true and
|
||||
// Check for contains() method call
|
||||
call.getIdentifier().getText() = "contains" and
|
||||
// The argument should be the node we're checking
|
||||
node = call.getArgList().getAnArg().getACfgNode() and
|
||||
// The receiver should be an array/slice/collection of string literals
|
||||
exists(Expr receiver |
|
||||
receiver = call.getReceiver() and
|
||||
isArrayOfStringLiterals(receiver)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `expr` is an array or slice literal containing only string literals.
|
||||
*/
|
||||
private predicate isArrayOfStringLiterals(Expr expr) {
|
||||
// Array literal: ["str1", "str2", "str3"]
|
||||
expr instanceof ArrayListExpr and
|
||||
forex(Expr elem | elem = expr.(ArrayListExpr).getExpr(_) | elem instanceof StringLiteralExpr)
|
||||
}
|
||||
|
||||
/**
|
||||
* A barrier for SQL injection where the data is validated by checking
|
||||
* if it's contained in a collection of constant string values.
|
||||
*
|
||||
* For example, `if ["admin", "user"].contains(&remote_string)`.
|
||||
*/
|
||||
private class StringConstArrayInclusionCallBarrier extends Barrier {
|
||||
StringConstArrayInclusionCallBarrier() {
|
||||
this = DataFlow::BarrierGuard<stringConstArrayInclusionCall/3>::getABarrierNode()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ private import codeql.rust.dataflow.DataFlow
|
||||
private import codeql.rust.controlflow.CfgNodes
|
||||
private import codeql.rust.dataflow.FlowSink
|
||||
private import codeql.rust.Concepts
|
||||
private import codeql.rust.security.Barriers as Barriers
|
||||
|
||||
/**
|
||||
* Provides default sources, sinks and barriers for detecting regular expression
|
||||
@@ -88,14 +87,4 @@ module RegexInjection {
|
||||
.getText() = "escape"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A barrier for regular expression injection vulnerabilities for nodes whose
|
||||
* type is an integral or boolean type, which is unlikely to expose any vulnerability.
|
||||
*
|
||||
* We don't include floating point types in this barrier, as `.` is a special character
|
||||
* in regular expressions.
|
||||
*/
|
||||
private class IntegralOrBooleanTypeBarrier extends Barrier instanceof Barriers::IntegralOrBooleanTypeBarrier
|
||||
{ }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* The `rust/sql-injection` query now includes taint flow barriers to reduce false positives. Specifically:
|
||||
* Data parsed to numeric types (e.g., `.parse::<i32>()`) is now recognized as safe.
|
||||
* Data validated against one or more constant string values (e.g., `if x == "admin"` or `if x == "user" || x == "guest"`) is now recognized as safe within the validated branch.
|
||||
* Data validated using collection membership checks against string literals (e.g., `if ["admin", "user"].contains(&x)`) is now recognized as safe within the validated branch.
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* Taint flow barriers have been added to the `rust/regex-injection`, `rust/sql-injection` and `rust/log-injection`, reducing the frequency of false positive results for these queries.
|
||||
@@ -8,21 +8,8 @@ import rust
|
||||
import codeql.util.ReportStats
|
||||
import codeql.rust.internal.TypeInference as TypeInference
|
||||
|
||||
/**
|
||||
* A file that is included in the quality statistics.
|
||||
*/
|
||||
private class RelevantFile extends File {
|
||||
RelevantFile() {
|
||||
// files that are not skipped by the compilation
|
||||
not this.(ExtractedFile).isSkippedByCompilation()
|
||||
}
|
||||
}
|
||||
|
||||
module CallTargetStats implements StatsSig {
|
||||
int getNumberOfOk() {
|
||||
result =
|
||||
count(CallExprBase c | c.getFile() instanceof RelevantFile and exists(c.getStaticTarget()))
|
||||
}
|
||||
int getNumberOfOk() { result = count(CallExprBase c | exists(c.getStaticTarget())) }
|
||||
|
||||
private predicate isLambdaCall(CallExpr call) {
|
||||
exists(Expr receiver | receiver = call.getFunction() |
|
||||
@@ -32,7 +19,6 @@ module CallTargetStats implements StatsSig {
|
||||
}
|
||||
|
||||
additional predicate isNotOkCall(CallExprBase c) {
|
||||
c.getFile() instanceof RelevantFile and
|
||||
not exists(c.getStaticTarget()) and
|
||||
not isLambdaCall(c)
|
||||
}
|
||||
@@ -45,13 +31,9 @@ module CallTargetStats implements StatsSig {
|
||||
}
|
||||
|
||||
module MacroCallTargetStats implements StatsSig {
|
||||
int getNumberOfOk() {
|
||||
result = count(MacroCall c | c.getFile() instanceof RelevantFile and c.hasMacroCallExpansion())
|
||||
}
|
||||
int getNumberOfOk() { result = count(MacroCall c | c.hasMacroCallExpansion()) }
|
||||
|
||||
additional predicate isNotOkCall(MacroCall c) {
|
||||
c.getFile() instanceof RelevantFile and not c.hasMacroCallExpansion()
|
||||
}
|
||||
additional predicate isNotOkCall(MacroCall c) { not c.hasMacroCallExpansion() }
|
||||
|
||||
int getNumberOfNotOk() { result = count(MacroCall c | isNotOkCall(c)) }
|
||||
|
||||
@@ -63,23 +45,9 @@ module MacroCallTargetStats implements StatsSig {
|
||||
private predicate hasGoodType(Expr e) { exists(TypeInference::inferType(e, _)) }
|
||||
|
||||
module ExprTypeStats implements StatsSig {
|
||||
int getNumberOfOk() {
|
||||
result =
|
||||
count(Expr e |
|
||||
e.getFile() instanceof RelevantFile and
|
||||
e.fromSource() and
|
||||
hasGoodType(e)
|
||||
)
|
||||
}
|
||||
int getNumberOfOk() { result = count(Expr e | e.fromSource() and hasGoodType(e)) }
|
||||
|
||||
int getNumberOfNotOk() {
|
||||
result =
|
||||
count(Expr e |
|
||||
e.getFile() instanceof RelevantFile and
|
||||
e.fromSource() and
|
||||
not hasGoodType(e)
|
||||
)
|
||||
}
|
||||
int getNumberOfNotOk() { result = count(Expr e | e.fromSource() and not hasGoodType(e)) }
|
||||
|
||||
string getOkText() { result = "expressions with known type" }
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ MacroItems/gen_macro_items.rs c00f8045d9a7d6562da1d0136b335b685e2ec5dbd708763faa
|
||||
MacroPat/gen_macro_pat.rs 6bc63338397e6ef322a1824ce7d8fa68629a81c740f6e1d5347642501c83683a 6bc63338397e6ef322a1824ce7d8fa68629a81c740f6e1d5347642501c83683a
|
||||
MacroRules/gen_macro_rules.rs 5483484783b19a4f4cb7565cf63c517e61a76ce5b5b4bdc9b90f7e235a4c03b7 5483484783b19a4f4cb7565cf63c517e61a76ce5b5b4bdc9b90f7e235a4c03b7
|
||||
MacroTypeRepr/gen_macro_type_repr.rs cdb9670dde8b2a71256bc8d4acb1d63bd726cb49ee486ca2dbf1952884fd9c37 cdb9670dde8b2a71256bc8d4acb1d63bd726cb49ee486ca2dbf1952884fd9c37
|
||||
MatchArm/gen_match_arm.rs 4f4e717930729b2161b9cf9cd5e2b86b8e919204f5f7d4993d2c4e1034858cea 4f4e717930729b2161b9cf9cd5e2b86b8e919204f5f7d4993d2c4e1034858cea
|
||||
MatchArm/gen_match_arm.rs ac75b4836a103e2755bd47a1ee1b74af6eb8349adc4ebedaaa27b3ea3ae41aa5 ac75b4836a103e2755bd47a1ee1b74af6eb8349adc4ebedaaa27b3ea3ae41aa5
|
||||
MatchArmList/gen_match_arm_list.rs 6dcb92591c86771d2aeb762e4274d3e61a7d6c1a42da3dbace1cbc545b474080 6dcb92591c86771d2aeb762e4274d3e61a7d6c1a42da3dbace1cbc545b474080
|
||||
MatchExpr/gen_match_expr.rs 081c5d4c78cb71ccd13fb37a93d7f525267c51b179f44b5a22ca3297897002a0 081c5d4c78cb71ccd13fb37a93d7f525267c51b179f44b5a22ca3297897002a0
|
||||
MatchGuard/gen_match_guard.rs f0e84a1f608c0361983c516a40216cea149620a36e0aed7ff39b0b7d77a9ab8a f0e84a1f608c0361983c516a40216cea149620a36e0aed7ff39b0b7d77a9ab8a
|
||||
@@ -106,7 +106,7 @@ RefPat/gen_ref_pat.rs aba7518649d9a37928e59a40d42f76cc0f4735e8daf711a3def6d2f052
|
||||
RefTypeRepr/gen_ref_type_repr.rs cf7b32d64550cd0b5033869b841089c1de292a1b25d3bd44c63ef9a265b9c8fb cf7b32d64550cd0b5033869b841089c1de292a1b25d3bd44c63ef9a265b9c8fb
|
||||
Rename/gen_rename.rs 05957dd5c7a0971223a485207ef3e98b0408a3e765cfb1fd6237bcc21c89f21a 05957dd5c7a0971223a485207ef3e98b0408a3e765cfb1fd6237bcc21c89f21a
|
||||
RestPat/gen_rest_pat.rs e9c977c8d3fce1d931abdfc025444e3e883468927f784ad1791670cace736aa7 e9c977c8d3fce1d931abdfc025444e3e883468927f784ad1791670cace736aa7
|
||||
RetTypeRepr/gen_ret_type_repr.rs b5d66327b445e8290be59a4fc4217d8163aa5ab5e49d9335efa1037b7ca5dc6f b5d66327b445e8290be59a4fc4217d8163aa5ab5e49d9335efa1037b7ca5dc6f
|
||||
RetTypeRepr/gen_ret_type_repr.rs 9db86003c7a4d91aa13fbc8220559bea6a05221c38c3f3ac0e03c6ac790aebcc 9db86003c7a4d91aa13fbc8220559bea6a05221c38c3f3ac0e03c6ac790aebcc
|
||||
ReturnExpr/gen_return_expr.rs 4f6ef29d7b3c60d6d71d1a6034a0721671f517428ba21897361a92b01009d38f 4f6ef29d7b3c60d6d71d1a6034a0721671f517428ba21897361a92b01009d38f
|
||||
ReturnTypeSyntax/gen_return_type_syntax.rs 648ce343023e7f80c445fada390870c5498add7fdf63dc82a800f6a77b7e7026 648ce343023e7f80c445fada390870c5498add7fdf63dc82a800f6a77b7e7026
|
||||
SelfParam/gen_self_param.rs 15491f86a32020c9ed3ecadc08c945ed01916b63683f95d2f5c1bedb4f3f01f2 15491f86a32020c9ed3ecadc08c945ed01916b63683f95d2f5c1bedb4f3f01f2
|
||||
@@ -142,7 +142,7 @@ TypeParam/gen_type_param.rs 00b92ac7042ae83be1e37cd22f6d02098ca3157dc1ef45fbdf3b
|
||||
UnderscoreExpr/gen_underscore_expr.rs fe34e99d322bf86c0f5509c9b5fd6e1e8abbdf63dbe7e01687344a41e9aabe52 fe34e99d322bf86c0f5509c9b5fd6e1e8abbdf63dbe7e01687344a41e9aabe52
|
||||
Union/gen_union.rs 0adc276bf324661137b4de7c4522afd5f7b2776e913c4a6ecc580ce3d753a51d 0adc276bf324661137b4de7c4522afd5f7b2776e913c4a6ecc580ce3d753a51d
|
||||
Use/gen_use.rs 3a8a426109080ce2a0ed5a68a83cfa195196c9f0a14eff328b7be54d1131eede 3a8a426109080ce2a0ed5a68a83cfa195196c9f0a14eff328b7be54d1131eede
|
||||
UseBoundGenericArgs/gen_use_bound_generic_args.rs 7b9542a4fd4025bdef5e3fab0e76a85c533936793d8791b5e4ed93d6d1e503e9 7b9542a4fd4025bdef5e3fab0e76a85c533936793d8791b5e4ed93d6d1e503e9
|
||||
UseBoundGenericArgs/gen_use_bound_generic_args.rs 1da801583b77f5f064d729a1d4313a863f1ad2e1dcc11c963194839cba977367 1da801583b77f5f064d729a1d4313a863f1ad2e1dcc11c963194839cba977367
|
||||
UseTree/gen_use_tree.rs 90660192ec361e96d0fee9dc03c34fcdf0a102269df33be45856c63ad5d18ff2 90660192ec361e96d0fee9dc03c34fcdf0a102269df33be45856c63ad5d18ff2
|
||||
UseTreeList/gen_use_tree_list.rs 2494aadcec03a3f7a6e2ae448ee70ec6774f840e9519c668b2afe8cd968211c9 2494aadcec03a3f7a6e2ae448ee70ec6774f840e9519c668b2afe8cd968211c9
|
||||
Variant/gen_variant.rs fa3d3a9e3e0c3aa565b965fad9c3dc2ffd5a8d82963e3a55a9acbb0f14b603d6 fa3d3a9e3e0c3aa565b965fad9c3dc2ffd5a8d82963e3a55a9acbb0f14b603d6
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// generated by codegen, do not edit
|
||||
|
||||
fn test_match_arm(x: i32) {
|
||||
fn test_match_arm(x: i32) -> i32 {
|
||||
// A match arm. For example:
|
||||
match x {
|
||||
Option::Some(y) => y,
|
||||
|
||||
@@ -4,6 +4,6 @@ fn test_ret_type_repr() -> () {
|
||||
// A return type in a function signature.
|
||||
//
|
||||
// For example:
|
||||
fn foo() -> i32 { 0 }
|
||||
fn foo() -> i32 {}
|
||||
// ^^^^^^
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@ fn test_use_bound_generic_args() -> () {
|
||||
// A use<..> bound to control which generic parameters are captured by an impl Trait return type.
|
||||
//
|
||||
// For example:
|
||||
pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> { 0 }
|
||||
pub fn hello<'a, T, const N: usize>() -> impl Sized + use<'a, T, N> {}
|
||||
// ^^^^^^^^
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
| struct bool | |
|
||||
| struct char | |
|
||||
| struct f32 | FloatingPointType, NumericType |
|
||||
| struct f64 | FloatingPointType, NumericType |
|
||||
| struct i8 | IntegralType, NumericType |
|
||||
| struct i16 | IntegralType, NumericType |
|
||||
| struct i32 | IntegralType, NumericType |
|
||||
| struct i64 | IntegralType, NumericType |
|
||||
| struct i128 | IntegralType, NumericType |
|
||||
| struct isize | IntegralType, NumericType |
|
||||
| struct str | |
|
||||
| struct u8 | IntegralType, NumericType |
|
||||
| struct u16 | IntegralType, NumericType |
|
||||
| struct u32 | IntegralType, NumericType |
|
||||
| struct u64 | IntegralType, NumericType |
|
||||
| struct u128 | IntegralType, NumericType |
|
||||
| struct usize | IntegralType, NumericType |
|
||||
@@ -1,14 +0,0 @@
|
||||
import rust
|
||||
import codeql.rust.frameworks.stdlib.Builtins
|
||||
import codeql.rust.internal.Type
|
||||
|
||||
string describe(BuiltinType t) {
|
||||
t instanceof NumericType and result = "NumericType"
|
||||
or
|
||||
t instanceof IntegralType and result = "IntegralType"
|
||||
or
|
||||
t instanceof FloatingPointType and result = "FloatingPointType"
|
||||
}
|
||||
|
||||
from BuiltinType t
|
||||
select t.toString(), concat(describe(t), ", ")
|
||||
@@ -1,7 +0,0 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "test"
|
||||
version = "0.0.1"
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
// --- tests ---
|
||||
|
||||
fn test_types() {
|
||||
}
|
||||
@@ -9,9 +9,9 @@ multipleCallTargets
|
||||
| main.rs:590:9:590:18 | ...::m(...) |
|
||||
| main.rs:591:9:591:20 | ... .m() |
|
||||
| main.rs:592:9:592:24 | ...::m(...) |
|
||||
| main.rs:2524:13:2524:31 | ...::from(...) |
|
||||
| main.rs:2525:13:2525:31 | ...::from(...) |
|
||||
| main.rs:2526:13:2526:31 | ...::from(...) |
|
||||
| main.rs:2532:13:2532:31 | ...::from(...) |
|
||||
| main.rs:2533:13:2533:31 | ...::from(...) |
|
||||
| main.rs:2534:13:2534:31 | ...::from(...) |
|
||||
| main.rs:2519:13:2519:31 | ...::from(...) |
|
||||
| main.rs:2520:13:2520:31 | ...::from(...) |
|
||||
| main.rs:2521:13:2521:31 | ...::from(...) |
|
||||
| main.rs:2527:13:2527:31 | ...::from(...) |
|
||||
| main.rs:2528:13:2528:31 | ...::from(...) |
|
||||
| main.rs:2529:13:2529:31 | ...::from(...) |
|
||||
|
||||
@@ -2122,10 +2122,6 @@ mod async_ {
|
||||
async { S1 }
|
||||
}
|
||||
|
||||
fn f3() -> impl Future<Output = ()> {
|
||||
async {}
|
||||
}
|
||||
|
||||
struct S2;
|
||||
|
||||
impl Future for S2 {
|
||||
@@ -2139,15 +2135,14 @@ mod async_ {
|
||||
}
|
||||
}
|
||||
|
||||
fn f4() -> impl Future<Output = S1> {
|
||||
fn f3() -> impl Future<Output = S1> {
|
||||
S2
|
||||
}
|
||||
|
||||
pub async fn f() {
|
||||
f1().await.f(); // $ target=S1f target=f1
|
||||
f2().await.f(); // $ target=S1f target=f2
|
||||
f3().await; // $ target=f3
|
||||
f4().await.f(); // $ target=S1f target=f4
|
||||
f3().await.f(); // $ target=S1f target=f3
|
||||
S2.await.f(); // $ target=S1f
|
||||
let b = async { S1 };
|
||||
b.await.f(); // $ target=S1f
|
||||
@@ -2829,52 +2824,6 @@ mod if_expr {
|
||||
}
|
||||
}
|
||||
|
||||
mod local_function {
|
||||
pub fn f() -> () {
|
||||
fn local(x: i32) -> i32 {
|
||||
x + 1 // $ target=add
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mod block_types {
|
||||
#[rustfmt::skip]
|
||||
fn f1(cond: bool) -> i32 {
|
||||
// Block that evaluates to unit
|
||||
let a = { // $ type=a:()
|
||||
if cond {
|
||||
return 12;
|
||||
}
|
||||
};
|
||||
0
|
||||
}
|
||||
|
||||
#[rustfmt::skip]
|
||||
fn f2() -> i32 {
|
||||
// Block that does not evaluate to unit
|
||||
let b = 'label: { // $ MISSING: b:i32
|
||||
break 'label 12;
|
||||
};
|
||||
println!("b: {:?}", b);
|
||||
0
|
||||
}
|
||||
|
||||
fn f3() -> i32 {
|
||||
return 0;
|
||||
} // should only have type `i32`, not `()`
|
||||
|
||||
#[rustfmt::skip]
|
||||
fn f4(cond: bool) -> i32 {
|
||||
let a = { // $ certainType=a:()
|
||||
if cond {
|
||||
return 12;
|
||||
};
|
||||
};
|
||||
println!("a: {:?}", a);
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
mod blanket_impl;
|
||||
mod closure;
|
||||
mod dereference;
|
||||
@@ -2914,5 +2863,4 @@ fn main() {
|
||||
pattern_matching_experimental::box_patterns(); // $ target=box_patterns
|
||||
dyn_type::test(); // $ target=test
|
||||
if_expr::f(true); // $ target=f
|
||||
local_function::f(); // $ target=f
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user