Merge pull request #18329 from michaelnebel/csharp/params

C# 13: params modifier on collection types.
This commit is contained in:
Michael Nebel
2025-01-03 15:07:47 +01:00
committed by GitHub
30 changed files with 2236 additions and 1754 deletions

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* C# 13: Added QL library support for *collection* like type `params` parameters.

View File

@@ -8,6 +8,7 @@ import Stmt
import Type
import exprs.Call
private import commons.QualifiedName
private import commons.Collections
private import semmle.code.csharp.ExprOrStmtParent
private import semmle.code.csharp.metrics.Complexity
private import TypeRef
@@ -273,7 +274,7 @@ class Method extends Callable, Virtualizable, Attributable, @method {
Type getParamsType() {
exists(Parameter last | last = this.getParameter(this.getNumberOfParameters() - 1) |
last.isParams() and
result = last.getType().(ArrayType).getElementType()
result = last.getType().(ParamsCollectionType).getElementType()
)
}

View File

@@ -157,7 +157,7 @@ class Parameter extends LocalScopeVariable, Attributable, TopLevelExprParent, @p
predicate isOutOrRef() { this.isOut() or this.isRef() }
/**
* Holds if this parameter is a parameter array. For example, `args`
* Holds if this parameter is a parameter collection. For example, `args`
* is a parameter array in
*
* ```csharp

View File

@@ -2,6 +2,8 @@
import csharp
import semmle.code.csharp.frameworks.system.Collections
private import semmle.code.csharp.frameworks.System
private import semmle.code.csharp.frameworks.system.collections.Generic
private string modifyMethodName() {
result =
@@ -67,6 +69,42 @@ class CollectionType extends RefType {
}
}
/**
* A collection type that can be used as a `params` parameter type.
*/
abstract private class ParamsCollectionTypeImpl extends ValueOrRefType {
/**
* Gets the element type of this collection, for example `int` in `IEnumerable<int>`.
*/
abstract Type getElementType();
}
private class ParamsArrayType extends ParamsCollectionTypeImpl instanceof ArrayType {
override Type getElementType() { result = ArrayType.super.getElementType() }
}
private class ParamsConstructedCollectionTypes extends ParamsCollectionTypeImpl {
private ConstructedType base;
ParamsConstructedCollectionTypes() {
exists(UnboundGenericType unboundbase |
base = this.getABaseType*() and unboundbase = base.getUnboundGeneric()
|
unboundbase instanceof SystemCollectionsGenericIEnumerableTInterface or
unboundbase instanceof SystemCollectionsGenericICollectionInterface or
unboundbase instanceof SystemCollectionsGenericIListTInterface or
unboundbase instanceof SystemCollectionsGenericIReadOnlyCollectionTInterface or
unboundbase instanceof SystemCollectionsGenericIReadOnlyListTInterface or
unboundbase instanceof SystemSpanStruct or
unboundbase instanceof SystemReadOnlySpanStruct
)
}
override Type getElementType() { result = base.getTypeArgument(0) }
}
final class ParamsCollectionType = ParamsCollectionTypeImpl;
/** Holds if `t` is a collection type. */
predicate isCollectionType(ValueOrRefType t) {
t.getABaseType*() instanceof SystemCollectionsIEnumerableInterface and

View File

@@ -774,7 +774,7 @@ predicate simpleLocalFlowStep(Node nodeFrom, Node nodeTo, string model) {
/**
* Holds if `arg` is a `params` argument of `c`, for parameter `p`, and `arg` will
* be wrapped in an array by the C# compiler.
* be wrapped in an collection by the C# compiler.
*/
private predicate isParamsArg(Call c, Expr arg, Parameter p) {
exists(Callable target, int numArgs |
@@ -1645,7 +1645,7 @@ private module ArgumentNodes {
}
/**
* A data-flow node that represents the implicit array creation in a call to a
* A data-flow node that represents the implicit collection creation in a call to a
* callable with a `params` parameter. For example, there is an implicit array
* creation `new [] { "a", "b", "c" }` in
*
@@ -1684,7 +1684,7 @@ private module ArgumentNodes {
override Location getLocationImpl() { result = callCfn.getLocation() }
override string toStringImpl() { result = "[implicit array creation] " + callCfn }
override string toStringImpl() { result = "[implicit collection creation] " + callCfn }
}
private class SummaryArgumentNode extends FlowSummaryNode, ArgumentNodeImpl {

View File

@@ -6,6 +6,7 @@
*/
import csharp
private import semmle.code.csharp.commons.Collections
private import RuntimeCallable
/** A call. */
@@ -1137,7 +1138,7 @@ private module Internal {
if p.isParams()
then (
j >= i and
paramType = p.getType().(ArrayType).getElementType()
paramType = p.getType().(ParamsCollectionType).getElementType()
) else (
i = j and
paramType = p.getType()

View File

@@ -3,6 +3,7 @@
*/
import csharp
private import semmle.code.csharp.commons.Collections
private import semmle.code.csharp.frameworks.System
private import semmle.code.csharp.frameworks.system.Text
@@ -106,7 +107,9 @@ class StringFormatItemParameter extends Parameter {
}
private Type getParameterType(Parameter p) {
if p.isParams() then result = p.getType().(ArrayType).getElementType() else result = p.getType()
if p.isParams()
then result = p.getType().(ParamsCollectionType).getElementType()
else result = p.getType()
}
/** Regex for a valid insert. */

View File

@@ -755,3 +755,19 @@ class SystemNotImplementedExceptionClass extends SystemClass {
class SystemDateTimeStruct extends SystemStruct {
SystemDateTimeStruct() { this.hasName("DateTime") }
}
/** The `System.Span<T>` struct. */
class SystemSpanStruct extends SystemUnboundGenericStruct {
SystemSpanStruct() {
this.hasName("Span`1") and
this.getNumberOfTypeParameters() = 1
}
}
/** The `System.ReadOnlySpan<T>` struct. */
class SystemReadOnlySpanStruct extends SystemUnboundGenericStruct {
SystemReadOnlySpanStruct() {
this.hasName("ReadOnlySpan`1") and
this.getNumberOfTypeParameters() = 1
}
}

View File

@@ -158,3 +158,21 @@ class SystemCollectionsGenericIDictionaryInterface extends SystemCollectionsGene
this.getNumberOfTypeParameters() = 2
}
}
/** The ``System.Collections.Generic.IReadOnlyCollection`1`` interface. */
class SystemCollectionsGenericIReadOnlyCollectionTInterface extends SystemCollectionsGenericUnboundGenericInterface
{
SystemCollectionsGenericIReadOnlyCollectionTInterface() {
this.hasName("IReadOnlyCollection`1") and
this.getNumberOfTypeParameters() = 1
}
}
/** The ``System.Collections.Generic.IReadOnlyList`1`` interface. */
class SystemCollectionsGenericIReadOnlyListTInterface extends SystemCollectionsGenericUnboundGenericInterface
{
SystemCollectionsGenericIReadOnlyListTInterface() {
this.hasName("IReadOnlyList`1") and
this.getNumberOfTypeParameters() = 1
}
}

View File

@@ -1,332 +1,321 @@
arguments.cs:
# 3| [Class] ArgumentsTest
# 5| 4: [InstanceConstructor] ArgumentsTest
# 4| [Class] ArgumentsTest
# 6| 4: [InstanceConstructor] ArgumentsTest
#-----| 2: (Parameters)
# 5| 0: [Parameter] x
# 5| -1: [TypeMention] int
# 5| 1: [IntLiteral] 0
# 5| 1: [Parameter] y
# 5| -1: [TypeMention] int
# 5| 1: [IntLiteral] 0
# 6| 4: [BlockStmt] {...}
# 9| 5: [InstanceConstructor] ArgumentsTest
# 6| 0: [Parameter] x
# 6| -1: [TypeMention] int
# 6| 1: [IntLiteral] 0
# 6| 1: [Parameter] y
# 6| -1: [TypeMention] int
# 6| 1: [IntLiteral] 0
# 7| 4: [BlockStmt] {...}
# 10| 5: [InstanceConstructor] ArgumentsTest
#-----| 2: (Parameters)
# 9| 0: [Parameter] x
# 9| -1: [TypeMention] int
# 9| 1: [Parameter] y
# 9| -1: [TypeMention] int
# 9| 2: [Parameter] z
# 9| -1: [TypeMention] int
# 10| 4: [BlockStmt] {...}
# 11| 0: [ExprStmt] ...;
# 11| 0: [AssignExpr] ... = ...
# 11| 0: [ParameterAccess] access to parameter y
# 11| 1: [ParameterAccess] access to parameter x
# 14| 6: [Method] f1
# 14| -1: [TypeMention] Void
# 10| 0: [Parameter] x
# 10| -1: [TypeMention] int
# 10| 1: [Parameter] y
# 10| -1: [TypeMention] int
# 10| 2: [Parameter] z
# 10| -1: [TypeMention] int
# 11| 4: [BlockStmt] {...}
# 12| 0: [ExprStmt] ...;
# 12| 0: [AssignExpr] ... = ...
# 12| 0: [ParameterAccess] access to parameter y
# 12| 1: [ParameterAccess] access to parameter x
# 15| 6: [Method] f1
# 15| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 14| 0: [Parameter] x
# 14| -1: [TypeMention] int
# 14| 1: [IntLiteral] 1
# 14| 1: [Parameter] y
# 14| -1: [TypeMention] int
# 14| 1: [IntLiteral] 2
# 15| 4: [BlockStmt] {...}
# 18| 7: [Method] f2
# 18| -1: [TypeMention] Void
# 15| 0: [Parameter] x
# 15| -1: [TypeMention] int
# 15| 1: [IntLiteral] 1
# 15| 1: [Parameter] y
# 15| -1: [TypeMention] int
# 15| 1: [IntLiteral] 2
# 16| 4: [BlockStmt] {...}
# 19| 7: [Method] f2
# 19| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 18| 0: [Parameter] x
# 18| -1: [TypeMention] int
# 18| 1: [Parameter] y
# 18| -1: [TypeMention] int
# 18| 2: [Parameter] z
# 18| -1: [TypeMention] int
# 19| 4: [BlockStmt] {...}
# 20| 0: [ExprStmt] ...;
# 20| 0: [AssignExpr] ... = ...
# 20| 0: [ParameterAccess] access to parameter y
# 20| 1: [ParameterAccess] access to parameter x
# 23| 8: [Method] f
# 23| -1: [TypeMention] Void
# 24| 4: [BlockStmt] {...}
# 25| 0: [LocalVariableDeclStmt] ... ...;
# 25| 0: [LocalVariableDeclAndInitExpr] Int32 x = ...
# 25| -1: [TypeMention] int
# 25| 0: [LocalVariableAccess] access to local variable x
# 25| 1: [IntLiteral] 1
# 27| 1: [ExprStmt] ...;
# 27| 0: [MethodCall] call to method f1
# 27| 0: [IntLiteral] 2
# 28| 2: [ExprStmt] ...;
# 28| 0: [MethodCall] call to method f2
# 28| 0: [LocalVariableAccess] access to local variable x
# 28| 1: [LocalVariableAccess] access to local variable x
# 28| 2: [LocalVariableAccess] access to local variable x
# 29| 3: [ExprStmt] ...;
# 29| 0: [ObjectCreation] object creation of type ArgumentsTest
# 29| -1: [TypeMention] ArgumentsTest
# 19| 0: [Parameter] x
# 19| -1: [TypeMention] int
# 19| 1: [Parameter] y
# 19| -1: [TypeMention] int
# 19| 2: [Parameter] z
# 19| -1: [TypeMention] int
# 20| 4: [BlockStmt] {...}
# 21| 0: [ExprStmt] ...;
# 21| 0: [AssignExpr] ... = ...
# 21| 0: [ParameterAccess] access to parameter y
# 21| 1: [ParameterAccess] access to parameter x
# 24| 8: [Method] f
# 24| -1: [TypeMention] Void
# 25| 4: [BlockStmt] {...}
# 26| 0: [LocalVariableDeclStmt] ... ...;
# 26| 0: [LocalVariableDeclAndInitExpr] Int32 x = ...
# 26| -1: [TypeMention] int
# 26| 0: [LocalVariableAccess] access to local variable x
# 26| 1: [IntLiteral] 1
# 28| 1: [ExprStmt] ...;
# 28| 0: [MethodCall] call to method f1
# 28| 0: [IntLiteral] 2
# 29| 2: [ExprStmt] ...;
# 29| 0: [MethodCall] call to method f2
# 29| 0: [LocalVariableAccess] access to local variable x
# 29| 1: [LocalVariableAccess] access to local variable x
# 29| 2: [LocalVariableAccess] access to local variable x
# 30| 4: [ExprStmt] ...;
# 30| 3: [ExprStmt] ...;
# 30| 0: [ObjectCreation] object creation of type ArgumentsTest
# 30| -1: [TypeMention] ArgumentsTest
# 30| 0: [IntLiteral] 10
# 30| 1: [IntLiteral] 5
# 33| 9: [Method] f3
# 33| -1: [TypeMention] Void
# 30| 0: [LocalVariableAccess] access to local variable x
# 30| 1: [LocalVariableAccess] access to local variable x
# 30| 2: [LocalVariableAccess] access to local variable x
# 31| 4: [ExprStmt] ...;
# 31| 0: [ObjectCreation] object creation of type ArgumentsTest
# 31| -1: [TypeMention] ArgumentsTest
# 31| 0: [IntLiteral] 10
# 31| 1: [IntLiteral] 5
# 34| 9: [Method] f3
# 34| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 33| 0: [Parameter] o
# 33| -1: [TypeMention] int
# 33| 1: [Parameter] args
# 33| -1: [TypeMention] Int32[]
# 33| 1: [TypeMention] int
# 34| 4: [BlockStmt] {...}
# 35| 0: [ExprStmt] ...;
# 35| 0: [MethodCall] call to method f3
# 35| 0: [IntLiteral] 0
# 35| 1: [IntLiteral] 1
# 35| 2: [IntLiteral] 2
# 36| 1: [ExprStmt] ...;
# 34| 0: [Parameter] o
# 34| -1: [TypeMention] int
# 34| 1: [Parameter] args
# 34| -1: [TypeMention] Int32[]
# 34| 1: [TypeMention] int
# 35| 4: [BlockStmt] {...}
# 36| 0: [ExprStmt] ...;
# 36| 0: [MethodCall] call to method f3
# 36| 0: [IntLiteral] 0
# 36| 1: [ArrayCreation] array creation of type Int32[]
# 36| -2: [TypeMention] Int32[]
# 36| 1: [TypeMention] int
# 36| -1: [ArrayInitializer] { ..., ... }
# 36| 0: [IntLiteral] 1
# 36| 1: [IntLiteral] 2
# 37| 2: [ExprStmt] ...;
# 36| 1: [IntLiteral] 1
# 36| 2: [IntLiteral] 2
# 37| 1: [ExprStmt] ...;
# 37| 0: [MethodCall] call to method f3
# 37| 0: [IntLiteral] 1
# 37| 1: [IntLiteral] 0
# 38| 3: [ExprStmt] ...;
# 37| 0: [IntLiteral] 0
# 37| 1: [ArrayCreation] array creation of type Int32[]
# 37| -2: [TypeMention] Int32[]
# 37| 1: [TypeMention] int
# 37| -1: [ArrayInitializer] { ..., ... }
# 37| 0: [IntLiteral] 1
# 37| 1: [IntLiteral] 2
# 38| 2: [ExprStmt] ...;
# 38| 0: [MethodCall] call to method f3
# 38| 0: [IntLiteral] 0
# 38| 1: [ParameterAccess] access to parameter args
# 39| 4: [ExprStmt] ...;
# 38| 0: [IntLiteral] 1
# 38| 1: [IntLiteral] 0
# 39| 3: [ExprStmt] ...;
# 39| 0: [MethodCall] call to method f3
# 39| 0: [ParameterAccess] access to parameter args
# 39| 1: [IntLiteral] 0
# 40| 5: [ExprStmt] ...;
# 39| 0: [IntLiteral] 0
# 39| 1: [ParameterAccess] access to parameter args
# 40| 4: [ExprStmt] ...;
# 40| 0: [MethodCall] call to method f3
# 40| 0: [ArrayCreation] array creation of type Int32[]
# 40| -2: [TypeMention] Int32[]
# 40| 1: [TypeMention] int
# 40| -1: [ArrayInitializer] { ..., ... }
# 40| 0: [IntLiteral] 1
# 40| 1: [IntLiteral] 2
# 40| 0: [ParameterAccess] access to parameter args
# 40| 1: [IntLiteral] 0
# 41| 6: [LocalVariableDeclStmt] ... ...;
# 41| 0: [LocalVariableDeclAndInitExpr] Int16 s1 = ...
# 41| -1: [TypeMention] short
# 41| 0: [LocalVariableAccess] access to local variable s1
# 41| 1: [CastExpr] (...) ...
# 41| 1: [IntLiteral] 1
# 41| 1: [LocalVariableDeclAndInitExpr] Int16 s2 = ...
# 41| -1: [TypeMention] short
# 41| 0: [LocalVariableAccess] access to local variable s2
# 41| 1: [CastExpr] (...) ...
# 41| 1: [IntLiteral] 2
# 42| 7: [ExprStmt] ...;
# 42| 0: [MethodCall] call to method f3
# 42| 0: [IntLiteral] 0
# 41| 5: [ExprStmt] ...;
# 41| 0: [MethodCall] call to method f3
# 41| 0: [ArrayCreation] array creation of type Int32[]
# 41| -2: [TypeMention] Int32[]
# 41| 1: [TypeMention] int
# 41| -1: [ArrayInitializer] { ..., ... }
# 41| 0: [IntLiteral] 1
# 41| 1: [IntLiteral] 2
# 41| 1: [IntLiteral] 0
# 42| 6: [LocalVariableDeclStmt] ... ...;
# 42| 0: [LocalVariableDeclAndInitExpr] Int16 s1 = ...
# 42| -1: [TypeMention] short
# 42| 0: [LocalVariableAccess] access to local variable s1
# 42| 1: [CastExpr] (...) ...
# 42| 1: [LocalVariableAccess] access to local variable s1
# 42| 2: [CastExpr] (...) ...
# 42| 1: [LocalVariableAccess] access to local variable s2
# 45| 10: [Method] f4
# 45| -1: [TypeMention] Void
# 42| 1: [IntLiteral] 1
# 42| 1: [LocalVariableDeclAndInitExpr] Int16 s2 = ...
# 42| -1: [TypeMention] short
# 42| 0: [LocalVariableAccess] access to local variable s2
# 42| 1: [CastExpr] (...) ...
# 42| 1: [IntLiteral] 2
# 43| 7: [ExprStmt] ...;
# 43| 0: [MethodCall] call to method f3
# 43| 0: [IntLiteral] 0
# 43| 1: [CastExpr] (...) ...
# 43| 1: [LocalVariableAccess] access to local variable s1
# 43| 2: [CastExpr] (...) ...
# 43| 1: [LocalVariableAccess] access to local variable s2
# 46| 10: [Method] f4
# 46| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 45| 0: [Parameter] args
# 45| -1: [TypeMention] Object[]
# 45| 1: [TypeMention] object
# 46| 4: [BlockStmt] {...}
# 47| 0: [ExprStmt] ...;
# 47| 0: [MethodCall] call to method f4
# 47| 0: [ArrayCreation] array creation of type Object[]
# 47| -2: [TypeMention] Object[]
# 47| 1: [TypeMention] object
# 47| -1: [ArrayInitializer] { ..., ... }
# 47| 0: [NullLiteral] null
# 47| 1: [NullLiteral] null
# 50| 11: [Property] Prop
# 50| -1: [TypeMention] int
# 50| 3: [Getter] get_Prop
# 50| 4: [Setter] set_Prop
# 46| 0: [Parameter] args
# 46| -1: [TypeMention] Object[]
# 46| 1: [TypeMention] object
# 47| 4: [BlockStmt] {...}
# 48| 0: [ExprStmt] ...;
# 48| 0: [MethodCall] call to method f4
# 48| 0: [ArrayCreation] array creation of type Object[]
# 48| -2: [TypeMention] Object[]
# 48| 1: [TypeMention] object
# 48| -1: [ArrayInitializer] { ..., ... }
# 48| 0: [NullLiteral] null
# 48| 1: [NullLiteral] null
# 51| 11: [Property] Prop
# 51| -1: [TypeMention] int
# 51| 3: [Getter] get_Prop
# 51| 4: [Setter] set_Prop
#-----| 2: (Parameters)
# 50| 0: [Parameter] value
# 52| 12: [Indexer] Item
# 52| -1: [TypeMention] int
# 51| 0: [Parameter] value
# 53| 12: [Indexer] Item
# 53| -1: [TypeMention] int
#-----| 1: (Parameters)
# 52| 0: [Parameter] a
# 52| -1: [TypeMention] int
# 52| 1: [Parameter] b
# 52| -1: [TypeMention] int
# 52| 3: [Getter] get_Item
# 53| 0: [Parameter] a
# 53| -1: [TypeMention] int
# 53| 1: [Parameter] b
# 53| -1: [TypeMention] int
# 53| 3: [Getter] get_Item
#-----| 2: (Parameters)
# 52| 0: [Parameter] a
# 52| 1: [Parameter] b
# 52| 4: [AddExpr] ... + ...
# 52| 0: [ParameterAccess] access to parameter a
# 52| 1: [ParameterAccess] access to parameter b
# 52| 4: [Setter] set_Item
# 53| 0: [Parameter] a
# 53| 1: [Parameter] b
# 53| 4: [AddExpr] ... + ...
# 53| 0: [ParameterAccess] access to parameter a
# 53| 1: [ParameterAccess] access to parameter b
# 53| 4: [Setter] set_Item
#-----| 2: (Parameters)
# 52| 0: [Parameter] a
# 52| 1: [Parameter] b
# 52| 2: [Parameter] value
# 52| 4: [BlockStmt] {...}
# 54| 13: [Method] f5
# 54| -1: [TypeMention] Void
# 55| 4: [BlockStmt] {...}
# 56| 0: [ExprStmt] ...;
# 56| 0: [AssignExpr] ... = ...
# 56| 0: [PropertyCall] access to property Prop
# 56| 1: [IntLiteral] 0
# 57| 1: [ExprStmt] ...;
# 53| 0: [Parameter] a
# 53| 1: [Parameter] b
# 53| 2: [Parameter] value
# 53| 4: [BlockStmt] {...}
# 55| 13: [Method] f5
# 55| -1: [TypeMention] Void
# 56| 4: [BlockStmt] {...}
# 57| 0: [ExprStmt] ...;
# 57| 0: [AssignExpr] ... = ...
# 57| 0: [PropertyCall] access to property Prop
# 57| 1: [IndexerCall] access to indexer
# 57| -1: [ThisAccess] this access
# 57| 0: [IntLiteral] 1
# 57| 1: [IntLiteral] 2
# 58| 2: [ExprStmt] ...;
# 57| 1: [IntLiteral] 0
# 58| 1: [ExprStmt] ...;
# 58| 0: [AssignExpr] ... = ...
# 58| 0: [TupleExpr] (..., ...)
# 58| 0: [PropertyCall] access to property Prop
# 58| 1: [IndexerCall] access to indexer
# 58| -1: [ThisAccess] this access
# 58| 0: [IntLiteral] 3
# 58| 1: [IntLiteral] 4
# 58| 1: [TupleExpr] (..., ...)
# 58| 0: [IntLiteral] 5
# 58| 1: [IntLiteral] 6
# 59| 3: [ExprStmt] ...;
# 59| 0: [PostIncrExpr] ...++
# 59| 0: [PropertyCall] access to property Prop
# 60| 4: [ExprStmt] ...;
# 60| 0: [AssignAddExpr] ... += ...
# 58| 0: [PropertyCall] access to property Prop
# 58| 1: [IndexerCall] access to indexer
# 58| -1: [ThisAccess] this access
# 58| 0: [IntLiteral] 1
# 58| 1: [IntLiteral] 2
# 59| 2: [ExprStmt] ...;
# 59| 0: [AssignExpr] ... = ...
# 59| 0: [TupleExpr] (..., ...)
# 59| 0: [PropertyCall] access to property Prop
# 59| 1: [IndexerCall] access to indexer
# 59| -1: [ThisAccess] this access
# 59| 0: [IntLiteral] 3
# 59| 1: [IntLiteral] 4
# 59| 1: [TupleExpr] (..., ...)
# 59| 0: [IntLiteral] 5
# 59| 1: [IntLiteral] 6
# 60| 3: [ExprStmt] ...;
# 60| 0: [PostIncrExpr] ...++
# 60| 0: [PropertyCall] access to property Prop
# 60| 1: [IntLiteral] 7
# 61| 5: [ExprStmt] ...;
# 61| 0: [PostIncrExpr] ...++
# 61| 0: [IndexerCall] access to indexer
# 61| -1: [ThisAccess] this access
# 61| 0: [IntLiteral] 8
# 61| 1: [IntLiteral] 9
# 62| 6: [ExprStmt] ...;
# 62| 0: [AssignAddExpr] ... += ...
# 61| 4: [ExprStmt] ...;
# 61| 0: [AssignAddExpr] ... += ...
# 61| 0: [PropertyCall] access to property Prop
# 61| 1: [IntLiteral] 7
# 62| 5: [ExprStmt] ...;
# 62| 0: [PostIncrExpr] ...++
# 62| 0: [IndexerCall] access to indexer
# 62| -1: [ThisAccess] this access
# 62| 0: [IntLiteral] 10
# 62| 1: [IntLiteral] 11
# 62| 1: [IntLiteral] 12
# 63| 7: [LocalVariableDeclStmt] ... ...;
# 63| 0: [LocalVariableDeclAndInitExpr] (Int32,Int32) tuple = ...
# 63| -1: [TypeMention] (int, int)
# 63| 0: [LocalVariableAccess] access to local variable tuple
# 63| 1: [TupleExpr] (..., ...)
# 63| 0: [IntLiteral] 13
# 63| 1: [IntLiteral] 14
# 64| 8: [ExprStmt] ...;
# 64| 0: [AssignExpr] ... = ...
# 64| 0: [TupleExpr] (..., ...)
# 64| 0: [PropertyCall] access to property Prop
# 64| 1: [IndexerCall] access to indexer
# 64| -1: [ThisAccess] this access
# 64| 0: [IntLiteral] 15
# 64| 1: [IntLiteral] 16
# 64| 1: [LocalVariableAccess] access to local variable tuple
# 68| 14: [Method] f6
# 68| -1: [TypeMention] Void
# 62| 0: [IntLiteral] 8
# 62| 1: [IntLiteral] 9
# 63| 6: [ExprStmt] ...;
# 63| 0: [AssignAddExpr] ... += ...
# 63| 0: [IndexerCall] access to indexer
# 63| -1: [ThisAccess] this access
# 63| 0: [IntLiteral] 10
# 63| 1: [IntLiteral] 11
# 63| 1: [IntLiteral] 12
# 64| 7: [LocalVariableDeclStmt] ... ...;
# 64| 0: [LocalVariableDeclAndInitExpr] (Int32,Int32) tuple = ...
# 64| -1: [TypeMention] (int, int)
# 64| 0: [LocalVariableAccess] access to local variable tuple
# 64| 1: [TupleExpr] (..., ...)
# 64| 0: [IntLiteral] 13
# 64| 1: [IntLiteral] 14
# 65| 8: [ExprStmt] ...;
# 65| 0: [AssignExpr] ... = ...
# 65| 0: [TupleExpr] (..., ...)
# 65| 0: [PropertyCall] access to property Prop
# 65| 1: [IndexerCall] access to indexer
# 65| -1: [ThisAccess] this access
# 65| 0: [IntLiteral] 15
# 65| 1: [IntLiteral] 16
# 65| 1: [LocalVariableAccess] access to local variable tuple
# 69| 14: [Method] f6
# 69| -1: [TypeMention] Void
#-----| 0: (Attributes)
# 67| 1: [DefaultAttribute] [My(...)]
# 67| -1: [TypeMention] MyAttribute
# 67| 0: [BoolLiteral] false
# 68| 4: [BlockStmt] {...}
# 71| 15: [Method] f7
# 71| -1: [TypeMention] Void
# 68| 1: [DefaultAttribute] [My(...)]
# 68| -1: [TypeMention] MyAttribute
# 68| 0: [BoolLiteral] false
# 69| 4: [BlockStmt] {...}
# 72| 15: [Method] f7
# 72| -1: [TypeMention] Void
#-----| 0: (Attributes)
# 70| 1: [DefaultAttribute] [My(...)]
# 70| -1: [TypeMention] MyAttribute
# 70| 0: [BoolLiteral] true
# 70| 1: [StringLiteralUtf16] ""
# 70| 2: [IntLiteral] 0
# 71| 4: [BlockStmt] {...}
# 73| 17: [Method] f8`1
# 73| -1: [TypeMention] Void
# 71| 1: [DefaultAttribute] [My(...)]
# 71| -1: [TypeMention] MyAttribute
# 71| 0: [BoolLiteral] true
# 71| 1: [StringLiteralUtf16] ""
# 71| 2: [IntLiteral] 0
# 72| 4: [BlockStmt] {...}
# 74| 17: [Method] f8`1
# 74| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 73| 0: [TypeParameter] T
# 74| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 73| 0: [Parameter] o
# 73| -1: [TypeMention] int
# 73| 1: [Parameter] args
# 73| -1: [TypeMention] T[]
# 73| 1: [TypeMention] T
# 74| 4: [BlockStmt] {...}
# 75| 0: [ExprStmt] ...;
# 75| 0: [MethodCall] call to method f8`1
# 75| 0: [IntLiteral] 0
# 75| 1: [ArrayAccess] access to array element
# 75| -1: [ParameterAccess] access to parameter args
# 75| 0: [IntLiteral] 0
# 75| 2: [ArrayAccess] access to array element
# 75| -1: [ParameterAccess] access to parameter args
# 75| 0: [IntLiteral] 1
# 76| 1: [ExprStmt] ...;
# 74| 0: [Parameter] o
# 74| -1: [TypeMention] int
# 74| 1: [Parameter] args
# 74| -1: [TypeMention] T[]
# 74| 1: [TypeMention] T
# 75| 4: [BlockStmt] {...}
# 76| 0: [ExprStmt] ...;
# 76| 0: [MethodCall] call to method f8`1
# 76| 0: [IntLiteral] 0
# 76| 1: [ArrayCreation] array creation of type T[]
# 76| -2: [TypeMention] T[]
# 76| 1: [TypeMention] T
# 76| -1: [ArrayInitializer] { ..., ... }
# 76| 0: [ArrayAccess] access to array element
# 76| -1: [ParameterAccess] access to parameter args
# 76| 0: [IntLiteral] 0
# 76| 1: [ArrayAccess] access to array element
# 76| -1: [ParameterAccess] access to parameter args
# 76| 0: [IntLiteral] 1
# 77| 2: [ExprStmt] ...;
# 76| 1: [ArrayAccess] access to array element
# 76| -1: [ParameterAccess] access to parameter args
# 76| 0: [IntLiteral] 0
# 76| 2: [ArrayAccess] access to array element
# 76| -1: [ParameterAccess] access to parameter args
# 76| 0: [IntLiteral] 1
# 77| 1: [ExprStmt] ...;
# 77| 0: [MethodCall] call to method f8`1
# 77| 0: [IntLiteral] 0
# 77| 1: [ParameterAccess] access to parameter args
# 78| 3: [ExprStmt] ...;
# 77| 1: [ArrayCreation] array creation of type T[]
# 77| -2: [TypeMention] T[]
# 77| 1: [TypeMention] T
# 77| -1: [ArrayInitializer] { ..., ... }
# 77| 0: [ArrayAccess] access to array element
# 77| -1: [ParameterAccess] access to parameter args
# 77| 0: [IntLiteral] 0
# 77| 1: [ArrayAccess] access to array element
# 77| -1: [ParameterAccess] access to parameter args
# 77| 0: [IntLiteral] 1
# 78| 2: [ExprStmt] ...;
# 78| 0: [MethodCall] call to method f8`1
# 78| 0: [ParameterAccess] access to parameter args
# 78| 1: [IntLiteral] 0
# 80| 4: [ExprStmt] ...;
# 80| 0: [MethodCall] call to method f8<Double>
# 80| 0: [IntLiteral] 0
# 80| 1: [DoubleLiteral] 1.1
# 80| 2: [DoubleLiteral] 2.2
# 81| 5: [ExprStmt] ...;
# 78| 0: [IntLiteral] 0
# 78| 1: [ParameterAccess] access to parameter args
# 79| 3: [ExprStmt] ...;
# 79| 0: [MethodCall] call to method f8`1
# 79| 0: [ParameterAccess] access to parameter args
# 79| 1: [IntLiteral] 0
# 81| 4: [ExprStmt] ...;
# 81| 0: [MethodCall] call to method f8<Double>
# 81| 0: [IntLiteral] 0
# 81| 1: [ArrayCreation] array creation of type Double[]
# 81| -2: [TypeMention] Double[]
# 81| 1: [TypeMention] double
# 81| -1: [ArrayInitializer] { ..., ... }
# 81| 0: [DoubleLiteral] 1.1
# 81| 1: [DoubleLiteral] 2.2
# 83| 6: [ExprStmt] ...;
# 83| 0: [MethodCall] call to method f8<Double>
# 83| 0: [IntLiteral] 0
# 83| 1: [CastExpr] (...) ...
# 83| 1: [IntLiteral] 1
# 83| 2: [CastExpr] (...) ...
# 83| 1: [IntLiteral] 2
# 84| 7: [ExprStmt] ...;
# 81| 1: [DoubleLiteral] 1.1
# 81| 2: [DoubleLiteral] 2.2
# 82| 5: [ExprStmt] ...;
# 82| 0: [MethodCall] call to method f8<Double>
# 82| 0: [IntLiteral] 0
# 82| 1: [ArrayCreation] array creation of type Double[]
# 82| -2: [TypeMention] Double[]
# 82| 1: [TypeMention] double
# 82| -1: [ArrayInitializer] { ..., ... }
# 82| 0: [DoubleLiteral] 1.1
# 82| 1: [DoubleLiteral] 2.2
# 84| 6: [ExprStmt] ...;
# 84| 0: [MethodCall] call to method f8<Double>
# 84| 0: [IntLiteral] 0
# 84| 1: [ArrayCreation] array creation of type Double[]
# 84| -2: [TypeMention] Double[]
# 84| 1: [TypeMention] double
# 84| -1: [ArrayInitializer] { ..., ... }
# 84| 0: [CastExpr] (...) ...
# 84| 1: [IntLiteral] 1
# 84| 1: [CastExpr] (...) ...
# 84| 1: [IntLiteral] 2
# 85| 8: [ExprStmt] ...;
# 84| 1: [CastExpr] (...) ...
# 84| 1: [IntLiteral] 1
# 84| 2: [CastExpr] (...) ...
# 84| 1: [IntLiteral] 2
# 85| 7: [ExprStmt] ...;
# 85| 0: [MethodCall] call to method f8<Double>
# 85| 0: [IntLiteral] 0
# 85| 1: [ArrayCreation] array creation of type Double[]
@@ -337,22 +326,158 @@ arguments.cs:
# 85| 1: [IntLiteral] 1
# 85| 1: [CastExpr] (...) ...
# 85| 1: [IntLiteral] 2
# 89| [Class] MyAttribute
#-----| 3: (Base types)
# 89| 0: [TypeMention] Attribute
# 91| 4: [Field] x
# 91| -1: [TypeMention] int
# 92| 5: [Property] y
# 92| -1: [TypeMention] string
# 92| 3: [Getter] get_y
# 92| 4: [Setter] set_y
#-----| 2: (Parameters)
# 92| 0: [Parameter] value
# 93| 6: [InstanceConstructor] MyAttribute
# 86| 8: [ExprStmt] ...;
# 86| 0: [MethodCall] call to method f8<Double>
# 86| 0: [IntLiteral] 0
# 86| 1: [ArrayCreation] array creation of type Double[]
# 86| -2: [TypeMention] Double[]
# 86| 1: [TypeMention] double
# 86| -1: [ArrayInitializer] { ..., ... }
# 86| 0: [CastExpr] (...) ...
# 86| 1: [IntLiteral] 1
# 86| 1: [CastExpr] (...) ...
# 86| 1: [IntLiteral] 2
# 89| 19: [Method] f9`1
# 89| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 89| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 93| 0: [Parameter] b
# 93| -1: [TypeMention] bool
# 93| 4: [BlockStmt] {...}
# 89| 0: [Parameter] o
# 89| -1: [TypeMention] int
# 89| 1: [Parameter] args
# 89| -1: [TypeMention] List<T>
# 89| 1: [TypeMention] T
# 90| 4: [BlockStmt] {...}
# 91| 0: [ExprStmt] ...;
# 91| 0: [MethodCall] call to method f9`1
# 91| 0: [IntLiteral] 0
# 91| 1: [IndexerCall] access to indexer
# 91| -1: [ParameterAccess] access to parameter args
# 91| 0: [IntLiteral] 0
# 91| 2: [IndexerCall] access to indexer
# 91| -1: [ParameterAccess] access to parameter args
# 91| 0: [IntLiteral] 1
# 92| 1: [ExprStmt] ...;
# 92| 0: [MethodCall] call to method f9`1
# 92| 0: [IntLiteral] 0
# 92| 1: [CollectionExpression] [...]
# 92| 0: [IndexerCall] access to indexer
# 92| -1: [ParameterAccess] access to parameter args
# 92| 0: [IntLiteral] 0
# 92| 1: [IndexerCall] access to indexer
# 92| -1: [ParameterAccess] access to parameter args
# 92| 0: [IntLiteral] 1
# 93| 2: [ExprStmt] ...;
# 93| 0: [MethodCall] call to method f9`1
# 93| 0: [IntLiteral] 0
# 93| 1: [ParameterAccess] access to parameter args
# 94| 3: [ExprStmt] ...;
# 94| 0: [MethodCall] call to method f9`1
# 94| 0: [ParameterAccess] access to parameter args
# 94| 1: [IntLiteral] 0
# 96| 4: [ExprStmt] ...;
# 96| 0: [MethodCall] call to method f9<Double>
# 96| 0: [IntLiteral] 0
# 96| 1: [DoubleLiteral] 1.1
# 96| 2: [DoubleLiteral] 2.2
# 97| 5: [ExprStmt] ...;
# 97| 0: [MethodCall] call to method f9<Double>
# 97| 0: [IntLiteral] 0
# 97| 1: [CollectionExpression] [...]
# 97| 0: [DoubleLiteral] 1.1
# 97| 1: [DoubleLiteral] 2.2
# 99| 6: [ExprStmt] ...;
# 99| 0: [MethodCall] call to method f9<Double>
# 99| 0: [IntLiteral] 0
# 99| 1: [CastExpr] (...) ...
# 99| 1: [IntLiteral] 1
# 99| 2: [CastExpr] (...) ...
# 99| 1: [IntLiteral] 2
# 100| 7: [ExprStmt] ...;
# 100| 0: [MethodCall] call to method f9<Double>
# 100| 0: [IntLiteral] 0
# 100| 1: [ObjectCreation] object creation of type List<Double>
# 100| -2: [TypeMention] List<double>
# 100| 1: [TypeMention] double
# 100| -1: [CollectionInitializer] { ..., ... }
# 100| 0: [ElementInitializer] call to method Add
# 100| 0: [CastExpr] (...) ...
# 100| 1: [IntLiteral] 1
# 100| 1: [ElementInitializer] call to method Add
# 100| 0: [CastExpr] (...) ...
# 100| 1: [IntLiteral] 2
# 103| 20: [Method] f10
# 103| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 103| 0: [Parameter] o
# 103| -1: [TypeMention] int
# 103| 1: [Parameter] args
# 103| -1: [TypeMention] List<int>
# 103| 1: [TypeMention] int
# 104| 4: [BlockStmt] {...}
# 105| 0: [ExprStmt] ...;
# 105| 0: [MethodCall] call to method f10
# 105| 0: [IntLiteral] 0
# 105| 1: [IntLiteral] 1
# 105| 2: [IntLiteral] 2
# 106| 1: [ExprStmt] ...;
# 106| 0: [MethodCall] call to method f10
# 106| 0: [IntLiteral] 0
# 106| 1: [CollectionExpression] [...]
# 106| 0: [IntLiteral] 1
# 106| 1: [IntLiteral] 2
# 107| 2: [ExprStmt] ...;
# 107| 0: [MethodCall] call to method f10
# 107| 0: [IntLiteral] 1
# 107| 1: [IntLiteral] 0
# 108| 3: [ExprStmt] ...;
# 108| 0: [MethodCall] call to method f10
# 108| 0: [IntLiteral] 0
# 108| 1: [ParameterAccess] access to parameter args
# 109| 4: [ExprStmt] ...;
# 109| 0: [MethodCall] call to method f10
# 109| 0: [ParameterAccess] access to parameter args
# 109| 1: [IntLiteral] 0
# 110| 5: [ExprStmt] ...;
# 110| 0: [MethodCall] call to method f10
# 110| 0: [CollectionExpression] [...]
# 110| 0: [IntLiteral] 1
# 110| 1: [IntLiteral] 2
# 110| 1: [IntLiteral] 0
# 111| 6: [LocalVariableDeclStmt] ... ...;
# 111| 0: [LocalVariableDeclAndInitExpr] Int16 s1 = ...
# 111| -1: [TypeMention] short
# 111| 0: [LocalVariableAccess] access to local variable s1
# 111| 1: [CastExpr] (...) ...
# 111| 1: [IntLiteral] 1
# 111| 1: [LocalVariableDeclAndInitExpr] Int16 s2 = ...
# 111| -1: [TypeMention] short
# 111| 0: [LocalVariableAccess] access to local variable s2
# 111| 1: [CastExpr] (...) ...
# 111| 1: [IntLiteral] 2
# 112| 7: [ExprStmt] ...;
# 112| 0: [MethodCall] call to method f10
# 112| 0: [IntLiteral] 0
# 112| 1: [CastExpr] (...) ...
# 112| 1: [LocalVariableAccess] access to local variable s1
# 112| 2: [CastExpr] (...) ...
# 112| 1: [LocalVariableAccess] access to local variable s2
# 116| [Class] MyAttribute
#-----| 3: (Base types)
# 116| 0: [TypeMention] Attribute
# 118| 4: [Field] x
# 118| -1: [TypeMention] int
# 119| 5: [Property] y
# 119| -1: [TypeMention] string
# 119| 3: [Getter] get_y
# 119| 4: [Setter] set_y
#-----| 2: (Parameters)
# 119| 0: [Parameter] value
# 120| 6: [InstanceConstructor] MyAttribute
#-----| 2: (Parameters)
# 120| 0: [Parameter] b
# 120| -1: [TypeMention] bool
# 120| 4: [BlockStmt] {...}
lambdas.cs:
# 3| [Class] LambdaArgumentsTest
# 5| 5: [Method] M1

View File

@@ -1,66 +1,107 @@
| arguments.cs:27:9:27:16 | call to method f1 | arguments.cs:27:15:27:15 | 2 | y |
| arguments.cs:28:9:28:27 | call to method f2 | arguments.cs:28:12:28:12 | access to local variable x | x |
| arguments.cs:28:9:28:27 | call to method f2 | arguments.cs:28:19:28:19 | access to local variable x | y |
| arguments.cs:28:9:28:27 | call to method f2 | arguments.cs:28:26:28:26 | access to local variable x | z |
| arguments.cs:29:9:29:42 | object creation of type ArgumentsTest | arguments.cs:29:27:29:27 | access to local variable x | x |
| arguments.cs:29:9:29:42 | object creation of type ArgumentsTest | arguments.cs:29:34:29:34 | access to local variable x | y |
| arguments.cs:29:9:29:42 | object creation of type ArgumentsTest | arguments.cs:29:41:29:41 | access to local variable x | z |
| arguments.cs:30:9:30:38 | object creation of type ArgumentsTest | arguments.cs:30:30:30:31 | 10 | y |
| arguments.cs:30:9:30:38 | object creation of type ArgumentsTest | arguments.cs:30:37:30:37 | 5 | x |
| arguments.cs:35:9:35:19 | call to method f3 | arguments.cs:35:12:35:12 | 0 | o |
| arguments.cs:35:9:35:19 | call to method f3 | arguments.cs:35:15:35:15 | 1 | args |
| arguments.cs:35:9:35:19 | call to method f3 | arguments.cs:35:18:35:18 | 2 | args |
| arguments.cs:36:9:36:33 | call to method f3 | arguments.cs:36:12:36:12 | 0 | o |
| arguments.cs:36:9:36:33 | call to method f3 | arguments.cs:36:15:36:32 | array creation of type Int32[] | args |
| arguments.cs:37:9:37:25 | call to method f3 | arguments.cs:37:18:37:18 | 1 | args |
| arguments.cs:37:9:37:25 | call to method f3 | arguments.cs:37:24:37:24 | 0 | o |
| arguments.cs:38:9:38:19 | call to method f3 | arguments.cs:38:12:38:12 | 0 | o |
| arguments.cs:38:9:38:19 | call to method f3 | arguments.cs:38:15:38:18 | access to parameter args | args |
| arguments.cs:39:9:39:28 | call to method f3 | arguments.cs:39:18:39:21 | access to parameter args | args |
| arguments.cs:39:9:39:28 | call to method f3 | arguments.cs:39:27:39:27 | 0 | o |
| arguments.cs:40:9:40:42 | call to method f3 | arguments.cs:40:18:40:35 | array creation of type Int32[] | args |
| arguments.cs:40:9:40:42 | call to method f3 | arguments.cs:40:41:40:41 | 0 | o |
| arguments.cs:42:9:42:21 | call to method f3 | arguments.cs:42:12:42:12 | 0 | o |
| arguments.cs:42:9:42:21 | call to method f3 | arguments.cs:42:15:42:16 | (...) ... | args |
| arguments.cs:42:9:42:21 | call to method f3 | arguments.cs:42:19:42:20 | (...) ... | args |
| arguments.cs:47:9:47:39 | call to method f4 | arguments.cs:47:12:47:32 | array creation of type Object[] | args |
| arguments.cs:47:9:47:39 | call to method f4 | arguments.cs:47:35:47:38 | null | args |
| arguments.cs:56:9:56:12 | access to property Prop | arguments.cs:56:16:56:16 | 0 | value |
| arguments.cs:57:9:57:12 | access to property Prop | arguments.cs:57:16:57:25 | access to indexer | value |
| arguments.cs:57:16:57:25 | access to indexer | arguments.cs:57:21:57:21 | 1 | a |
| arguments.cs:57:16:57:25 | access to indexer | arguments.cs:57:24:57:24 | 2 | b |
| arguments.cs:58:10:58:13 | access to property Prop | arguments.cs:58:31:58:31 | 5 | value |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:21:58:21 | 3 | a |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:24:58:24 | 4 | b |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:34:58:34 | 6 | value |
| arguments.cs:60:9:60:12 | access to property Prop | arguments.cs:60:9:60:17 | ... + ... | value |
| arguments.cs:61:9:61:18 | access to indexer | arguments.cs:61:14:61:14 | 8 | a |
| arguments.cs:61:9:61:18 | access to indexer | arguments.cs:61:17:61:17 | 9 | b |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:9:62:26 | ... + ... | value |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:14:62:15 | 10 | a |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:14:62:15 | 10 | a |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:18:62:19 | 11 | b |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:18:62:19 | 11 | b |
| arguments.cs:64:16:64:27 | access to indexer | arguments.cs:64:21:64:22 | 15 | a |
| arguments.cs:64:16:64:27 | access to indexer | arguments.cs:64:25:64:26 | 16 | b |
| arguments.cs:75:9:75:31 | call to method f8`1 | arguments.cs:75:12:75:12 | 0 | o |
| arguments.cs:75:9:75:31 | call to method f8`1 | arguments.cs:75:15:75:21 | access to array element | args |
| arguments.cs:75:9:75:31 | call to method f8`1 | arguments.cs:75:24:75:30 | access to array element | args |
| arguments.cs:76:9:76:43 | call to method f8`1 | arguments.cs:76:12:76:12 | 0 | o |
| arguments.cs:76:9:76:43 | call to method f8`1 | arguments.cs:76:15:76:42 | array creation of type T[] | args |
| arguments.cs:77:9:77:19 | call to method f8`1 | arguments.cs:77:12:77:12 | 0 | o |
| arguments.cs:77:9:77:19 | call to method f8`1 | arguments.cs:77:15:77:18 | access to parameter args | args |
| arguments.cs:78:9:78:28 | call to method f8`1 | arguments.cs:78:18:78:21 | access to parameter args | args |
| arguments.cs:78:9:78:28 | call to method f8`1 | arguments.cs:78:27:78:27 | 0 | o |
| arguments.cs:80:9:80:31 | call to method f8<Double> | arguments.cs:80:20:80:20 | 0 | o |
| arguments.cs:80:9:80:31 | call to method f8<Double> | arguments.cs:80:23:80:25 | 1.1 | args |
| arguments.cs:80:9:80:31 | call to method f8<Double> | arguments.cs:80:28:80:30 | 2.2 | args |
| arguments.cs:81:9:81:48 | call to method f8<Double> | arguments.cs:81:20:81:20 | 0 | o |
| arguments.cs:81:9:81:48 | call to method f8<Double> | arguments.cs:81:23:81:47 | array creation of type Double[] | args |
| arguments.cs:83:9:83:27 | call to method f8<Double> | arguments.cs:83:20:83:20 | 0 | o |
| arguments.cs:83:9:83:27 | call to method f8<Double> | arguments.cs:83:23:83:23 | (...) ... | args |
| arguments.cs:83:9:83:27 | call to method f8<Double> | arguments.cs:83:26:83:26 | (...) ... | args |
| arguments.cs:84:9:84:44 | call to method f8<Double> | arguments.cs:84:20:84:20 | 0 | o |
| arguments.cs:84:9:84:44 | call to method f8<Double> | arguments.cs:84:23:84:43 | array creation of type Double[] | args |
| arguments.cs:28:9:28:16 | call to method f1 | arguments.cs:28:15:28:15 | 2 | y |
| arguments.cs:29:9:29:27 | call to method f2 | arguments.cs:29:12:29:12 | access to local variable x | x |
| arguments.cs:29:9:29:27 | call to method f2 | arguments.cs:29:19:29:19 | access to local variable x | y |
| arguments.cs:29:9:29:27 | call to method f2 | arguments.cs:29:26:29:26 | access to local variable x | z |
| arguments.cs:30:9:30:42 | object creation of type ArgumentsTest | arguments.cs:30:27:30:27 | access to local variable x | x |
| arguments.cs:30:9:30:42 | object creation of type ArgumentsTest | arguments.cs:30:34:30:34 | access to local variable x | y |
| arguments.cs:30:9:30:42 | object creation of type ArgumentsTest | arguments.cs:30:41:30:41 | access to local variable x | z |
| arguments.cs:31:9:31:38 | object creation of type ArgumentsTest | arguments.cs:31:30:31:31 | 10 | y |
| arguments.cs:31:9:31:38 | object creation of type ArgumentsTest | arguments.cs:31:37:31:37 | 5 | x |
| arguments.cs:36:9:36:19 | call to method f3 | arguments.cs:36:12:36:12 | 0 | o |
| arguments.cs:36:9:36:19 | call to method f3 | arguments.cs:36:15:36:15 | 1 | args |
| arguments.cs:36:9:36:19 | call to method f3 | arguments.cs:36:18:36:18 | 2 | args |
| arguments.cs:37:9:37:33 | call to method f3 | arguments.cs:37:12:37:12 | 0 | o |
| arguments.cs:37:9:37:33 | call to method f3 | arguments.cs:37:15:37:32 | array creation of type Int32[] | args |
| arguments.cs:38:9:38:25 | call to method f3 | arguments.cs:38:18:38:18 | 1 | args |
| arguments.cs:38:9:38:25 | call to method f3 | arguments.cs:38:24:38:24 | 0 | o |
| arguments.cs:39:9:39:19 | call to method f3 | arguments.cs:39:12:39:12 | 0 | o |
| arguments.cs:39:9:39:19 | call to method f3 | arguments.cs:39:15:39:18 | access to parameter args | args |
| arguments.cs:40:9:40:28 | call to method f3 | arguments.cs:40:18:40:21 | access to parameter args | args |
| arguments.cs:40:9:40:28 | call to method f3 | arguments.cs:40:27:40:27 | 0 | o |
| arguments.cs:41:9:41:42 | call to method f3 | arguments.cs:41:18:41:35 | array creation of type Int32[] | args |
| arguments.cs:41:9:41:42 | call to method f3 | arguments.cs:41:41:41:41 | 0 | o |
| arguments.cs:43:9:43:21 | call to method f3 | arguments.cs:43:12:43:12 | 0 | o |
| arguments.cs:43:9:43:21 | call to method f3 | arguments.cs:43:15:43:16 | (...) ... | args |
| arguments.cs:43:9:43:21 | call to method f3 | arguments.cs:43:19:43:20 | (...) ... | args |
| arguments.cs:48:9:48:39 | call to method f4 | arguments.cs:48:12:48:32 | array creation of type Object[] | args |
| arguments.cs:48:9:48:39 | call to method f4 | arguments.cs:48:35:48:38 | null | args |
| arguments.cs:57:9:57:12 | access to property Prop | arguments.cs:57:16:57:16 | 0 | value |
| arguments.cs:58:9:58:12 | access to property Prop | arguments.cs:58:16:58:25 | access to indexer | value |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:21:58:21 | 1 | a |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:24:58:24 | 2 | b |
| arguments.cs:59:10:59:13 | access to property Prop | arguments.cs:59:31:59:31 | 5 | value |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:21:59:21 | 3 | a |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:24:59:24 | 4 | b |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:34:59:34 | 6 | value |
| arguments.cs:61:9:61:12 | access to property Prop | arguments.cs:61:9:61:17 | ... + ... | value |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:14:62:14 | 8 | a |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:17:62:17 | 9 | b |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:9:63:26 | ... + ... | value |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:14:63:15 | 10 | a |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:14:63:15 | 10 | a |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:18:63:19 | 11 | b |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:18:63:19 | 11 | b |
| arguments.cs:65:16:65:27 | access to indexer | arguments.cs:65:21:65:22 | 15 | a |
| arguments.cs:65:16:65:27 | access to indexer | arguments.cs:65:25:65:26 | 16 | b |
| arguments.cs:76:9:76:31 | call to method f8`1 | arguments.cs:76:12:76:12 | 0 | o |
| arguments.cs:76:9:76:31 | call to method f8`1 | arguments.cs:76:15:76:21 | access to array element | args |
| arguments.cs:76:9:76:31 | call to method f8`1 | arguments.cs:76:24:76:30 | access to array element | args |
| arguments.cs:77:9:77:43 | call to method f8`1 | arguments.cs:77:12:77:12 | 0 | o |
| arguments.cs:77:9:77:43 | call to method f8`1 | arguments.cs:77:15:77:42 | array creation of type T[] | args |
| arguments.cs:78:9:78:19 | call to method f8`1 | arguments.cs:78:12:78:12 | 0 | o |
| arguments.cs:78:9:78:19 | call to method f8`1 | arguments.cs:78:15:78:18 | access to parameter args | args |
| arguments.cs:79:9:79:28 | call to method f8`1 | arguments.cs:79:18:79:21 | access to parameter args | args |
| arguments.cs:79:9:79:28 | call to method f8`1 | arguments.cs:79:27:79:27 | 0 | o |
| arguments.cs:81:9:81:31 | call to method f8<Double> | arguments.cs:81:20:81:20 | 0 | o |
| arguments.cs:81:9:81:31 | call to method f8<Double> | arguments.cs:81:23:81:25 | 1.1 | args |
| arguments.cs:81:9:81:31 | call to method f8<Double> | arguments.cs:81:28:81:30 | 2.2 | args |
| arguments.cs:82:9:82:48 | call to method f8<Double> | arguments.cs:82:20:82:20 | 0 | o |
| arguments.cs:82:9:82:48 | call to method f8<Double> | arguments.cs:82:23:82:47 | array creation of type Double[] | args |
| arguments.cs:84:9:84:27 | call to method f8<Double> | arguments.cs:84:20:84:20 | 0 | o |
| arguments.cs:84:9:84:27 | call to method f8<Double> | arguments.cs:84:23:84:23 | (...) ... | args |
| arguments.cs:84:9:84:27 | call to method f8<Double> | arguments.cs:84:26:84:26 | (...) ... | args |
| arguments.cs:85:9:85:44 | call to method f8<Double> | arguments.cs:85:20:85:20 | 0 | o |
| arguments.cs:85:9:85:44 | call to method f8<Double> | arguments.cs:85:23:85:43 | array creation of type Double[] | args |
| arguments.cs:86:9:86:44 | call to method f8<Double> | arguments.cs:86:20:86:20 | 0 | o |
| arguments.cs:86:9:86:44 | call to method f8<Double> | arguments.cs:86:23:86:43 | array creation of type Double[] | args |
| arguments.cs:91:9:91:31 | call to method f9`1 | arguments.cs:91:12:91:12 | 0 | o |
| arguments.cs:91:9:91:31 | call to method f9`1 | arguments.cs:91:15:91:21 | access to indexer | args |
| arguments.cs:91:9:91:31 | call to method f9`1 | arguments.cs:91:24:91:30 | access to indexer | args |
| arguments.cs:91:15:91:21 | access to indexer | arguments.cs:91:20:91:20 | 0 | index |
| arguments.cs:91:24:91:30 | access to indexer | arguments.cs:91:29:91:29 | 1 | index |
| arguments.cs:92:9:92:33 | call to method f9`1 | arguments.cs:92:12:92:12 | 0 | o |
| arguments.cs:92:9:92:33 | call to method f9`1 | arguments.cs:92:15:92:32 | [...] | args |
| arguments.cs:92:16:92:22 | access to indexer | arguments.cs:92:21:92:21 | 0 | index |
| arguments.cs:92:25:92:31 | access to indexer | arguments.cs:92:30:92:30 | 1 | index |
| arguments.cs:93:9:93:19 | call to method f9`1 | arguments.cs:93:12:93:12 | 0 | o |
| arguments.cs:93:9:93:19 | call to method f9`1 | arguments.cs:93:15:93:18 | access to parameter args | args |
| arguments.cs:94:9:94:28 | call to method f9`1 | arguments.cs:94:18:94:21 | access to parameter args | args |
| arguments.cs:94:9:94:28 | call to method f9`1 | arguments.cs:94:27:94:27 | 0 | o |
| arguments.cs:96:9:96:31 | call to method f9<Double> | arguments.cs:96:20:96:20 | 0 | o |
| arguments.cs:96:9:96:31 | call to method f9<Double> | arguments.cs:96:23:96:25 | 1.1 | args |
| arguments.cs:96:9:96:31 | call to method f9<Double> | arguments.cs:96:28:96:30 | 2.2 | args |
| arguments.cs:97:9:97:33 | call to method f9<Double> | arguments.cs:97:20:97:20 | 0 | o |
| arguments.cs:97:9:97:33 | call to method f9<Double> | arguments.cs:97:23:97:32 | [...] | args |
| arguments.cs:99:9:99:27 | call to method f9<Double> | arguments.cs:99:20:99:20 | 0 | o |
| arguments.cs:99:9:99:27 | call to method f9<Double> | arguments.cs:99:23:99:23 | (...) ... | args |
| arguments.cs:99:9:99:27 | call to method f9<Double> | arguments.cs:99:26:99:26 | (...) ... | args |
| arguments.cs:100:9:100:48 | call to method f9<Double> | arguments.cs:100:20:100:20 | 0 | o |
| arguments.cs:100:9:100:48 | call to method f9<Double> | arguments.cs:100:23:100:47 | object creation of type List<Double> | args |
| arguments.cs:100:42:100:42 | call to method Add | arguments.cs:100:42:100:42 | (...) ... | item |
| arguments.cs:100:45:100:45 | call to method Add | arguments.cs:100:45:100:45 | (...) ... | item |
| arguments.cs:105:9:105:20 | call to method f10 | arguments.cs:105:13:105:13 | 0 | o |
| arguments.cs:105:9:105:20 | call to method f10 | arguments.cs:105:16:105:16 | 1 | args |
| arguments.cs:105:9:105:20 | call to method f10 | arguments.cs:105:19:105:19 | 2 | args |
| arguments.cs:106:9:106:22 | call to method f10 | arguments.cs:106:13:106:13 | 0 | o |
| arguments.cs:106:9:106:22 | call to method f10 | arguments.cs:106:16:106:21 | [...] | args |
| arguments.cs:107:9:107:26 | call to method f10 | arguments.cs:107:19:107:19 | 1 | args |
| arguments.cs:107:9:107:26 | call to method f10 | arguments.cs:107:25:107:25 | 0 | o |
| arguments.cs:108:9:108:20 | call to method f10 | arguments.cs:108:13:108:13 | 0 | o |
| arguments.cs:108:9:108:20 | call to method f10 | arguments.cs:108:16:108:19 | access to parameter args | args |
| arguments.cs:109:9:109:29 | call to method f10 | arguments.cs:109:19:109:22 | access to parameter args | args |
| arguments.cs:109:9:109:29 | call to method f10 | arguments.cs:109:28:109:28 | 0 | o |
| arguments.cs:110:9:110:31 | call to method f10 | arguments.cs:110:19:110:24 | [...] | args |
| arguments.cs:110:9:110:31 | call to method f10 | arguments.cs:110:30:110:30 | 0 | o |
| arguments.cs:112:9:112:22 | call to method f10 | arguments.cs:112:13:112:13 | 0 | o |
| arguments.cs:112:9:112:22 | call to method f10 | arguments.cs:112:16:112:17 | (...) ... | args |
| arguments.cs:112:9:112:22 | call to method f10 | arguments.cs:112:20:112:21 | (...) ... | args |

View File

@@ -1,68 +1,103 @@
| arguments.cs:27:9:27:16 | call to method f1 | arguments.cs:27:15:27:15 | 2 | arguments.cs:14:28:14:28 | y |
| arguments.cs:28:9:28:27 | call to method f2 | arguments.cs:28:12:28:12 | access to local variable x | arguments.cs:18:17:18:17 | x |
| arguments.cs:28:9:28:27 | call to method f2 | arguments.cs:28:19:28:19 | access to local variable x | arguments.cs:18:28:18:28 | y |
| arguments.cs:28:9:28:27 | call to method f2 | arguments.cs:28:26:28:26 | access to local variable x | arguments.cs:18:39:18:39 | z |
| arguments.cs:29:9:29:42 | object creation of type ArgumentsTest | arguments.cs:29:27:29:27 | access to local variable x | arguments.cs:9:30:9:30 | x |
| arguments.cs:29:9:29:42 | object creation of type ArgumentsTest | arguments.cs:29:34:29:34 | access to local variable x | arguments.cs:9:41:9:41 | y |
| arguments.cs:29:9:29:42 | object creation of type ArgumentsTest | arguments.cs:29:41:29:41 | access to local variable x | arguments.cs:9:52:9:52 | z |
| arguments.cs:30:9:30:38 | object creation of type ArgumentsTest | arguments.cs:30:30:30:31 | 10 | arguments.cs:5:41:5:41 | y |
| arguments.cs:30:9:30:38 | object creation of type ArgumentsTest | arguments.cs:30:37:30:37 | 5 | arguments.cs:5:30:5:30 | x |
| arguments.cs:35:9:35:19 | call to method f3 | arguments.cs:35:12:35:12 | 0 | arguments.cs:33:17:33:17 | o |
| arguments.cs:35:9:35:19 | call to method f3 | arguments.cs:35:15:35:15 | 1 | arguments.cs:33:33:33:36 | args |
| arguments.cs:35:9:35:19 | call to method f3 | arguments.cs:35:18:35:18 | 2 | arguments.cs:33:33:33:36 | args |
| arguments.cs:36:9:36:33 | call to method f3 | arguments.cs:36:12:36:12 | 0 | arguments.cs:33:17:33:17 | o |
| arguments.cs:36:9:36:33 | call to method f3 | arguments.cs:36:15:36:32 | array creation of type Int32[] | arguments.cs:33:33:33:36 | args |
| arguments.cs:37:9:37:25 | call to method f3 | arguments.cs:37:18:37:18 | 1 | arguments.cs:33:33:33:36 | args |
| arguments.cs:37:9:37:25 | call to method f3 | arguments.cs:37:24:37:24 | 0 | arguments.cs:33:17:33:17 | o |
| arguments.cs:38:9:38:19 | call to method f3 | arguments.cs:38:12:38:12 | 0 | arguments.cs:33:17:33:17 | o |
| arguments.cs:38:9:38:19 | call to method f3 | arguments.cs:38:15:38:18 | access to parameter args | arguments.cs:33:33:33:36 | args |
| arguments.cs:39:9:39:28 | call to method f3 | arguments.cs:39:18:39:21 | access to parameter args | arguments.cs:33:33:33:36 | args |
| arguments.cs:39:9:39:28 | call to method f3 | arguments.cs:39:27:39:27 | 0 | arguments.cs:33:17:33:17 | o |
| arguments.cs:40:9:40:42 | call to method f3 | arguments.cs:40:18:40:35 | array creation of type Int32[] | arguments.cs:33:33:33:36 | args |
| arguments.cs:40:9:40:42 | call to method f3 | arguments.cs:40:41:40:41 | 0 | arguments.cs:33:17:33:17 | o |
| arguments.cs:42:9:42:21 | call to method f3 | arguments.cs:42:12:42:12 | 0 | arguments.cs:33:17:33:17 | o |
| arguments.cs:42:9:42:21 | call to method f3 | arguments.cs:42:15:42:16 | (...) ... | arguments.cs:33:33:33:36 | args |
| arguments.cs:42:9:42:21 | call to method f3 | arguments.cs:42:19:42:20 | (...) ... | arguments.cs:33:33:33:36 | args |
| arguments.cs:47:9:47:39 | call to method f4 | arguments.cs:47:12:47:32 | array creation of type Object[] | arguments.cs:45:29:45:32 | args |
| arguments.cs:47:9:47:39 | call to method f4 | arguments.cs:47:35:47:38 | null | arguments.cs:45:29:45:32 | args |
| arguments.cs:56:9:56:12 | access to property Prop | arguments.cs:56:16:56:16 | 0 | arguments.cs:50:21:50:23 | value |
| arguments.cs:57:9:57:12 | access to property Prop | arguments.cs:57:16:57:25 | access to indexer | arguments.cs:50:21:50:23 | value |
| arguments.cs:57:16:57:25 | access to indexer | arguments.cs:57:21:57:21 | 1 | arguments.cs:52:18:52:18 | a |
| arguments.cs:57:16:57:25 | access to indexer | arguments.cs:57:24:57:24 | 2 | arguments.cs:52:25:52:25 | b |
| arguments.cs:58:10:58:13 | access to property Prop | arguments.cs:58:31:58:31 | 5 | arguments.cs:50:21:50:23 | value |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:21:58:21 | 3 | arguments.cs:52:18:52:18 | a |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:24:58:24 | 4 | arguments.cs:52:25:52:25 | b |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:34:58:34 | 6 | arguments.cs:52:44:52:46 | value |
| arguments.cs:60:9:60:12 | access to property Prop | arguments.cs:60:9:60:17 | ... + ... | arguments.cs:50:21:50:23 | value |
| arguments.cs:61:9:61:18 | access to indexer | arguments.cs:61:14:61:14 | 8 | arguments.cs:52:18:52:18 | a |
| arguments.cs:61:9:61:18 | access to indexer | arguments.cs:61:14:61:14 | 8 | arguments.cs:52:18:52:18 | a |
| arguments.cs:61:9:61:18 | access to indexer | arguments.cs:61:17:61:17 | 9 | arguments.cs:52:25:52:25 | b |
| arguments.cs:61:9:61:18 | access to indexer | arguments.cs:61:17:61:17 | 9 | arguments.cs:52:25:52:25 | b |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:9:62:26 | ... + ... | arguments.cs:52:44:52:46 | value |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:14:62:15 | 10 | arguments.cs:52:18:52:18 | a |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:14:62:15 | 10 | arguments.cs:52:18:52:18 | a |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:18:62:19 | 11 | arguments.cs:52:25:52:25 | b |
| arguments.cs:62:9:62:20 | access to indexer | arguments.cs:62:18:62:19 | 11 | arguments.cs:52:25:52:25 | b |
| arguments.cs:64:16:64:27 | access to indexer | arguments.cs:64:21:64:22 | 15 | arguments.cs:52:18:52:18 | a |
| arguments.cs:64:16:64:27 | access to indexer | arguments.cs:64:25:64:26 | 16 | arguments.cs:52:25:52:25 | b |
| arguments.cs:75:9:75:31 | call to method f8`1 | arguments.cs:75:12:75:12 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:75:9:75:31 | call to method f8`1 | arguments.cs:75:15:75:21 | access to array element | arguments.cs:73:34:73:37 | args |
| arguments.cs:75:9:75:31 | call to method f8`1 | arguments.cs:75:24:75:30 | access to array element | arguments.cs:73:34:73:37 | args |
| arguments.cs:76:9:76:43 | call to method f8`1 | arguments.cs:76:12:76:12 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:76:9:76:43 | call to method f8`1 | arguments.cs:76:15:76:42 | array creation of type T[] | arguments.cs:73:34:73:37 | args |
| arguments.cs:77:9:77:19 | call to method f8`1 | arguments.cs:77:12:77:12 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:77:9:77:19 | call to method f8`1 | arguments.cs:77:15:77:18 | access to parameter args | arguments.cs:73:34:73:37 | args |
| arguments.cs:78:9:78:28 | call to method f8`1 | arguments.cs:78:18:78:21 | access to parameter args | arguments.cs:73:34:73:37 | args |
| arguments.cs:78:9:78:28 | call to method f8`1 | arguments.cs:78:27:78:27 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:80:9:80:31 | call to method f8<Double> | arguments.cs:80:20:80:20 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:80:9:80:31 | call to method f8<Double> | arguments.cs:80:23:80:25 | 1.1 | arguments.cs:73:34:73:37 | args |
| arguments.cs:80:9:80:31 | call to method f8<Double> | arguments.cs:80:28:80:30 | 2.2 | arguments.cs:73:34:73:37 | args |
| arguments.cs:81:9:81:48 | call to method f8<Double> | arguments.cs:81:20:81:20 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:81:9:81:48 | call to method f8<Double> | arguments.cs:81:23:81:47 | array creation of type Double[] | arguments.cs:73:34:73:37 | args |
| arguments.cs:83:9:83:27 | call to method f8<Double> | arguments.cs:83:20:83:20 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:83:9:83:27 | call to method f8<Double> | arguments.cs:83:23:83:23 | (...) ... | arguments.cs:73:34:73:37 | args |
| arguments.cs:83:9:83:27 | call to method f8<Double> | arguments.cs:83:26:83:26 | (...) ... | arguments.cs:73:34:73:37 | args |
| arguments.cs:84:9:84:44 | call to method f8<Double> | arguments.cs:84:20:84:20 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:84:9:84:44 | call to method f8<Double> | arguments.cs:84:23:84:43 | array creation of type Double[] | arguments.cs:73:34:73:37 | args |
| arguments.cs:85:9:85:44 | call to method f8<Double> | arguments.cs:85:20:85:20 | 0 | arguments.cs:73:20:73:20 | o |
| arguments.cs:85:9:85:44 | call to method f8<Double> | arguments.cs:85:23:85:43 | array creation of type Double[] | arguments.cs:73:34:73:37 | args |
| arguments.cs:28:9:28:16 | call to method f1 | arguments.cs:28:15:28:15 | 2 | arguments.cs:15:28:15:28 | y |
| arguments.cs:29:9:29:27 | call to method f2 | arguments.cs:29:12:29:12 | access to local variable x | arguments.cs:19:17:19:17 | x |
| arguments.cs:29:9:29:27 | call to method f2 | arguments.cs:29:19:29:19 | access to local variable x | arguments.cs:19:28:19:28 | y |
| arguments.cs:29:9:29:27 | call to method f2 | arguments.cs:29:26:29:26 | access to local variable x | arguments.cs:19:39:19:39 | z |
| arguments.cs:30:9:30:42 | object creation of type ArgumentsTest | arguments.cs:30:27:30:27 | access to local variable x | arguments.cs:10:30:10:30 | x |
| arguments.cs:30:9:30:42 | object creation of type ArgumentsTest | arguments.cs:30:34:30:34 | access to local variable x | arguments.cs:10:41:10:41 | y |
| arguments.cs:30:9:30:42 | object creation of type ArgumentsTest | arguments.cs:30:41:30:41 | access to local variable x | arguments.cs:10:52:10:52 | z |
| arguments.cs:31:9:31:38 | object creation of type ArgumentsTest | arguments.cs:31:30:31:31 | 10 | arguments.cs:6:41:6:41 | y |
| arguments.cs:31:9:31:38 | object creation of type ArgumentsTest | arguments.cs:31:37:31:37 | 5 | arguments.cs:6:30:6:30 | x |
| arguments.cs:36:9:36:19 | call to method f3 | arguments.cs:36:12:36:12 | 0 | arguments.cs:34:17:34:17 | o |
| arguments.cs:36:9:36:19 | call to method f3 | arguments.cs:36:15:36:15 | 1 | arguments.cs:34:33:34:36 | args |
| arguments.cs:36:9:36:19 | call to method f3 | arguments.cs:36:18:36:18 | 2 | arguments.cs:34:33:34:36 | args |
| arguments.cs:37:9:37:33 | call to method f3 | arguments.cs:37:12:37:12 | 0 | arguments.cs:34:17:34:17 | o |
| arguments.cs:37:9:37:33 | call to method f3 | arguments.cs:37:15:37:32 | array creation of type Int32[] | arguments.cs:34:33:34:36 | args |
| arguments.cs:38:9:38:25 | call to method f3 | arguments.cs:38:18:38:18 | 1 | arguments.cs:34:33:34:36 | args |
| arguments.cs:38:9:38:25 | call to method f3 | arguments.cs:38:24:38:24 | 0 | arguments.cs:34:17:34:17 | o |
| arguments.cs:39:9:39:19 | call to method f3 | arguments.cs:39:12:39:12 | 0 | arguments.cs:34:17:34:17 | o |
| arguments.cs:39:9:39:19 | call to method f3 | arguments.cs:39:15:39:18 | access to parameter args | arguments.cs:34:33:34:36 | args |
| arguments.cs:40:9:40:28 | call to method f3 | arguments.cs:40:18:40:21 | access to parameter args | arguments.cs:34:33:34:36 | args |
| arguments.cs:40:9:40:28 | call to method f3 | arguments.cs:40:27:40:27 | 0 | arguments.cs:34:17:34:17 | o |
| arguments.cs:41:9:41:42 | call to method f3 | arguments.cs:41:18:41:35 | array creation of type Int32[] | arguments.cs:34:33:34:36 | args |
| arguments.cs:41:9:41:42 | call to method f3 | arguments.cs:41:41:41:41 | 0 | arguments.cs:34:17:34:17 | o |
| arguments.cs:43:9:43:21 | call to method f3 | arguments.cs:43:12:43:12 | 0 | arguments.cs:34:17:34:17 | o |
| arguments.cs:43:9:43:21 | call to method f3 | arguments.cs:43:15:43:16 | (...) ... | arguments.cs:34:33:34:36 | args |
| arguments.cs:43:9:43:21 | call to method f3 | arguments.cs:43:19:43:20 | (...) ... | arguments.cs:34:33:34:36 | args |
| arguments.cs:48:9:48:39 | call to method f4 | arguments.cs:48:12:48:32 | array creation of type Object[] | arguments.cs:46:29:46:32 | args |
| arguments.cs:48:9:48:39 | call to method f4 | arguments.cs:48:35:48:38 | null | arguments.cs:46:29:46:32 | args |
| arguments.cs:57:9:57:12 | access to property Prop | arguments.cs:57:16:57:16 | 0 | arguments.cs:51:21:51:23 | value |
| arguments.cs:58:9:58:12 | access to property Prop | arguments.cs:58:16:58:25 | access to indexer | arguments.cs:51:21:51:23 | value |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:21:58:21 | 1 | arguments.cs:53:18:53:18 | a |
| arguments.cs:58:16:58:25 | access to indexer | arguments.cs:58:24:58:24 | 2 | arguments.cs:53:25:53:25 | b |
| arguments.cs:59:10:59:13 | access to property Prop | arguments.cs:59:31:59:31 | 5 | arguments.cs:51:21:51:23 | value |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:21:59:21 | 3 | arguments.cs:53:18:53:18 | a |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:24:59:24 | 4 | arguments.cs:53:25:53:25 | b |
| arguments.cs:59:16:59:25 | access to indexer | arguments.cs:59:34:59:34 | 6 | arguments.cs:53:44:53:46 | value |
| arguments.cs:61:9:61:12 | access to property Prop | arguments.cs:61:9:61:17 | ... + ... | arguments.cs:51:21:51:23 | value |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:14:62:14 | 8 | arguments.cs:53:18:53:18 | a |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:14:62:14 | 8 | arguments.cs:53:18:53:18 | a |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:17:62:17 | 9 | arguments.cs:53:25:53:25 | b |
| arguments.cs:62:9:62:18 | access to indexer | arguments.cs:62:17:62:17 | 9 | arguments.cs:53:25:53:25 | b |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:9:63:26 | ... + ... | arguments.cs:53:44:53:46 | value |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:14:63:15 | 10 | arguments.cs:53:18:53:18 | a |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:14:63:15 | 10 | arguments.cs:53:18:53:18 | a |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:18:63:19 | 11 | arguments.cs:53:25:53:25 | b |
| arguments.cs:63:9:63:20 | access to indexer | arguments.cs:63:18:63:19 | 11 | arguments.cs:53:25:53:25 | b |
| arguments.cs:65:16:65:27 | access to indexer | arguments.cs:65:21:65:22 | 15 | arguments.cs:53:18:53:18 | a |
| arguments.cs:65:16:65:27 | access to indexer | arguments.cs:65:25:65:26 | 16 | arguments.cs:53:25:53:25 | b |
| arguments.cs:76:9:76:31 | call to method f8`1 | arguments.cs:76:12:76:12 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:76:9:76:31 | call to method f8`1 | arguments.cs:76:15:76:21 | access to array element | arguments.cs:74:34:74:37 | args |
| arguments.cs:76:9:76:31 | call to method f8`1 | arguments.cs:76:24:76:30 | access to array element | arguments.cs:74:34:74:37 | args |
| arguments.cs:77:9:77:43 | call to method f8`1 | arguments.cs:77:12:77:12 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:77:9:77:43 | call to method f8`1 | arguments.cs:77:15:77:42 | array creation of type T[] | arguments.cs:74:34:74:37 | args |
| arguments.cs:78:9:78:19 | call to method f8`1 | arguments.cs:78:12:78:12 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:78:9:78:19 | call to method f8`1 | arguments.cs:78:15:78:18 | access to parameter args | arguments.cs:74:34:74:37 | args |
| arguments.cs:79:9:79:28 | call to method f8`1 | arguments.cs:79:18:79:21 | access to parameter args | arguments.cs:74:34:74:37 | args |
| arguments.cs:79:9:79:28 | call to method f8`1 | arguments.cs:79:27:79:27 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:81:9:81:31 | call to method f8<Double> | arguments.cs:81:20:81:20 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:81:9:81:31 | call to method f8<Double> | arguments.cs:81:23:81:25 | 1.1 | arguments.cs:74:34:74:37 | args |
| arguments.cs:81:9:81:31 | call to method f8<Double> | arguments.cs:81:28:81:30 | 2.2 | arguments.cs:74:34:74:37 | args |
| arguments.cs:82:9:82:48 | call to method f8<Double> | arguments.cs:82:20:82:20 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:82:9:82:48 | call to method f8<Double> | arguments.cs:82:23:82:47 | array creation of type Double[] | arguments.cs:74:34:74:37 | args |
| arguments.cs:84:9:84:27 | call to method f8<Double> | arguments.cs:84:20:84:20 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:84:9:84:27 | call to method f8<Double> | arguments.cs:84:23:84:23 | (...) ... | arguments.cs:74:34:74:37 | args |
| arguments.cs:84:9:84:27 | call to method f8<Double> | arguments.cs:84:26:84:26 | (...) ... | arguments.cs:74:34:74:37 | args |
| arguments.cs:85:9:85:44 | call to method f8<Double> | arguments.cs:85:20:85:20 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:85:9:85:44 | call to method f8<Double> | arguments.cs:85:23:85:43 | array creation of type Double[] | arguments.cs:74:34:74:37 | args |
| arguments.cs:86:9:86:44 | call to method f8<Double> | arguments.cs:86:20:86:20 | 0 | arguments.cs:74:20:74:20 | o |
| arguments.cs:86:9:86:44 | call to method f8<Double> | arguments.cs:86:23:86:43 | array creation of type Double[] | arguments.cs:74:34:74:37 | args |
| arguments.cs:91:9:91:31 | call to method f9`1 | arguments.cs:91:12:91:12 | 0 | arguments.cs:89:20:89:20 | o |
| arguments.cs:91:9:91:31 | call to method f9`1 | arguments.cs:91:15:91:21 | access to indexer | arguments.cs:89:38:89:41 | args |
| arguments.cs:91:9:91:31 | call to method f9`1 | arguments.cs:91:24:91:30 | access to indexer | arguments.cs:89:38:89:41 | args |
| arguments.cs:92:9:92:33 | call to method f9`1 | arguments.cs:92:12:92:12 | 0 | arguments.cs:89:20:89:20 | o |
| arguments.cs:92:9:92:33 | call to method f9`1 | arguments.cs:92:15:92:32 | [...] | arguments.cs:89:38:89:41 | args |
| arguments.cs:93:9:93:19 | call to method f9`1 | arguments.cs:93:12:93:12 | 0 | arguments.cs:89:20:89:20 | o |
| arguments.cs:93:9:93:19 | call to method f9`1 | arguments.cs:93:15:93:18 | access to parameter args | arguments.cs:89:38:89:41 | args |
| arguments.cs:94:9:94:28 | call to method f9`1 | arguments.cs:94:18:94:21 | access to parameter args | arguments.cs:89:38:89:41 | args |
| arguments.cs:94:9:94:28 | call to method f9`1 | arguments.cs:94:27:94:27 | 0 | arguments.cs:89:20:89:20 | o |
| arguments.cs:96:9:96:31 | call to method f9<Double> | arguments.cs:96:20:96:20 | 0 | arguments.cs:89:20:89:20 | o |
| arguments.cs:96:9:96:31 | call to method f9<Double> | arguments.cs:96:23:96:25 | 1.1 | arguments.cs:89:38:89:41 | args |
| arguments.cs:96:9:96:31 | call to method f9<Double> | arguments.cs:96:28:96:30 | 2.2 | arguments.cs:89:38:89:41 | args |
| arguments.cs:97:9:97:33 | call to method f9<Double> | arguments.cs:97:20:97:20 | 0 | arguments.cs:89:20:89:20 | o |
| arguments.cs:97:9:97:33 | call to method f9<Double> | arguments.cs:97:23:97:32 | [...] | arguments.cs:89:38:89:41 | args |
| arguments.cs:99:9:99:27 | call to method f9<Double> | arguments.cs:99:20:99:20 | 0 | arguments.cs:89:20:89:20 | o |
| arguments.cs:99:9:99:27 | call to method f9<Double> | arguments.cs:99:23:99:23 | (...) ... | arguments.cs:89:38:89:41 | args |
| arguments.cs:99:9:99:27 | call to method f9<Double> | arguments.cs:99:26:99:26 | (...) ... | arguments.cs:89:38:89:41 | args |
| arguments.cs:100:9:100:48 | call to method f9<Double> | arguments.cs:100:20:100:20 | 0 | arguments.cs:89:20:89:20 | o |
| arguments.cs:100:9:100:48 | call to method f9<Double> | arguments.cs:100:23:100:47 | object creation of type List<Double> | arguments.cs:89:38:89:41 | args |
| arguments.cs:105:9:105:20 | call to method f10 | arguments.cs:105:13:105:13 | 0 | arguments.cs:103:18:103:18 | o |
| arguments.cs:105:9:105:20 | call to method f10 | arguments.cs:105:16:105:16 | 1 | arguments.cs:103:38:103:41 | args |
| arguments.cs:105:9:105:20 | call to method f10 | arguments.cs:105:19:105:19 | 2 | arguments.cs:103:38:103:41 | args |
| arguments.cs:106:9:106:22 | call to method f10 | arguments.cs:106:13:106:13 | 0 | arguments.cs:103:18:103:18 | o |
| arguments.cs:106:9:106:22 | call to method f10 | arguments.cs:106:16:106:21 | [...] | arguments.cs:103:38:103:41 | args |
| arguments.cs:107:9:107:26 | call to method f10 | arguments.cs:107:19:107:19 | 1 | arguments.cs:103:38:103:41 | args |
| arguments.cs:107:9:107:26 | call to method f10 | arguments.cs:107:25:107:25 | 0 | arguments.cs:103:18:103:18 | o |
| arguments.cs:108:9:108:20 | call to method f10 | arguments.cs:108:13:108:13 | 0 | arguments.cs:103:18:103:18 | o |
| arguments.cs:108:9:108:20 | call to method f10 | arguments.cs:108:16:108:19 | access to parameter args | arguments.cs:103:38:103:41 | args |
| arguments.cs:109:9:109:29 | call to method f10 | arguments.cs:109:19:109:22 | access to parameter args | arguments.cs:103:38:103:41 | args |
| arguments.cs:109:9:109:29 | call to method f10 | arguments.cs:109:28:109:28 | 0 | arguments.cs:103:18:103:18 | o |
| arguments.cs:110:9:110:31 | call to method f10 | arguments.cs:110:19:110:24 | [...] | arguments.cs:103:38:103:41 | args |
| arguments.cs:110:9:110:31 | call to method f10 | arguments.cs:110:30:110:30 | 0 | arguments.cs:103:18:103:18 | o |
| arguments.cs:112:9:112:22 | call to method f10 | arguments.cs:112:13:112:13 | 0 | arguments.cs:103:18:103:18 | o |
| arguments.cs:112:9:112:22 | call to method f10 | arguments.cs:112:16:112:17 | (...) ... | arguments.cs:103:38:103:41 | args |
| arguments.cs:112:9:112:22 | call to method f10 | arguments.cs:112:20:112:21 | (...) ... | arguments.cs:103:38:103:41 | args |

View File

@@ -1,5 +1,7 @@
import csharp
from Call call, Expr arg, Parameter param
where arg = call.getArgumentForParameter(param)
where
arg = call.getArgumentForParameter(param) and
call.getTarget().fromSource()
select call, arg, param

View File

@@ -1,15 +1,23 @@
| arguments.cs:27:15:27:15 | 2 | y |
| arguments.cs:30:30:30:31 | 10 | y |
| arguments.cs:30:37:30:37 | 5 | x |
| arguments.cs:37:18:37:18 | 1 | args |
| arguments.cs:37:24:37:24 | 0 | o |
| arguments.cs:39:18:39:21 | access to parameter args | args |
| arguments.cs:39:27:39:27 | 0 | o |
| arguments.cs:40:18:40:35 | array creation of type Int32[] | args |
| arguments.cs:40:41:40:41 | 0 | o |
| arguments.cs:70:28:70:29 | "" | y |
| arguments.cs:70:36:70:36 | 0 | x |
| arguments.cs:78:18:78:21 | access to parameter args | args |
| arguments.cs:78:27:78:27 | 0 | o |
| arguments.cs:28:15:28:15 | 2 | y |
| arguments.cs:31:30:31:31 | 10 | y |
| arguments.cs:31:37:31:37 | 5 | x |
| arguments.cs:38:18:38:18 | 1 | args |
| arguments.cs:38:24:38:24 | 0 | o |
| arguments.cs:40:18:40:21 | access to parameter args | args |
| arguments.cs:40:27:40:27 | 0 | o |
| arguments.cs:41:18:41:35 | array creation of type Int32[] | args |
| arguments.cs:41:41:41:41 | 0 | o |
| arguments.cs:71:28:71:29 | "" | y |
| arguments.cs:71:36:71:36 | 0 | x |
| arguments.cs:79:18:79:21 | access to parameter args | args |
| arguments.cs:79:27:79:27 | 0 | o |
| arguments.cs:94:18:94:21 | access to parameter args | args |
| arguments.cs:94:27:94:27 | 0 | o |
| arguments.cs:107:19:107:19 | 1 | args |
| arguments.cs:107:25:107:25 | 0 | o |
| arguments.cs:109:19:109:22 | access to parameter args | args |
| arguments.cs:109:28:109:28 | 0 | o |
| arguments.cs:110:19:110:24 | [...] | args |
| arguments.cs:110:30:110:30 | 0 | o |
| lambdas.cs:25:16:25:16 | 4 | y |
| lambdas.cs:25:22:25:22 | 5 | x |

View File

@@ -1,75 +1,114 @@
| arguments.cs:27:15:27:15 | 2 | 0 |
| arguments.cs:28:12:28:12 | access to local variable x | 0 |
| arguments.cs:28:19:28:19 | access to local variable x | 2 |
| arguments.cs:28:26:28:26 | access to local variable x | 1 |
| arguments.cs:29:27:29:27 | access to local variable x | 0 |
| arguments.cs:29:34:29:34 | access to local variable x | 2 |
| arguments.cs:29:41:29:41 | access to local variable x | 1 |
| arguments.cs:30:30:30:31 | 10 | 0 |
| arguments.cs:30:37:30:37 | 5 | 0 |
| arguments.cs:35:12:35:12 | 0 | 0 |
| arguments.cs:35:15:35:15 | 1 | 0 |
| arguments.cs:35:18:35:18 | 2 | 0 |
| arguments.cs:28:15:28:15 | 2 | 0 |
| arguments.cs:29:12:29:12 | access to local variable x | 0 |
| arguments.cs:29:19:29:19 | access to local variable x | 2 |
| arguments.cs:29:26:29:26 | access to local variable x | 1 |
| arguments.cs:30:27:30:27 | access to local variable x | 0 |
| arguments.cs:30:34:30:34 | access to local variable x | 2 |
| arguments.cs:30:41:30:41 | access to local variable x | 1 |
| arguments.cs:31:30:31:31 | 10 | 0 |
| arguments.cs:31:37:31:37 | 5 | 0 |
| arguments.cs:36:12:36:12 | 0 | 0 |
| arguments.cs:36:15:36:32 | array creation of type Int32[] | 0 |
| arguments.cs:37:18:37:18 | 1 | 0 |
| arguments.cs:37:24:37:24 | 0 | 0 |
| arguments.cs:38:12:38:12 | 0 | 0 |
| arguments.cs:38:15:38:18 | access to parameter args | 0 |
| arguments.cs:39:18:39:21 | access to parameter args | 0 |
| arguments.cs:39:27:39:27 | 0 | 0 |
| arguments.cs:40:18:40:35 | array creation of type Int32[] | 0 |
| arguments.cs:40:41:40:41 | 0 | 0 |
| arguments.cs:42:12:42:12 | 0 | 0 |
| arguments.cs:42:15:42:16 | (...) ... | 0 |
| arguments.cs:42:19:42:20 | (...) ... | 0 |
| arguments.cs:47:12:47:32 | array creation of type Object[] | 0 |
| arguments.cs:47:35:47:38 | null | 0 |
| arguments.cs:57:21:57:21 | 1 | 0 |
| arguments.cs:57:24:57:24 | 2 | 0 |
| arguments.cs:58:10:58:13 | access to property Prop | 0 |
| arguments.cs:58:16:58:25 | access to indexer | 0 |
| arguments.cs:58:21:58:21 | 3 | 0 |
| arguments.cs:58:24:58:24 | 4 | 0 |
| arguments.cs:58:31:58:31 | 5 | 0 |
| arguments.cs:58:34:58:34 | 6 | 0 |
| arguments.cs:61:14:61:14 | 8 | 0 |
| arguments.cs:61:17:61:17 | 9 | 0 |
| arguments.cs:62:14:62:15 | 10 | 0 |
| arguments.cs:62:14:62:15 | 10 | 0 |
| arguments.cs:62:18:62:19 | 11 | 0 |
| arguments.cs:62:18:62:19 | 11 | 0 |
| arguments.cs:63:22:63:23 | 13 | 0 |
| arguments.cs:63:26:63:27 | 14 | 0 |
| arguments.cs:64:10:64:13 | access to property Prop | 0 |
| arguments.cs:64:16:64:27 | access to indexer | 0 |
| arguments.cs:64:21:64:22 | 15 | 0 |
| arguments.cs:64:25:64:26 | 16 | 0 |
| arguments.cs:75:12:75:12 | 0 | 0 |
| arguments.cs:75:15:75:21 | access to array element | 0 |
| arguments.cs:75:20:75:20 | 0 | 0 |
| arguments.cs:75:24:75:30 | access to array element | 0 |
| arguments.cs:75:29:75:29 | 1 | 0 |
| arguments.cs:36:15:36:15 | 1 | 0 |
| arguments.cs:36:18:36:18 | 2 | 0 |
| arguments.cs:37:12:37:12 | 0 | 0 |
| arguments.cs:37:15:37:32 | array creation of type Int32[] | 0 |
| arguments.cs:38:18:38:18 | 1 | 0 |
| arguments.cs:38:24:38:24 | 0 | 0 |
| arguments.cs:39:12:39:12 | 0 | 0 |
| arguments.cs:39:15:39:18 | access to parameter args | 0 |
| arguments.cs:40:18:40:21 | access to parameter args | 0 |
| arguments.cs:40:27:40:27 | 0 | 0 |
| arguments.cs:41:18:41:35 | array creation of type Int32[] | 0 |
| arguments.cs:41:41:41:41 | 0 | 0 |
| arguments.cs:43:12:43:12 | 0 | 0 |
| arguments.cs:43:15:43:16 | (...) ... | 0 |
| arguments.cs:43:19:43:20 | (...) ... | 0 |
| arguments.cs:48:12:48:32 | array creation of type Object[] | 0 |
| arguments.cs:48:35:48:38 | null | 0 |
| arguments.cs:58:21:58:21 | 1 | 0 |
| arguments.cs:58:24:58:24 | 2 | 0 |
| arguments.cs:59:10:59:13 | access to property Prop | 0 |
| arguments.cs:59:16:59:25 | access to indexer | 0 |
| arguments.cs:59:21:59:21 | 3 | 0 |
| arguments.cs:59:24:59:24 | 4 | 0 |
| arguments.cs:59:31:59:31 | 5 | 0 |
| arguments.cs:59:34:59:34 | 6 | 0 |
| arguments.cs:62:14:62:14 | 8 | 0 |
| arguments.cs:62:17:62:17 | 9 | 0 |
| arguments.cs:63:14:63:15 | 10 | 0 |
| arguments.cs:63:14:63:15 | 10 | 0 |
| arguments.cs:63:18:63:19 | 11 | 0 |
| arguments.cs:63:18:63:19 | 11 | 0 |
| arguments.cs:64:22:64:23 | 13 | 0 |
| arguments.cs:64:26:64:27 | 14 | 0 |
| arguments.cs:65:10:65:13 | access to property Prop | 0 |
| arguments.cs:65:16:65:27 | access to indexer | 0 |
| arguments.cs:65:21:65:22 | 15 | 0 |
| arguments.cs:65:25:65:26 | 16 | 0 |
| arguments.cs:76:12:76:12 | 0 | 0 |
| arguments.cs:76:15:76:42 | array creation of type T[] | 0 |
| arguments.cs:76:30:76:30 | 0 | 0 |
| arguments.cs:76:39:76:39 | 1 | 0 |
| arguments.cs:76:15:76:21 | access to array element | 0 |
| arguments.cs:76:20:76:20 | 0 | 0 |
| arguments.cs:76:24:76:30 | access to array element | 0 |
| arguments.cs:76:29:76:29 | 1 | 0 |
| arguments.cs:77:12:77:12 | 0 | 0 |
| arguments.cs:77:15:77:18 | access to parameter args | 0 |
| arguments.cs:78:18:78:21 | access to parameter args | 0 |
| arguments.cs:78:27:78:27 | 0 | 0 |
| arguments.cs:80:20:80:20 | 0 | 0 |
| arguments.cs:80:23:80:25 | 1.1 | 0 |
| arguments.cs:80:28:80:30 | 2.2 | 0 |
| arguments.cs:77:15:77:42 | array creation of type T[] | 0 |
| arguments.cs:77:30:77:30 | 0 | 0 |
| arguments.cs:77:39:77:39 | 1 | 0 |
| arguments.cs:78:12:78:12 | 0 | 0 |
| arguments.cs:78:15:78:18 | access to parameter args | 0 |
| arguments.cs:79:18:79:21 | access to parameter args | 0 |
| arguments.cs:79:27:79:27 | 0 | 0 |
| arguments.cs:81:20:81:20 | 0 | 0 |
| arguments.cs:81:23:81:47 | array creation of type Double[] | 0 |
| arguments.cs:83:20:83:20 | 0 | 0 |
| arguments.cs:83:23:83:23 | (...) ... | 0 |
| arguments.cs:83:26:83:26 | (...) ... | 0 |
| arguments.cs:81:23:81:25 | 1.1 | 0 |
| arguments.cs:81:28:81:30 | 2.2 | 0 |
| arguments.cs:82:20:82:20 | 0 | 0 |
| arguments.cs:82:23:82:47 | array creation of type Double[] | 0 |
| arguments.cs:84:20:84:20 | 0 | 0 |
| arguments.cs:84:23:84:43 | array creation of type Double[] | 0 |
| arguments.cs:84:23:84:23 | (...) ... | 0 |
| arguments.cs:84:26:84:26 | (...) ... | 0 |
| arguments.cs:85:20:85:20 | 0 | 0 |
| arguments.cs:85:23:85:43 | array creation of type Double[] | 0 |
| arguments.cs:86:20:86:20 | 0 | 0 |
| arguments.cs:86:23:86:43 | array creation of type Double[] | 0 |
| arguments.cs:91:12:91:12 | 0 | 0 |
| arguments.cs:91:15:91:21 | access to indexer | 0 |
| arguments.cs:91:20:91:20 | 0 | 0 |
| arguments.cs:91:24:91:30 | access to indexer | 0 |
| arguments.cs:91:29:91:29 | 1 | 0 |
| arguments.cs:92:12:92:12 | 0 | 0 |
| arguments.cs:92:15:92:32 | [...] | 0 |
| arguments.cs:92:21:92:21 | 0 | 0 |
| arguments.cs:92:30:92:30 | 1 | 0 |
| arguments.cs:93:12:93:12 | 0 | 0 |
| arguments.cs:93:15:93:18 | access to parameter args | 0 |
| arguments.cs:94:18:94:21 | access to parameter args | 0 |
| arguments.cs:94:27:94:27 | 0 | 0 |
| arguments.cs:96:20:96:20 | 0 | 0 |
| arguments.cs:96:23:96:25 | 1.1 | 0 |
| arguments.cs:96:28:96:30 | 2.2 | 0 |
| arguments.cs:97:20:97:20 | 0 | 0 |
| arguments.cs:97:23:97:32 | [...] | 0 |
| arguments.cs:99:20:99:20 | 0 | 0 |
| arguments.cs:99:23:99:23 | (...) ... | 0 |
| arguments.cs:99:26:99:26 | (...) ... | 0 |
| arguments.cs:100:20:100:20 | 0 | 0 |
| arguments.cs:100:23:100:47 | object creation of type List<Double> | 0 |
| arguments.cs:105:13:105:13 | 0 | 0 |
| arguments.cs:105:16:105:16 | 1 | 0 |
| arguments.cs:105:19:105:19 | 2 | 0 |
| arguments.cs:106:13:106:13 | 0 | 0 |
| arguments.cs:106:16:106:21 | [...] | 0 |
| arguments.cs:107:19:107:19 | 1 | 0 |
| arguments.cs:107:25:107:25 | 0 | 0 |
| arguments.cs:108:13:108:13 | 0 | 0 |
| arguments.cs:108:16:108:19 | access to parameter args | 0 |
| arguments.cs:109:19:109:22 | access to parameter args | 0 |
| arguments.cs:109:28:109:28 | 0 | 0 |
| arguments.cs:110:19:110:24 | [...] | 0 |
| arguments.cs:110:30:110:30 | 0 | 0 |
| arguments.cs:112:13:112:13 | 0 | 0 |
| arguments.cs:112:16:112:17 | (...) ... | 0 |
| arguments.cs:112:20:112:21 | (...) ... | 0 |
| lambdas.cs:8:12:8:12 | 1 | 0 |
| lambdas.cs:11:12:11:12 | 2 | 0 |
| lambdas.cs:11:15:11:15 | 3 | 0 |

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
class ArgumentsTest
{
@@ -84,6 +85,32 @@ class ArgumentsTest
f8<double>(0, new double[] { 1, 2 });
f8<double>(0, new double[] { 1, 2 });
}
void f9<T>(int o, params List<T> args)
{
f9(0, args[0], args[1]);
f9(0, [args[0], args[1]]);
f9(0, args);
f9(args: args, o: 0);
f9<double>(0, 1.1, 2.2);
f9<double>(0, [1.1, 2.2]);
f9<double>(0, 1, 2);
f9<double>(0, new List<double> { 1, 2 });
}
void f10(int o, params List<int> args)
{
f10(0, 1, 2);
f10(0, [1, 2]);
f10(args: 1, o: 0);
f10(0, args);
f10(args: args, o: 0);
f10(args: [1, 2], o: 0);
short s1 = 1, s2 = 2;
f10(0, s1, s2);
}
}
class MyAttribute : Attribute

View File

@@ -1,68 +1,103 @@
| arguments.cs:5:30:5:30 | x | arguments.cs:30:37:30:37 | 5 |
| arguments.cs:5:41:5:41 | y | arguments.cs:30:30:30:31 | 10 |
| arguments.cs:9:30:9:30 | x | arguments.cs:29:27:29:27 | access to local variable x |
| arguments.cs:9:41:9:41 | y | arguments.cs:29:34:29:34 | access to local variable x |
| arguments.cs:9:52:9:52 | z | arguments.cs:29:41:29:41 | access to local variable x |
| arguments.cs:14:28:14:28 | y | arguments.cs:27:15:27:15 | 2 |
| arguments.cs:18:17:18:17 | x | arguments.cs:28:12:28:12 | access to local variable x |
| arguments.cs:18:28:18:28 | y | arguments.cs:28:19:28:19 | access to local variable x |
| arguments.cs:18:39:18:39 | z | arguments.cs:28:26:28:26 | access to local variable x |
| arguments.cs:33:17:33:17 | o | arguments.cs:35:12:35:12 | 0 |
| arguments.cs:33:17:33:17 | o | arguments.cs:36:12:36:12 | 0 |
| arguments.cs:33:17:33:17 | o | arguments.cs:37:24:37:24 | 0 |
| arguments.cs:33:17:33:17 | o | arguments.cs:38:12:38:12 | 0 |
| arguments.cs:33:17:33:17 | o | arguments.cs:39:27:39:27 | 0 |
| arguments.cs:33:17:33:17 | o | arguments.cs:40:41:40:41 | 0 |
| arguments.cs:33:17:33:17 | o | arguments.cs:42:12:42:12 | 0 |
| arguments.cs:33:33:33:36 | args | arguments.cs:35:15:35:15 | 1 |
| arguments.cs:33:33:33:36 | args | arguments.cs:35:18:35:18 | 2 |
| arguments.cs:33:33:33:36 | args | arguments.cs:36:15:36:32 | array creation of type Int32[] |
| arguments.cs:33:33:33:36 | args | arguments.cs:37:18:37:18 | 1 |
| arguments.cs:33:33:33:36 | args | arguments.cs:38:15:38:18 | access to parameter args |
| arguments.cs:33:33:33:36 | args | arguments.cs:39:18:39:21 | access to parameter args |
| arguments.cs:33:33:33:36 | args | arguments.cs:40:18:40:35 | array creation of type Int32[] |
| arguments.cs:33:33:33:36 | args | arguments.cs:42:15:42:16 | (...) ... |
| arguments.cs:33:33:33:36 | args | arguments.cs:42:19:42:20 | (...) ... |
| arguments.cs:45:29:45:32 | args | arguments.cs:47:12:47:32 | array creation of type Object[] |
| arguments.cs:45:29:45:32 | args | arguments.cs:47:35:47:38 | null |
| arguments.cs:50:21:50:23 | value | arguments.cs:56:16:56:16 | 0 |
| arguments.cs:50:21:50:23 | value | arguments.cs:57:16:57:25 | access to indexer |
| arguments.cs:50:21:50:23 | value | arguments.cs:58:31:58:31 | 5 |
| arguments.cs:50:21:50:23 | value | arguments.cs:60:9:60:17 | ... + ... |
| arguments.cs:52:18:52:18 | a | arguments.cs:57:21:57:21 | 1 |
| arguments.cs:52:18:52:18 | a | arguments.cs:58:21:58:21 | 3 |
| arguments.cs:52:18:52:18 | a | arguments.cs:61:14:61:14 | 8 |
| arguments.cs:52:18:52:18 | a | arguments.cs:61:14:61:14 | 8 |
| arguments.cs:52:18:52:18 | a | arguments.cs:62:14:62:15 | 10 |
| arguments.cs:52:18:52:18 | a | arguments.cs:62:14:62:15 | 10 |
| arguments.cs:52:18:52:18 | a | arguments.cs:64:21:64:22 | 15 |
| arguments.cs:52:25:52:25 | b | arguments.cs:57:24:57:24 | 2 |
| arguments.cs:52:25:52:25 | b | arguments.cs:58:24:58:24 | 4 |
| arguments.cs:52:25:52:25 | b | arguments.cs:61:17:61:17 | 9 |
| arguments.cs:52:25:52:25 | b | arguments.cs:61:17:61:17 | 9 |
| arguments.cs:52:25:52:25 | b | arguments.cs:62:18:62:19 | 11 |
| arguments.cs:52:25:52:25 | b | arguments.cs:62:18:62:19 | 11 |
| arguments.cs:52:25:52:25 | b | arguments.cs:64:25:64:26 | 16 |
| arguments.cs:52:44:52:46 | value | arguments.cs:58:34:58:34 | 6 |
| arguments.cs:52:44:52:46 | value | arguments.cs:62:9:62:26 | ... + ... |
| arguments.cs:73:20:73:20 | o | arguments.cs:75:12:75:12 | 0 |
| arguments.cs:73:20:73:20 | o | arguments.cs:76:12:76:12 | 0 |
| arguments.cs:73:20:73:20 | o | arguments.cs:77:12:77:12 | 0 |
| arguments.cs:73:20:73:20 | o | arguments.cs:78:27:78:27 | 0 |
| arguments.cs:73:20:73:20 | o | arguments.cs:80:20:80:20 | 0 |
| arguments.cs:73:20:73:20 | o | arguments.cs:81:20:81:20 | 0 |
| arguments.cs:73:20:73:20 | o | arguments.cs:83:20:83:20 | 0 |
| arguments.cs:73:20:73:20 | o | arguments.cs:84:20:84:20 | 0 |
| arguments.cs:73:20:73:20 | o | arguments.cs:85:20:85:20 | 0 |
| arguments.cs:73:34:73:37 | args | arguments.cs:75:15:75:21 | access to array element |
| arguments.cs:73:34:73:37 | args | arguments.cs:75:24:75:30 | access to array element |
| arguments.cs:73:34:73:37 | args | arguments.cs:76:15:76:42 | array creation of type T[] |
| arguments.cs:73:34:73:37 | args | arguments.cs:77:15:77:18 | access to parameter args |
| arguments.cs:73:34:73:37 | args | arguments.cs:78:18:78:21 | access to parameter args |
| arguments.cs:73:34:73:37 | args | arguments.cs:80:23:80:25 | 1.1 |
| arguments.cs:73:34:73:37 | args | arguments.cs:80:28:80:30 | 2.2 |
| arguments.cs:73:34:73:37 | args | arguments.cs:81:23:81:47 | array creation of type Double[] |
| arguments.cs:73:34:73:37 | args | arguments.cs:83:23:83:23 | (...) ... |
| arguments.cs:73:34:73:37 | args | arguments.cs:83:26:83:26 | (...) ... |
| arguments.cs:73:34:73:37 | args | arguments.cs:84:23:84:43 | array creation of type Double[] |
| arguments.cs:73:34:73:37 | args | arguments.cs:85:23:85:43 | array creation of type Double[] |
| arguments.cs:6:30:6:30 | x | arguments.cs:31:37:31:37 | 5 |
| arguments.cs:6:41:6:41 | y | arguments.cs:31:30:31:31 | 10 |
| arguments.cs:10:30:10:30 | x | arguments.cs:30:27:30:27 | access to local variable x |
| arguments.cs:10:41:10:41 | y | arguments.cs:30:34:30:34 | access to local variable x |
| arguments.cs:10:52:10:52 | z | arguments.cs:30:41:30:41 | access to local variable x |
| arguments.cs:15:28:15:28 | y | arguments.cs:28:15:28:15 | 2 |
| arguments.cs:19:17:19:17 | x | arguments.cs:29:12:29:12 | access to local variable x |
| arguments.cs:19:28:19:28 | y | arguments.cs:29:19:29:19 | access to local variable x |
| arguments.cs:19:39:19:39 | z | arguments.cs:29:26:29:26 | access to local variable x |
| arguments.cs:34:17:34:17 | o | arguments.cs:36:12:36:12 | 0 |
| arguments.cs:34:17:34:17 | o | arguments.cs:37:12:37:12 | 0 |
| arguments.cs:34:17:34:17 | o | arguments.cs:38:24:38:24 | 0 |
| arguments.cs:34:17:34:17 | o | arguments.cs:39:12:39:12 | 0 |
| arguments.cs:34:17:34:17 | o | arguments.cs:40:27:40:27 | 0 |
| arguments.cs:34:17:34:17 | o | arguments.cs:41:41:41:41 | 0 |
| arguments.cs:34:17:34:17 | o | arguments.cs:43:12:43:12 | 0 |
| arguments.cs:34:33:34:36 | args | arguments.cs:36:15:36:15 | 1 |
| arguments.cs:34:33:34:36 | args | arguments.cs:36:18:36:18 | 2 |
| arguments.cs:34:33:34:36 | args | arguments.cs:37:15:37:32 | array creation of type Int32[] |
| arguments.cs:34:33:34:36 | args | arguments.cs:38:18:38:18 | 1 |
| arguments.cs:34:33:34:36 | args | arguments.cs:39:15:39:18 | access to parameter args |
| arguments.cs:34:33:34:36 | args | arguments.cs:40:18:40:21 | access to parameter args |
| arguments.cs:34:33:34:36 | args | arguments.cs:41:18:41:35 | array creation of type Int32[] |
| arguments.cs:34:33:34:36 | args | arguments.cs:43:15:43:16 | (...) ... |
| arguments.cs:34:33:34:36 | args | arguments.cs:43:19:43:20 | (...) ... |
| arguments.cs:46:29:46:32 | args | arguments.cs:48:12:48:32 | array creation of type Object[] |
| arguments.cs:46:29:46:32 | args | arguments.cs:48:35:48:38 | null |
| arguments.cs:51:21:51:23 | value | arguments.cs:57:16:57:16 | 0 |
| arguments.cs:51:21:51:23 | value | arguments.cs:58:16:58:25 | access to indexer |
| arguments.cs:51:21:51:23 | value | arguments.cs:59:31:59:31 | 5 |
| arguments.cs:51:21:51:23 | value | arguments.cs:61:9:61:17 | ... + ... |
| arguments.cs:53:18:53:18 | a | arguments.cs:58:21:58:21 | 1 |
| arguments.cs:53:18:53:18 | a | arguments.cs:59:21:59:21 | 3 |
| arguments.cs:53:18:53:18 | a | arguments.cs:62:14:62:14 | 8 |
| arguments.cs:53:18:53:18 | a | arguments.cs:62:14:62:14 | 8 |
| arguments.cs:53:18:53:18 | a | arguments.cs:63:14:63:15 | 10 |
| arguments.cs:53:18:53:18 | a | arguments.cs:63:14:63:15 | 10 |
| arguments.cs:53:18:53:18 | a | arguments.cs:65:21:65:22 | 15 |
| arguments.cs:53:25:53:25 | b | arguments.cs:58:24:58:24 | 2 |
| arguments.cs:53:25:53:25 | b | arguments.cs:59:24:59:24 | 4 |
| arguments.cs:53:25:53:25 | b | arguments.cs:62:17:62:17 | 9 |
| arguments.cs:53:25:53:25 | b | arguments.cs:62:17:62:17 | 9 |
| arguments.cs:53:25:53:25 | b | arguments.cs:63:18:63:19 | 11 |
| arguments.cs:53:25:53:25 | b | arguments.cs:63:18:63:19 | 11 |
| arguments.cs:53:25:53:25 | b | arguments.cs:65:25:65:26 | 16 |
| arguments.cs:53:44:53:46 | value | arguments.cs:59:34:59:34 | 6 |
| arguments.cs:53:44:53:46 | value | arguments.cs:63:9:63:26 | ... + ... |
| arguments.cs:74:20:74:20 | o | arguments.cs:76:12:76:12 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:77:12:77:12 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:78:12:78:12 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:79:27:79:27 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:81:20:81:20 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:82:20:82:20 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:84:20:84:20 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:85:20:85:20 | 0 |
| arguments.cs:74:20:74:20 | o | arguments.cs:86:20:86:20 | 0 |
| arguments.cs:74:34:74:37 | args | arguments.cs:76:15:76:21 | access to array element |
| arguments.cs:74:34:74:37 | args | arguments.cs:76:24:76:30 | access to array element |
| arguments.cs:74:34:74:37 | args | arguments.cs:77:15:77:42 | array creation of type T[] |
| arguments.cs:74:34:74:37 | args | arguments.cs:78:15:78:18 | access to parameter args |
| arguments.cs:74:34:74:37 | args | arguments.cs:79:18:79:21 | access to parameter args |
| arguments.cs:74:34:74:37 | args | arguments.cs:81:23:81:25 | 1.1 |
| arguments.cs:74:34:74:37 | args | arguments.cs:81:28:81:30 | 2.2 |
| arguments.cs:74:34:74:37 | args | arguments.cs:82:23:82:47 | array creation of type Double[] |
| arguments.cs:74:34:74:37 | args | arguments.cs:84:23:84:23 | (...) ... |
| arguments.cs:74:34:74:37 | args | arguments.cs:84:26:84:26 | (...) ... |
| arguments.cs:74:34:74:37 | args | arguments.cs:85:23:85:43 | array creation of type Double[] |
| arguments.cs:74:34:74:37 | args | arguments.cs:86:23:86:43 | array creation of type Double[] |
| arguments.cs:89:20:89:20 | o | arguments.cs:91:12:91:12 | 0 |
| arguments.cs:89:20:89:20 | o | arguments.cs:92:12:92:12 | 0 |
| arguments.cs:89:20:89:20 | o | arguments.cs:93:12:93:12 | 0 |
| arguments.cs:89:20:89:20 | o | arguments.cs:94:27:94:27 | 0 |
| arguments.cs:89:20:89:20 | o | arguments.cs:96:20:96:20 | 0 |
| arguments.cs:89:20:89:20 | o | arguments.cs:97:20:97:20 | 0 |
| arguments.cs:89:20:89:20 | o | arguments.cs:99:20:99:20 | 0 |
| arguments.cs:89:20:89:20 | o | arguments.cs:100:20:100:20 | 0 |
| arguments.cs:89:38:89:41 | args | arguments.cs:91:15:91:21 | access to indexer |
| arguments.cs:89:38:89:41 | args | arguments.cs:91:24:91:30 | access to indexer |
| arguments.cs:89:38:89:41 | args | arguments.cs:92:15:92:32 | [...] |
| arguments.cs:89:38:89:41 | args | arguments.cs:93:15:93:18 | access to parameter args |
| arguments.cs:89:38:89:41 | args | arguments.cs:94:18:94:21 | access to parameter args |
| arguments.cs:89:38:89:41 | args | arguments.cs:96:23:96:25 | 1.1 |
| arguments.cs:89:38:89:41 | args | arguments.cs:96:28:96:30 | 2.2 |
| arguments.cs:89:38:89:41 | args | arguments.cs:97:23:97:32 | [...] |
| arguments.cs:89:38:89:41 | args | arguments.cs:99:23:99:23 | (...) ... |
| arguments.cs:89:38:89:41 | args | arguments.cs:99:26:99:26 | (...) ... |
| arguments.cs:89:38:89:41 | args | arguments.cs:100:23:100:47 | object creation of type List<Double> |
| arguments.cs:103:18:103:18 | o | arguments.cs:105:13:105:13 | 0 |
| arguments.cs:103:18:103:18 | o | arguments.cs:106:13:106:13 | 0 |
| arguments.cs:103:18:103:18 | o | arguments.cs:107:25:107:25 | 0 |
| arguments.cs:103:18:103:18 | o | arguments.cs:108:13:108:13 | 0 |
| arguments.cs:103:18:103:18 | o | arguments.cs:109:28:109:28 | 0 |
| arguments.cs:103:18:103:18 | o | arguments.cs:110:30:110:30 | 0 |
| arguments.cs:103:18:103:18 | o | arguments.cs:112:13:112:13 | 0 |
| arguments.cs:103:38:103:41 | args | arguments.cs:105:16:105:16 | 1 |
| arguments.cs:103:38:103:41 | args | arguments.cs:105:19:105:19 | 2 |
| arguments.cs:103:38:103:41 | args | arguments.cs:106:16:106:21 | [...] |
| arguments.cs:103:38:103:41 | args | arguments.cs:107:19:107:19 | 1 |
| arguments.cs:103:38:103:41 | args | arguments.cs:108:16:108:19 | access to parameter args |
| arguments.cs:103:38:103:41 | args | arguments.cs:109:19:109:22 | access to parameter args |
| arguments.cs:103:38:103:41 | args | arguments.cs:110:19:110:24 | [...] |
| arguments.cs:103:38:103:41 | args | arguments.cs:112:16:112:17 | (...) ... |
| arguments.cs:103:38:103:41 | args | arguments.cs:112:20:112:21 | (...) ... |

View File

@@ -1,4 +1,5 @@
import csharp
from Parameter param
where param.getCallable().fromSource()
select param, param.getAnAssignedArgument()

View File

@@ -35,6 +35,8 @@ public class CollectionFlow
public static void SinkParams<T>(params T[] args) => Sink(args[0]);
public static void SinkCollectionParams<T>(params IEnumerable<T> args) => Sink(args.First());
public void ArrayInitializerFlow()
{
var a = new A();
@@ -384,6 +386,14 @@ public class CollectionFlow
SinkParams(new A[] { other }); // no flow
}
public void ParamsCollectionFlow()
{
SinkCollectionParams(new A()); // flow
SinkCollectionParams(null, new A()); // flow
SinkCollectionParams(null, new A(), null); // flow
SinkCollectionParams([new A()]); // flow
}
public void ListAddClearNoFlow()
{
var a = new A();

View File

@@ -17,12 +17,12 @@ mayBenefitFromCallContext
| ViableCallable.cs:26:27:26:41 | access to indexer |
| ViableCallable.cs:28:9:28:16 | access to event Event |
| ViableCallable.cs:29:9:29:16 | access to event Event |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> |
| ViableCallable.cs:283:9:283:15 | call to method M<Int32> |
| ViableCallable.cs:286:9:286:20 | call to method M<Int32> |
| ViableCallable.cs:411:9:411:18 | call to method M<Int32> |
| ViableCallable.cs:455:9:455:30 | call to method M2<T> |
| ViableCallable.cs:461:9:461:30 | call to method M2<T> |
| ViableCallable.cs:563:18:563:22 | call to operator / |
| ViableCallable.cs:566:26:566:30 | call to operator checked / |
| ViableCallable.cs:572:9:572:15 | call to method M12 |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> |
| ViableCallable.cs:293:9:293:15 | call to method M<Int32> |
| ViableCallable.cs:296:9:296:20 | call to method M<Int32> |
| ViableCallable.cs:424:9:424:18 | call to method M<Int32> |
| ViableCallable.cs:468:9:468:30 | call to method M2<T> |
| ViableCallable.cs:474:9:474:30 | call to method M2<T> |
| ViableCallable.cs:576:18:576:22 | call to operator / |
| ViableCallable.cs:579:26:579:30 | call to operator checked / |
| ViableCallable.cs:585:9:585:15 | call to method M12 |

View File

@@ -30,229 +30,232 @@
| TypeFlow.cs:24:10:24:12 | Run | TypeFlow.cs:22:15:22:17 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ExactCallable.cs:128:25:128:26 | M3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ExactCallable.cs:147:29:147:30 | M3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:202:21:202:27 | Mock<C1<Int32[],Boolean>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:202:21:202:27 | Mock<C1<String,Boolean>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:202:21:202:27 | Mock<C1<String,Decimal>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:202:21:202:27 | Mock<C1<String,Int32>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:202:21:202:27 | Mock<C8> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:202:21:202:27 | Mock<IEnumerable<C4<Int32>>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:202:21:202:27 | Mock<IEnumerable<C4<String>>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:202:21:202:27 | Mock<IList<String>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:240:23:240:27 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:240:23:240:27 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:240:23:240:27 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:240:23:240:27 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:241:35:241:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:241:35:241:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:241:35:241:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:241:35:241:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:241:40:241:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:241:40:241:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:241:40:241:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:241:40:241:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:242:40:242:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:242:40:242:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:242:40:242:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:242:40:242:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:242:71:242:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:242:71:242:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:242:71:242:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:242:71:242:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:243:56:243:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:243:56:243:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:243:56:243:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:243:56:243:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:243:64:243:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:243:64:243:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:243:64:243:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:243:64:243:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:248:29:248:33 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:249:35:249:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:249:40:249:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:250:46:250:48 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:250:77:250:79 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:56:251:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:64:251:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:256:26:256:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:256:26:256:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:257:32:257:34 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:257:32:257:34 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:257:37:257:39 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:257:37:257:39 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:258:40:258:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:258:40:258:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:258:71:258:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:258:71:258:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:259:53:259:55 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:259:53:259:55 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:259:61:259:66 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:259:61:259:66 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:264:26:264:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:265:24:265:24 | M |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:266:35:266:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:266:40:266:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:267:39:267:41 | set_Prop2 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:268:43:268:45 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:268:74:268:76 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:269:56:269:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:269:64:269:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:270:55:270:57 | add_Event2 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:270:63:270:68 | remove_Event2 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:31:276:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:36:276:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:37:277:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:68:277:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:52:278:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:60:278:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:292:26:292:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:292:26:292:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:293:31:293:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:293:31:293:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:293:36:293:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:293:36:293:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:294:39:294:41 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:294:39:294:41 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:294:70:294:72 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:294:70:294:72 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:295:52:295:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:295:52:295:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:295:60:295:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:295:60:295:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:312:25:312:25 | M |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:313:24:313:28 | M2<Decimal> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:313:24:313:28 | M2<String> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:314:17:314:18 | M3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:315:17:315:18 | M4 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:325:26:325:26 | M |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:326:17:326:18 | M3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:335:17:335:18 | M3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:336:32:336:32 | + |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:338:34:338:36 | get_Prop3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:338:39:338:41 | set_Prop3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:339:31:339:33 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:339:53:339:55 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:340:45:340:47 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:340:53:340:58 | remove_Event |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:240:23:240:27 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:240:23:240:27 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:240:23:240:27 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:240:23:240:27 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:248:29:248:33 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:256:26:256:30 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:256:26:256:30 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:264:26:264:30 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:292:26:292:30 | M`1 |
| ViableCallable.cs:231:17:231:19 | Run | ViableCallable.cs:292:26:292:30 | M`1 |
| ViableCallable.cs:280:17:280:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:280:17:280:19 | Run | ViableCallable.cs:292:26:292:30 | M`1 |
| ViableCallable.cs:280:17:280:19 | Run | ViableCallable.cs:292:26:292:30 | M`1 |
| ViableCallable.cs:297:17:297:19 | Run | ViableCallable.cs:275:24:275:28 | M`1 |
| ViableCallable.cs:297:17:297:19 | Run | ViableCallable.cs:292:26:292:30 | M`1 |
| ViableCallable.cs:347:17:347:19 | Run | ViableCallable.cs:345:10:345:10 | M |
| ViableCallable.cs:347:17:347:19 | Run | ViableCallable.cs:361:5:361:7 | C11 |
| ViableCallable.cs:375:10:375:16 | Run`1 | ViableCallable.cs:371:33:371:33 | M |
| ViableCallable.cs:381:10:381:17 | Run2`1 | ViableCallable.cs:375:10:375:16 | Run<T2> |
| ViableCallable.cs:386:10:386:13 | Run3 | ViableCallable.cs:381:10:381:17 | Run2<C13> |
| ViableCallable.cs:408:10:408:12 | Run | ViableCallable.cs:202:21:202:27 | Mock<A4> |
| ViableCallable.cs:408:10:408:12 | Run | ViableCallable.cs:396:36:396:40 | M`1 |
| ViableCallable.cs:408:10:408:12 | Run | ViableCallable.cs:402:53:402:57 | M`1 |
| ViableCallable.cs:408:10:408:12 | Run | ViableCallable.cs:404:42:404:46 | M`1 |
| ViableCallable.cs:430:22:430:26 | M2`1 | ViableCallable.cs:455:14:455:29 | (...) => ... |
| ViableCallable.cs:430:22:430:26 | M2`1 | ViableCallable.cs:461:14:461:29 | (...) => ... |
| ViableCallable.cs:435:10:435:11 | M1 | ViableCallable.cs:429:23:429:24 | M1 |
| ViableCallable.cs:435:10:435:11 | M1 | ViableCallable.cs:444:23:444:27 | M2`1 |
| ViableCallable.cs:444:23:444:27 | M2`1 | ViableCallable.cs:441:17:441:23 | (...) => ... |
| ViableCallable.cs:444:23:444:27 | M2`1 | ViableCallable.cs:449:14:449:20 | (...) => ... |
| ViableCallable.cs:444:23:444:27 | M2`1 | ViableCallable.cs:455:14:455:29 | (...) => ... |
| ViableCallable.cs:444:23:444:27 | M2`1 | ViableCallable.cs:461:14:461:29 | (...) => ... |
| ViableCallable.cs:446:10:446:14 | M3`1 | ViableCallable.cs:444:23:444:27 | M2`1 |
| ViableCallable.cs:452:10:452:14 | M4`1 | ViableCallable.cs:430:22:430:26 | M2`1 |
| ViableCallable.cs:452:10:452:14 | M4`1 | ViableCallable.cs:444:23:444:27 | M2`1 |
| ViableCallable.cs:458:10:458:14 | M5`1 | ViableCallable.cs:430:22:430:26 | M2`1 |
| ViableCallable.cs:458:10:458:14 | M5`1 | ViableCallable.cs:444:23:444:27 | M2`1 |
| ViableCallable.cs:475:10:475:12 | Run | ViableCallable.cs:468:10:468:11 | M2 |
| ViableCallable.cs:475:10:475:12 | Run | ViableCallable.cs:473:17:473:18 | M1 |
| ViableCallable.cs:492:10:492:12 | Run | ViableCallable.cs:487:32:487:32 | + |
| ViableCallable.cs:492:10:492:12 | Run | ViableCallable.cs:488:40:488:40 | checked + |
| ViableCallable.cs:492:10:492:12 | Run | ViableCallable.cs:489:28:489:35 | explicit conversion |
| ViableCallable.cs:492:10:492:12 | Run | ViableCallable.cs:490:28:490:35 | checked explicit conversion |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:514:39:514:39 | checked - |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:516:31:516:31 | * |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:517:39:517:39 | checked * |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:519:31:519:31 | / |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:520:39:520:39 | checked / |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:524:18:524:20 | M12 |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:526:18:526:20 | M13 |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:531:32:531:32 | + |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:532:40:532:40 | checked + |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:534:32:534:32 | - |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:536:32:536:32 | / |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:537:40:537:40 | checked / |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:539:17:539:19 | M11 |
| ViableCallable.cs:542:10:542:15 | Run`1 | ViableCallable.cs:540:17:540:19 | M12 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:212:21:212:27 | Mock<C1<Int32[],Boolean>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:212:21:212:27 | Mock<C1<String,Boolean>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:212:21:212:27 | Mock<C1<String,Decimal>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:212:21:212:27 | Mock<C1<String,Int32>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:212:21:212:27 | Mock<C8> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:212:21:212:27 | Mock<IEnumerable<C4<Int32>>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:212:21:212:27 | Mock<IEnumerable<C4<String>>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:212:21:212:27 | Mock<IList<String>> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:250:23:250:27 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:250:23:250:27 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:250:23:250:27 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:250:23:250:27 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:35:251:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:35:251:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:35:251:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:35:251:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:40:251:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:40:251:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:40:251:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:251:40:251:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:252:40:252:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:252:40:252:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:252:40:252:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:252:40:252:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:252:71:252:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:252:71:252:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:252:71:252:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:252:71:252:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:253:56:253:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:253:56:253:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:253:56:253:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:253:56:253:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:253:64:253:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:253:64:253:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:253:64:253:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:253:64:253:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:258:29:258:33 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:259:35:259:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:259:40:259:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:260:46:260:48 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:260:77:260:79 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:261:56:261:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:261:64:261:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:266:26:266:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:266:26:266:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:267:32:267:34 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:267:32:267:34 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:267:37:267:39 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:267:37:267:39 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:268:40:268:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:268:40:268:42 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:268:71:268:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:268:71:268:73 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:269:53:269:55 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:269:53:269:55 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:269:61:269:66 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:269:61:269:66 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:274:26:274:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:275:24:275:24 | M |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:35:276:37 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:276:40:276:42 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:277:39:277:41 | set_Prop2 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:43:278:45 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:278:74:278:76 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:279:56:279:58 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:279:64:279:69 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:280:55:280:57 | add_Event2 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:280:63:280:68 | remove_Event2 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:31:286:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:286:36:286:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:37:287:39 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:287:68:287:70 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:52:288:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:288:60:288:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:302:26:302:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:302:26:302:30 | M`1 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:303:31:303:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:303:31:303:33 | get_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:303:36:303:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:303:36:303:38 | set_Prop |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:304:39:304:41 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:304:39:304:41 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:304:70:304:72 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:304:70:304:72 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:305:52:305:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:305:52:305:54 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:305:60:305:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:305:60:305:65 | remove_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:322:25:322:25 | M |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:323:24:323:28 | M2<Decimal> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:323:24:323:28 | M2<String> |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:324:17:324:18 | M3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:325:17:325:18 | M4 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:326:17:326:18 | M5 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:336:26:336:26 | M |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:337:17:337:18 | M3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:338:17:338:18 | M5 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:347:17:347:18 | M3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:348:17:348:18 | M5 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:349:32:349:32 | + |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:351:34:351:36 | get_Prop3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:351:39:351:41 | set_Prop3 |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:352:31:352:33 | get_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:352:53:352:55 | set_Item |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:353:45:353:47 | add_Event |
| ViableCallable.cs:9:17:9:31 | Run`3 | ViableCallable.cs:353:53:353:58 | remove_Event |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:250:23:250:27 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:250:23:250:27 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:250:23:250:27 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:250:23:250:27 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:258:29:258:33 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:266:26:266:30 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:266:26:266:30 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:274:26:274:30 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:302:26:302:30 | M`1 |
| ViableCallable.cs:241:17:241:19 | Run | ViableCallable.cs:302:26:302:30 | M`1 |
| ViableCallable.cs:290:17:290:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:290:17:290:19 | Run | ViableCallable.cs:302:26:302:30 | M`1 |
| ViableCallable.cs:290:17:290:19 | Run | ViableCallable.cs:302:26:302:30 | M`1 |
| ViableCallable.cs:307:17:307:19 | Run | ViableCallable.cs:285:24:285:28 | M`1 |
| ViableCallable.cs:307:17:307:19 | Run | ViableCallable.cs:302:26:302:30 | M`1 |
| ViableCallable.cs:360:17:360:19 | Run | ViableCallable.cs:358:10:358:10 | M |
| ViableCallable.cs:360:17:360:19 | Run | ViableCallable.cs:374:5:374:7 | C11 |
| ViableCallable.cs:388:10:388:16 | Run`1 | ViableCallable.cs:384:33:384:33 | M |
| ViableCallable.cs:394:10:394:17 | Run2`1 | ViableCallable.cs:388:10:388:16 | Run<T2> |
| ViableCallable.cs:399:10:399:13 | Run3 | ViableCallable.cs:394:10:394:17 | Run2<C13> |
| ViableCallable.cs:421:10:421:12 | Run | ViableCallable.cs:212:21:212:27 | Mock<A4> |
| ViableCallable.cs:421:10:421:12 | Run | ViableCallable.cs:409:36:409:40 | M`1 |
| ViableCallable.cs:421:10:421:12 | Run | ViableCallable.cs:415:53:415:57 | M`1 |
| ViableCallable.cs:421:10:421:12 | Run | ViableCallable.cs:417:42:417:46 | M`1 |
| ViableCallable.cs:443:22:443:26 | M2`1 | ViableCallable.cs:468:14:468:29 | (...) => ... |
| ViableCallable.cs:443:22:443:26 | M2`1 | ViableCallable.cs:474:14:474:29 | (...) => ... |
| ViableCallable.cs:448:10:448:11 | M1 | ViableCallable.cs:442:23:442:24 | M1 |
| ViableCallable.cs:448:10:448:11 | M1 | ViableCallable.cs:457:23:457:27 | M2`1 |
| ViableCallable.cs:457:23:457:27 | M2`1 | ViableCallable.cs:454:17:454:23 | (...) => ... |
| ViableCallable.cs:457:23:457:27 | M2`1 | ViableCallable.cs:462:14:462:20 | (...) => ... |
| ViableCallable.cs:457:23:457:27 | M2`1 | ViableCallable.cs:468:14:468:29 | (...) => ... |
| ViableCallable.cs:457:23:457:27 | M2`1 | ViableCallable.cs:474:14:474:29 | (...) => ... |
| ViableCallable.cs:459:10:459:14 | M3`1 | ViableCallable.cs:457:23:457:27 | M2`1 |
| ViableCallable.cs:465:10:465:14 | M4`1 | ViableCallable.cs:443:22:443:26 | M2`1 |
| ViableCallable.cs:465:10:465:14 | M4`1 | ViableCallable.cs:457:23:457:27 | M2`1 |
| ViableCallable.cs:471:10:471:14 | M5`1 | ViableCallable.cs:443:22:443:26 | M2`1 |
| ViableCallable.cs:471:10:471:14 | M5`1 | ViableCallable.cs:457:23:457:27 | M2`1 |
| ViableCallable.cs:488:10:488:12 | Run | ViableCallable.cs:481:10:481:11 | M2 |
| ViableCallable.cs:488:10:488:12 | Run | ViableCallable.cs:486:17:486:18 | M1 |
| ViableCallable.cs:505:10:505:12 | Run | ViableCallable.cs:500:32:500:32 | + |
| ViableCallable.cs:505:10:505:12 | Run | ViableCallable.cs:501:40:501:40 | checked + |
| ViableCallable.cs:505:10:505:12 | Run | ViableCallable.cs:502:28:502:35 | explicit conversion |
| ViableCallable.cs:505:10:505:12 | Run | ViableCallable.cs:503:28:503:35 | checked explicit conversion |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:527:39:527:39 | checked - |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:529:31:529:31 | * |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:530:39:530:39 | checked * |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:532:31:532:31 | / |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:533:39:533:39 | checked / |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:537:18:537:20 | M12 |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:539:18:539:20 | M13 |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:544:32:544:32 | + |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:545:40:545:40 | checked + |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:547:32:547:32 | - |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:549:32:549:32 | / |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:550:40:550:40 | checked / |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:552:17:552:19 | M11 |
| ViableCallable.cs:555:10:555:15 | Run`1 | ViableCallable.cs:553:17:553:19 | M12 |

View File

@@ -332,160 +332,176 @@
| ViableCallable.cs:144:9:144:15 | dynamic call to method M3 | C9`1.M3(params T[]) |
| ViableCallable.cs:145:9:145:20 | dynamic call to method M3 | C8.M3(params Double[]) |
| ViableCallable.cs:145:9:145:20 | dynamic call to method M3 | C9`1.M3(params T[]) |
| ViableCallable.cs:148:9:148:16 | dynamic call to method M3 | C8.M3(params Double[]) |
| ViableCallable.cs:148:9:148:16 | dynamic call to method M3 | C9`1.M3(params T[]) |
| ViableCallable.cs:148:9:148:16 | dynamic call to method M3 | C10.M3(params Double[]) |
| ViableCallable.cs:148:9:148:16 | dynamic call to method M3 | Test.MainClass+ImplAlpha.M3() |
| ViableCallable.cs:148:9:148:16 | dynamic call to method M3 | Test.MainClass+SecondLevelImpl.M3() |
| ViableCallable.cs:149:9:149:17 | dynamic call to method M3 | C8.M3(params Double[]) |
| ViableCallable.cs:149:9:149:17 | dynamic call to method M3 | C9`1.M3(params T[]) |
| ViableCallable.cs:149:9:149:17 | dynamic call to method M3 | C10.M3(params Double[]) |
| ViableCallable.cs:150:9:150:22 | dynamic call to method M3 | C8.M3(params Double[]) |
| ViableCallable.cs:150:9:150:22 | dynamic call to method M3 | C9`1.M3(params T[]) |
| ViableCallable.cs:150:9:150:22 | dynamic call to method M3 | C10.M3(params Double[]) |
| ViableCallable.cs:152:9:152:17 | dynamic access to member Prop1 | C8.set_Prop1(string) |
| ViableCallable.cs:152:9:152:17 | dynamic access to member Prop1 | C9`1.set_Prop1(string) |
| ViableCallable.cs:152:9:152:17 | dynamic access to member Prop1 | C10.set_Prop1(bool) |
| ViableCallable.cs:152:21:152:29 | dynamic access to member Prop1 | C8.get_Prop1() |
| ViableCallable.cs:152:21:152:29 | dynamic access to member Prop1 | C9`1.get_Prop1() |
| ViableCallable.cs:152:21:152:29 | dynamic access to member Prop1 | C10.get_Prop1() |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C2<System.Decimal>.set_Item(decimal, string) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C2<System.Int32>.set_Item(int, string) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C2`1.set_Item(T, string) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C3.set_Item(decimal, string) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C6<System.Boolean,System.Byte>.set_Item(byte, bool) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C6<System.String,System.Decimal>.set_Item(decimal, string) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C6<System.String,System.Int32>.set_Item(int, string) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C6<T1,System.Byte>.set_Item(byte, T1) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C6`2.set_Item(T2, T1) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C7<System.Boolean>.set_Item(byte, bool) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C7`1.set_Item(byte, T1) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C8.set_Item(int, string) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C9`1.set_Item(int, string) |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | C10.set_Item(int, bool) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C2<System.Decimal>.get_Item(decimal) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C2<System.Int32>.get_Item(int) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C2`1.get_Item(T) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C3.get_Item(decimal) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C6<System.Boolean,System.Byte>.get_Item(byte) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C6<System.String,System.Decimal>.get_Item(decimal) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C6<System.String,System.Int32>.get_Item(int) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C6<T1,System.Byte>.get_Item(byte) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C6`2.get_Item(T2) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C7<System.Boolean>.get_Item(byte) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C7`1.get_Item(byte) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C8.get_Item(int) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C9`1.get_Item(int) |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | C10.get_Item(int) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C2<System.Boolean>.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C2<System.Decimal>.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C2<System.Int32>.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C2`1.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C3.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C5.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C6<System.String,System.Boolean>.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C6<System.String,System.Decimal>.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C6<System.String,System.Int32>.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C6<T1,System.Boolean>.add_Event(EventHandler<T1>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C6<T1,System.Byte>.add_Event(EventHandler<T1>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C6`2.add_Event(EventHandler<T1>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C7`1.add_Event(EventHandler<T1>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C8.add_Event(EventHandler<string>) |
| ViableCallable.cs:156:9:156:54 | ... += ... | C9`1.add_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C2<System.Boolean>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C2<System.Decimal>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C2<System.Int32>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C2`1.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C3.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C5.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C6<System.String,System.Boolean>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C6<System.String,System.Decimal>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C6<System.String,System.Int32>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C6<T1,System.Boolean>.remove_Event(EventHandler<T1>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C6<T1,System.Byte>.remove_Event(EventHandler<T1>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C6`2.remove_Event(EventHandler<T1>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C7`1.remove_Event(EventHandler<T1>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C8.remove_Event(EventHandler<string>) |
| ViableCallable.cs:157:9:157:54 | ... -= ... | C9`1.remove_Event(EventHandler<string>) |
| ViableCallable.cs:160:9:160:40 | dynamic call to method M4 | C8.M4(byte, IEnumerable<string>) |
| ViableCallable.cs:160:19:160:39 | call to method Mock<IList<String>> | ViableCallable.Mock<IList<string>>() |
| ViableCallable.cs:161:9:161:38 | dynamic call to method M4 | C8.M4(byte, IEnumerable<string>) |
| ViableCallable.cs:164:9:164:17 | dynamic access to member Prop1 | C10.set_Prop1(bool) |
| ViableCallable.cs:174:9:174:15 | dynamic access to element | C2`1.set_Item(T, string) |
| ViableCallable.cs:174:9:174:15 | dynamic access to element | C6`2.set_Item(T2, T1) |
| ViableCallable.cs:174:19:174:25 | dynamic access to element | C2`1.get_Item(T) |
| ViableCallable.cs:174:19:174:25 | dynamic access to element | C6`2.get_Item(T2) |
| ViableCallable.cs:186:9:186:153 | call to method InvokeMember | C10.+(C10, C10) |
| ViableCallable.cs:189:9:189:143 | call to method InvokeMember | C10.get_Prop3() |
| ViableCallable.cs:190:9:190:149 | call to method InvokeMember | C10.set_Prop3(string) |
| ViableCallable.cs:193:9:193:146 | call to method InvokeMember | C10.get_Item(int) |
| ViableCallable.cs:194:9:194:152 | call to method InvokeMember | C10.set_Item(int, bool) |
| ViableCallable.cs:198:9:198:147 | call to method InvokeMember | C10.add_Event(EventHandler<bool>) |
| ViableCallable.cs:199:9:199:150 | call to method InvokeMember | C10.remove_Event(EventHandler<bool>) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C2<System.Boolean>.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C2<System.Decimal>.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C2<System.Int32>.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C2`1.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C3.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C4<System.Int32>.M<T3>(Int32[], T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C4`1.M<T3>(T[], T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C5.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C6<System.Boolean,System.Byte>.M<T3>(bool, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C6<System.Int32[],System.Boolean>.M<T3>(Int32[], T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C6<System.String,System.Boolean>.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C6<System.String,System.Decimal>.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C6<System.String,System.Int32>.M<T3>(string, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C6<T1,System.Boolean>.M<T3>(T1, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C6<T1,System.Byte>.M<T3>(T1, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C6`2.M<T3>(T1, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C7<System.Boolean>.M<T3>(bool, T3) |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:283:9:283:15 | call to method M<Int32> | C6`2.M<T3>(T1, T3) |
| ViableCallable.cs:283:9:283:15 | call to method M<Int32> | C7<System.Boolean>.M<T3>(bool, T3) |
| ViableCallable.cs:283:9:283:15 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:286:9:286:20 | call to method M<Int32> | C6`2.M<T3>(T1, T3) |
| ViableCallable.cs:286:9:286:20 | call to method M<Int32> | C7<System.Boolean>.M<T3>(bool, T3) |
| ViableCallable.cs:286:9:286:20 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:300:9:300:15 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:303:9:303:20 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:306:9:306:20 | call to method M<Int32> | C6<T1,System.Byte>.M<T3>(T1, T3) |
| ViableCallable.cs:353:9:353:14 | dynamic call to method M | C11.M(dynamic) |
| ViableCallable.cs:355:9:355:18 | dynamic object creation of type C11 | C11.C11(C11) |
| ViableCallable.cs:378:9:378:13 | call to method M | C12+C13.M() |
| ViableCallable.cs:383:9:383:14 | call to method Run<T2> | C12.Run<T2>(T2) |
| ViableCallable.cs:388:9:388:23 | call to method Run2<C13> | C12.Run2<C13>(C13) |
| ViableCallable.cs:411:9:411:18 | call to method M<Int32> | C15+A1.M<T1>() |
| ViableCallable.cs:411:9:411:18 | call to method M<Int32> | C15+A4.M<T1>() |
| ViableCallable.cs:411:9:411:18 | call to method M<Int32> | C15+A5.M<T1>() |
| ViableCallable.cs:415:9:415:19 | call to method M<Boolean> | C15+A1.M<T1>() |
| ViableCallable.cs:419:9:419:21 | call to method M<String> | C15+A4.M<T1>() |
| ViableCallable.cs:421:13:421:37 | call to method Mock<A4> | ViableCallable.Mock<A4>() |
| ViableCallable.cs:423:9:423:21 | call to method M<String> | C15+A4.M<T1>() |
| ViableCallable.cs:423:9:423:21 | call to method M<String> | C15+A5.M<T1>() |
| ViableCallable.cs:438:9:438:19 | call to method M1 | C16<System.String,System.Int32>.M1(string) |
| ViableCallable.cs:441:9:441:24 | call to method M2<Int32> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:449:9:449:21 | call to method M2<String> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:455:9:455:30 | call to method M2<T> | C16<T,System.Int32>.M2<T>(Func<T>) |
| ViableCallable.cs:455:9:455:30 | call to method M2<T> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:461:9:461:30 | call to method M2<T> | C16<T,System.Int32>.M2<T>(Func<T>) |
| ViableCallable.cs:461:9:461:30 | call to method M2<T> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:478:9:478:14 | call to method M1 | C18.M1() |
| ViableCallable.cs:481:9:481:14 | call to method M2 | I2.M2() |
| ViableCallable.cs:495:18:495:22 | call to operator + | C19.+(C19, C19) |
| ViableCallable.cs:498:26:498:30 | call to operator checked + | C19.checked +(C19, C19) |
| ViableCallable.cs:501:18:501:23 | call to operator explicit conversion | C19.explicit conversion(C19) |
| ViableCallable.cs:504:26:504:31 | call to operator checked explicit conversion | C19.checked explicit conversion(C19) |
| ViableCallable.cs:545:18:545:22 | call to operator + | C20.+(C20, C20) |
| ViableCallable.cs:548:26:548:30 | call to operator checked + | C20.checked +(C20, C20) |
| ViableCallable.cs:551:18:551:22 | call to operator - | C20.-(C20, C20) |
| ViableCallable.cs:554:26:554:30 | call to operator checked - | I3<T>.checked -(T, T) |
| ViableCallable.cs:557:18:557:22 | call to operator * | I3<T>.*(T, T) |
| ViableCallable.cs:560:26:560:30 | call to operator checked * | I3<T>.checked *(T, T) |
| ViableCallable.cs:563:18:563:22 | call to operator / | C20./(C20, C20) |
| ViableCallable.cs:563:18:563:22 | call to operator / | I3<T>./(T, T) |
| ViableCallable.cs:566:26:566:30 | call to operator checked / | C20.checked /(C20, C20) |
| ViableCallable.cs:566:26:566:30 | call to operator checked / | I3<T>.checked /(T, T) |
| ViableCallable.cs:569:9:569:15 | call to method M11 | C20.M11() |
| ViableCallable.cs:572:9:572:15 | call to method M12 | C20.M12() |
| ViableCallable.cs:572:9:572:15 | call to method M12 | I3<T>.M12() |
| ViableCallable.cs:575:9:575:15 | call to method M13 | I3<T>.M13() |
| ViableCallable.cs:148:13:148:22 | call to method Mock<C8> | ViableCallable.Mock<C8>() |
| ViableCallable.cs:149:9:149:14 | dynamic call to method M5 | C8.M5(params IEnumerable<double>) |
| ViableCallable.cs:149:9:149:14 | dynamic call to method M5 | C9`1.M5(params IEnumerable<T>) |
| ViableCallable.cs:150:9:150:15 | dynamic call to method M5 | C8.M5(params IEnumerable<double>) |
| ViableCallable.cs:150:9:150:15 | dynamic call to method M5 | C9`1.M5(params IEnumerable<T>) |
| ViableCallable.cs:151:9:151:20 | dynamic call to method M5 | C8.M5(params IEnumerable<double>) |
| ViableCallable.cs:151:9:151:20 | dynamic call to method M5 | C9`1.M5(params IEnumerable<T>) |
| ViableCallable.cs:154:9:154:16 | dynamic call to method M3 | C8.M3(params Double[]) |
| ViableCallable.cs:154:9:154:16 | dynamic call to method M3 | C9`1.M3(params T[]) |
| ViableCallable.cs:154:9:154:16 | dynamic call to method M3 | C10.M3(params Double[]) |
| ViableCallable.cs:154:9:154:16 | dynamic call to method M3 | Test.MainClass+ImplAlpha.M3() |
| ViableCallable.cs:154:9:154:16 | dynamic call to method M3 | Test.MainClass+SecondLevelImpl.M3() |
| ViableCallable.cs:155:9:155:17 | dynamic call to method M3 | C8.M3(params Double[]) |
| ViableCallable.cs:155:9:155:17 | dynamic call to method M3 | C9`1.M3(params T[]) |
| ViableCallable.cs:155:9:155:17 | dynamic call to method M3 | C10.M3(params Double[]) |
| ViableCallable.cs:156:9:156:22 | dynamic call to method M3 | C8.M3(params Double[]) |
| ViableCallable.cs:156:9:156:22 | dynamic call to method M3 | C9`1.M3(params T[]) |
| ViableCallable.cs:156:9:156:22 | dynamic call to method M3 | C10.M3(params Double[]) |
| ViableCallable.cs:158:9:158:16 | dynamic call to method M5 | C8.M5(params IEnumerable<double>) |
| ViableCallable.cs:158:9:158:16 | dynamic call to method M5 | C9`1.M5(params IEnumerable<T>) |
| ViableCallable.cs:158:9:158:16 | dynamic call to method M5 | C10.M5(params IEnumerable<double>) |
| ViableCallable.cs:159:9:159:17 | dynamic call to method M5 | C8.M5(params IEnumerable<double>) |
| ViableCallable.cs:159:9:159:17 | dynamic call to method M5 | C9`1.M5(params IEnumerable<T>) |
| ViableCallable.cs:159:9:159:17 | dynamic call to method M5 | C10.M5(params IEnumerable<double>) |
| ViableCallable.cs:160:9:160:22 | dynamic call to method M5 | C8.M5(params IEnumerable<double>) |
| ViableCallable.cs:160:9:160:22 | dynamic call to method M5 | C9`1.M5(params IEnumerable<T>) |
| ViableCallable.cs:160:9:160:22 | dynamic call to method M5 | C10.M5(params IEnumerable<double>) |
| ViableCallable.cs:162:9:162:17 | dynamic access to member Prop1 | C8.set_Prop1(string) |
| ViableCallable.cs:162:9:162:17 | dynamic access to member Prop1 | C9`1.set_Prop1(string) |
| ViableCallable.cs:162:9:162:17 | dynamic access to member Prop1 | C10.set_Prop1(bool) |
| ViableCallable.cs:162:21:162:29 | dynamic access to member Prop1 | C8.get_Prop1() |
| ViableCallable.cs:162:21:162:29 | dynamic access to member Prop1 | C9`1.get_Prop1() |
| ViableCallable.cs:162:21:162:29 | dynamic access to member Prop1 | C10.get_Prop1() |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C2<System.Decimal>.set_Item(decimal, string) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C2<System.Int32>.set_Item(int, string) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C2`1.set_Item(T, string) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C3.set_Item(decimal, string) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C6<System.Boolean,System.Byte>.set_Item(byte, bool) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C6<System.String,System.Decimal>.set_Item(decimal, string) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C6<System.String,System.Int32>.set_Item(int, string) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C6<T1,System.Byte>.set_Item(byte, T1) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C6`2.set_Item(T2, T1) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C7<System.Boolean>.set_Item(byte, bool) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C7`1.set_Item(byte, T1) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C8.set_Item(int, string) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C9`1.set_Item(int, string) |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | C10.set_Item(int, bool) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C2<System.Decimal>.get_Item(decimal) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C2<System.Int32>.get_Item(int) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C2`1.get_Item(T) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C3.get_Item(decimal) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C6<System.Boolean,System.Byte>.get_Item(byte) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C6<System.String,System.Decimal>.get_Item(decimal) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C6<System.String,System.Int32>.get_Item(int) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C6<T1,System.Byte>.get_Item(byte) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C6`2.get_Item(T2) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C7<System.Boolean>.get_Item(byte) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C7`1.get_Item(byte) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C8.get_Item(int) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C9`1.get_Item(int) |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | C10.get_Item(int) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C2<System.Boolean>.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C2<System.Decimal>.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C2<System.Int32>.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C2`1.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C3.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C5.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C6<System.String,System.Boolean>.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C6<System.String,System.Decimal>.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C6<System.String,System.Int32>.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C6<T1,System.Boolean>.add_Event(EventHandler<T1>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C6<T1,System.Byte>.add_Event(EventHandler<T1>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C6`2.add_Event(EventHandler<T1>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C7`1.add_Event(EventHandler<T1>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C8.add_Event(EventHandler<string>) |
| ViableCallable.cs:166:9:166:54 | ... += ... | C9`1.add_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C2<System.Boolean>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C2<System.Decimal>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C2<System.Int32>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C2`1.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C3.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C5.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C6<System.String,System.Boolean>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C6<System.String,System.Decimal>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C6<System.String,System.Int32>.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C6<T1,System.Boolean>.remove_Event(EventHandler<T1>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C6<T1,System.Byte>.remove_Event(EventHandler<T1>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C6`2.remove_Event(EventHandler<T1>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C7`1.remove_Event(EventHandler<T1>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C8.remove_Event(EventHandler<string>) |
| ViableCallable.cs:167:9:167:54 | ... -= ... | C9`1.remove_Event(EventHandler<string>) |
| ViableCallable.cs:170:9:170:40 | dynamic call to method M4 | C8.M4(byte, IEnumerable<string>) |
| ViableCallable.cs:170:19:170:39 | call to method Mock<IList<String>> | ViableCallable.Mock<IList<string>>() |
| ViableCallable.cs:171:9:171:38 | dynamic call to method M4 | C8.M4(byte, IEnumerable<string>) |
| ViableCallable.cs:174:9:174:17 | dynamic access to member Prop1 | C10.set_Prop1(bool) |
| ViableCallable.cs:184:9:184:15 | dynamic access to element | C2`1.set_Item(T, string) |
| ViableCallable.cs:184:9:184:15 | dynamic access to element | C6`2.set_Item(T2, T1) |
| ViableCallable.cs:184:19:184:25 | dynamic access to element | C2`1.get_Item(T) |
| ViableCallable.cs:184:19:184:25 | dynamic access to element | C6`2.get_Item(T2) |
| ViableCallable.cs:196:9:196:153 | call to method InvokeMember | C10.+(C10, C10) |
| ViableCallable.cs:199:9:199:143 | call to method InvokeMember | C10.get_Prop3() |
| ViableCallable.cs:200:9:200:149 | call to method InvokeMember | C10.set_Prop3(string) |
| ViableCallable.cs:203:9:203:146 | call to method InvokeMember | C10.get_Item(int) |
| ViableCallable.cs:204:9:204:152 | call to method InvokeMember | C10.set_Item(int, bool) |
| ViableCallable.cs:208:9:208:147 | call to method InvokeMember | C10.add_Event(EventHandler<bool>) |
| ViableCallable.cs:209:9:209:150 | call to method InvokeMember | C10.remove_Event(EventHandler<bool>) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C2<System.Boolean>.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C2<System.Decimal>.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C2<System.Int32>.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C2`1.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C3.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C4<System.Int32>.M<T3>(Int32[], T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C4`1.M<T3>(T[], T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C5.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C6<System.Boolean,System.Byte>.M<T3>(bool, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C6<System.Int32[],System.Boolean>.M<T3>(Int32[], T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C6<System.String,System.Boolean>.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C6<System.String,System.Decimal>.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C6<System.String,System.Int32>.M<T3>(string, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C6<T1,System.Boolean>.M<T3>(T1, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C6<T1,System.Byte>.M<T3>(T1, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C6`2.M<T3>(T1, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C7<System.Boolean>.M<T3>(bool, T3) |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:293:9:293:15 | call to method M<Int32> | C6`2.M<T3>(T1, T3) |
| ViableCallable.cs:293:9:293:15 | call to method M<Int32> | C7<System.Boolean>.M<T3>(bool, T3) |
| ViableCallable.cs:293:9:293:15 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:296:9:296:20 | call to method M<Int32> | C6`2.M<T3>(T1, T3) |
| ViableCallable.cs:296:9:296:20 | call to method M<Int32> | C7<System.Boolean>.M<T3>(bool, T3) |
| ViableCallable.cs:296:9:296:20 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:310:9:310:15 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:313:9:313:20 | call to method M<Int32> | C7`1.M<T3>(T1, T3) |
| ViableCallable.cs:316:9:316:20 | call to method M<Int32> | C6<T1,System.Byte>.M<T3>(T1, T3) |
| ViableCallable.cs:366:9:366:14 | dynamic call to method M | C11.M(dynamic) |
| ViableCallable.cs:368:9:368:18 | dynamic object creation of type C11 | C11.C11(C11) |
| ViableCallable.cs:391:9:391:13 | call to method M | C12+C13.M() |
| ViableCallable.cs:396:9:396:14 | call to method Run<T2> | C12.Run<T2>(T2) |
| ViableCallable.cs:401:9:401:23 | call to method Run2<C13> | C12.Run2<C13>(C13) |
| ViableCallable.cs:424:9:424:18 | call to method M<Int32> | C15+A1.M<T1>() |
| ViableCallable.cs:424:9:424:18 | call to method M<Int32> | C15+A4.M<T1>() |
| ViableCallable.cs:424:9:424:18 | call to method M<Int32> | C15+A5.M<T1>() |
| ViableCallable.cs:428:9:428:19 | call to method M<Boolean> | C15+A1.M<T1>() |
| ViableCallable.cs:432:9:432:21 | call to method M<String> | C15+A4.M<T1>() |
| ViableCallable.cs:434:13:434:37 | call to method Mock<A4> | ViableCallable.Mock<A4>() |
| ViableCallable.cs:436:9:436:21 | call to method M<String> | C15+A4.M<T1>() |
| ViableCallable.cs:436:9:436:21 | call to method M<String> | C15+A5.M<T1>() |
| ViableCallable.cs:451:9:451:19 | call to method M1 | C16<System.String,System.Int32>.M1(string) |
| ViableCallable.cs:454:9:454:24 | call to method M2<Int32> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:462:9:462:21 | call to method M2<String> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:468:9:468:30 | call to method M2<T> | C16<T,System.Int32>.M2<T>(Func<T>) |
| ViableCallable.cs:468:9:468:30 | call to method M2<T> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:474:9:474:30 | call to method M2<T> | C16<T,System.Int32>.M2<T>(Func<T>) |
| ViableCallable.cs:474:9:474:30 | call to method M2<T> | C17.M2<T>(Func<T>) |
| ViableCallable.cs:491:9:491:14 | call to method M1 | C18.M1() |
| ViableCallable.cs:494:9:494:14 | call to method M2 | I2.M2() |
| ViableCallable.cs:508:18:508:22 | call to operator + | C19.+(C19, C19) |
| ViableCallable.cs:511:26:511:30 | call to operator checked + | C19.checked +(C19, C19) |
| ViableCallable.cs:514:18:514:23 | call to operator explicit conversion | C19.explicit conversion(C19) |
| ViableCallable.cs:517:26:517:31 | call to operator checked explicit conversion | C19.checked explicit conversion(C19) |
| ViableCallable.cs:558:18:558:22 | call to operator + | C20.+(C20, C20) |
| ViableCallable.cs:561:26:561:30 | call to operator checked + | C20.checked +(C20, C20) |
| ViableCallable.cs:564:18:564:22 | call to operator - | C20.-(C20, C20) |
| ViableCallable.cs:567:26:567:30 | call to operator checked - | I3<T>.checked -(T, T) |
| ViableCallable.cs:570:18:570:22 | call to operator * | I3<T>.*(T, T) |
| ViableCallable.cs:573:26:573:30 | call to operator checked * | I3<T>.checked *(T, T) |
| ViableCallable.cs:576:18:576:22 | call to operator / | C20./(C20, C20) |
| ViableCallable.cs:576:18:576:22 | call to operator / | I3<T>./(T, T) |
| ViableCallable.cs:579:26:579:30 | call to operator checked / | C20.checked /(C20, C20) |
| ViableCallable.cs:579:26:579:30 | call to operator checked / | I3<T>.checked /(T, T) |
| ViableCallable.cs:582:9:582:15 | call to method M11 | C20.M11() |
| ViableCallable.cs:585:9:585:15 | call to method M12 | C20.M12() |
| ViableCallable.cs:585:9:585:15 | call to method M12 | I3<T>.M12() |
| ViableCallable.cs:588:9:588:15 | call to method M13 | I3<T>.M13() |

View File

@@ -144,10 +144,20 @@ public class ViableCallable
d.M3(0);
d.M3(0, 0.0);
// Viable callables: C8.M5(), C9.M5()
d = Mock<C8>();
d.M5();
d.M5(0);
d.M5(0, 0.0);
// Viable callables: {C8,C9,C10}.M3()
dyn.M3();
dyn.M3(0);
dyn.M3(0, 0.0);
// Viable callables: {C8,C9,C10}.M5()
dyn.M5();
dyn.M5(0);
dyn.M5(0, 0.0);
// Viable callables: {C8,C9,C10}.{get_Prop1(),set_Prop1()}
dyn.Prop1 = dyn.Prop1;
// Viable callables: {C2,C3,C6,C7,C8,C9,C10}.{get_Item(),set_Item()}
@@ -313,6 +323,7 @@ public class C8
public static void M2<T>(T[] x) { }
public void M3(params double[] x) { }
public void M4(byte b, IEnumerable<string> s) { }
public void M5(params IEnumerable<double> x) { }
public virtual string Prop1 { get; set; }
public static string Prop2 { get; set; }
public string Prop3 { get; set; }
@@ -324,6 +335,7 @@ public class C9<T> : C8
{
public override void M(IEnumerable<C1<string[], bool>> x) { }
public void M3(params T[] x) { }
public void M5(params IEnumerable<T> s) { }
public override string Prop1 { get; set; }
public string Prop3 { get; set; }
public override string this[int x] { get { throw new Exception(); } set { throw new Exception(); } }
@@ -333,6 +345,7 @@ public class C9<T> : C8
public class C10
{
public void M3(params double[] x) { }
public void M5(params IEnumerable<double> x) { }
public static C10 operator +(C10 x, C10 y) { return x; }
public bool Prop1 { get; set; }
public static string Prop3 { get; set; }

View File

@@ -162,127 +162,142 @@
| ViableCallable.cs:144:9:144:15 | dynamic call to method M3 | M3 | C9`1 |
| ViableCallable.cs:145:9:145:20 | dynamic call to method M3 | M3 | C8 |
| ViableCallable.cs:145:9:145:20 | dynamic call to method M3 | M3 | C9`1 |
| ViableCallable.cs:148:9:148:16 | dynamic call to method M3 | M3 | C8 |
| ViableCallable.cs:148:9:148:16 | dynamic call to method M3 | M3 | C9`1 |
| ViableCallable.cs:148:9:148:16 | dynamic call to method M3 | M3 | C10 |
| ViableCallable.cs:149:9:149:17 | dynamic call to method M3 | M3 | C8 |
| ViableCallable.cs:149:9:149:17 | dynamic call to method M3 | M3 | C9`1 |
| ViableCallable.cs:149:9:149:17 | dynamic call to method M3 | M3 | C10 |
| ViableCallable.cs:150:9:150:22 | dynamic call to method M3 | M3 | C8 |
| ViableCallable.cs:150:9:150:22 | dynamic call to method M3 | M3 | C9`1 |
| ViableCallable.cs:150:9:150:22 | dynamic call to method M3 | M3 | C10 |
| ViableCallable.cs:152:9:152:17 | dynamic access to member Prop1 | set_Prop1 | C8 |
| ViableCallable.cs:152:9:152:17 | dynamic access to member Prop1 | set_Prop1 | C9`1 |
| ViableCallable.cs:152:9:152:17 | dynamic access to member Prop1 | set_Prop1 | C10 |
| ViableCallable.cs:152:21:152:29 | dynamic access to member Prop1 | get_Prop1 | C8 |
| ViableCallable.cs:152:21:152:29 | dynamic access to member Prop1 | get_Prop1 | C9`1 |
| ViableCallable.cs:152:21:152:29 | dynamic access to member Prop1 | get_Prop1 | C10 |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | set_Item | C2`1 |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | set_Item | C3 |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | set_Item | C6`2 |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | set_Item | C7`1 |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | set_Item | C8 |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | set_Item | C9`1 |
| ViableCallable.cs:154:9:154:14 | dynamic access to element | set_Item | C10 |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | get_Item | C2`1 |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | get_Item | C3 |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | get_Item | C6`2 |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | get_Item | C7`1 |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | get_Item | C8 |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | get_Item | C9`1 |
| ViableCallable.cs:154:18:154:23 | dynamic access to element | get_Item | C10 |
| ViableCallable.cs:156:9:156:54 | ... += ... | add_Event | C2`1 |
| ViableCallable.cs:156:9:156:54 | ... += ... | add_Event | C3 |
| ViableCallable.cs:156:9:156:54 | ... += ... | add_Event | C5 |
| ViableCallable.cs:156:9:156:54 | ... += ... | add_Event | C6`2 |
| ViableCallable.cs:156:9:156:54 | ... += ... | add_Event | C7`1 |
| ViableCallable.cs:156:9:156:54 | ... += ... | add_Event | C8 |
| ViableCallable.cs:156:9:156:54 | ... += ... | add_Event | C9`1 |
| ViableCallable.cs:157:9:157:54 | ... -= ... | remove_Event | C2`1 |
| ViableCallable.cs:157:9:157:54 | ... -= ... | remove_Event | C3 |
| ViableCallable.cs:157:9:157:54 | ... -= ... | remove_Event | C5 |
| ViableCallable.cs:157:9:157:54 | ... -= ... | remove_Event | C6`2 |
| ViableCallable.cs:157:9:157:54 | ... -= ... | remove_Event | C7`1 |
| ViableCallable.cs:157:9:157:54 | ... -= ... | remove_Event | C8 |
| ViableCallable.cs:157:9:157:54 | ... -= ... | remove_Event | C9`1 |
| ViableCallable.cs:160:9:160:40 | dynamic call to method M4 | M4 | C8 |
| ViableCallable.cs:161:9:161:38 | dynamic call to method M4 | M4 | C8 |
| ViableCallable.cs:164:9:164:17 | dynamic access to member Prop1 | set_Prop1 | C10 |
| ViableCallable.cs:174:9:174:15 | dynamic access to element | set_Item | C2`1 |
| ViableCallable.cs:174:9:174:15 | dynamic access to element | set_Item | C6`2 |
| ViableCallable.cs:174:19:174:25 | dynamic access to element | get_Item | C2`1 |
| ViableCallable.cs:174:19:174:25 | dynamic access to element | get_Item | C6`2 |
| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Decimal |
| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Double |
| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Int32 |
| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Int64 |
| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Int128 |
| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | NFloat |
| ViableCallable.cs:178:13:178:17 | dynamic call to operator + | + | Single |
| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Decimal |
| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Double |
| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Int32 |
| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Int64 |
| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Int128 |
| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | NFloat |
| ViableCallable.cs:180:13:180:17 | dynamic call to operator - | - | Single |
| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Decimal |
| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Double |
| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Int32 |
| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Int64 |
| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Int128 |
| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | NFloat |
| ViableCallable.cs:182:13:182:18 | dynamic call to operator + | + | Single |
| ViableCallable.cs:185:17:185:25 | object creation of type C10 | C10 | C10 |
| ViableCallable.cs:186:9:186:153 | call to method InvokeMember | + | C10 |
| ViableCallable.cs:189:9:189:143 | call to method InvokeMember | get_Prop3 | C10 |
| ViableCallable.cs:190:9:190:149 | call to method InvokeMember | set_Prop3 | C10 |
| ViableCallable.cs:193:9:193:146 | call to method InvokeMember | get_Item | C10 |
| ViableCallable.cs:194:9:194:152 | call to method InvokeMember | set_Item | C10 |
| ViableCallable.cs:198:9:198:147 | call to method InvokeMember | add_Event | C10 |
| ViableCallable.cs:199:9:199:150 | call to method InvokeMember | remove_Event | C10 |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | M`1 | C2`1 |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | M`1 | C3 |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | M`1 | C4`1 |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | M`1 | C5 |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:234:9:234:15 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:283:9:283:15 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:283:9:283:15 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:286:9:286:20 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:286:9:286:20 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:300:9:300:15 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:303:9:303:20 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:306:9:306:20 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:353:9:353:14 | dynamic call to method M | M | C11 |
| ViableCallable.cs:355:9:355:18 | dynamic object creation of type C11 | C11 | C11 |
| ViableCallable.cs:378:9:378:13 | call to method M | M | C13 |
| ViableCallable.cs:411:9:411:18 | call to method M<Int32> | M`1 | A1 |
| ViableCallable.cs:411:9:411:18 | call to method M<Int32> | M`1 | A4 |
| ViableCallable.cs:411:9:411:18 | call to method M<Int32> | M`1 | A5 |
| ViableCallable.cs:413:13:413:20 | object creation of type A3 | A3 | A3 |
| ViableCallable.cs:415:9:415:19 | call to method M<Boolean> | M`1 | A1 |
| ViableCallable.cs:417:13:417:20 | object creation of type A4 | A4 | A4 |
| ViableCallable.cs:419:9:419:21 | call to method M<String> | M`1 | A4 |
| ViableCallable.cs:423:9:423:21 | call to method M<String> | M`1 | A4 |
| ViableCallable.cs:423:9:423:21 | call to method M<String> | M`1 | A5 |
| ViableCallable.cs:478:9:478:14 | call to method M1 | M1 | C18 |
| ViableCallable.cs:481:9:481:14 | call to method M2 | M2 | I2 |
| ViableCallable.cs:495:18:495:22 | call to operator + | + | C19 |
| ViableCallable.cs:498:26:498:30 | call to operator checked + | checked + | C19 |
| ViableCallable.cs:501:18:501:23 | call to operator explicit conversion | explicit conversion | C19 |
| ViableCallable.cs:504:26:504:31 | call to operator checked explicit conversion | checked explicit conversion | C19 |
| ViableCallable.cs:545:18:545:22 | call to operator + | + | C20 |
| ViableCallable.cs:548:26:548:30 | call to operator checked + | checked + | C20 |
| ViableCallable.cs:551:18:551:22 | call to operator - | - | C20 |
| ViableCallable.cs:554:26:554:30 | call to operator checked - | checked - | I3`1 |
| ViableCallable.cs:557:18:557:22 | call to operator * | * | I3`1 |
| ViableCallable.cs:560:26:560:30 | call to operator checked * | checked * | I3`1 |
| ViableCallable.cs:563:18:563:22 | call to operator / | / | C20 |
| ViableCallable.cs:563:18:563:22 | call to operator / | / | I3`1 |
| ViableCallable.cs:566:26:566:30 | call to operator checked / | checked / | C20 |
| ViableCallable.cs:566:26:566:30 | call to operator checked / | checked / | I3`1 |
| ViableCallable.cs:569:9:569:15 | call to method M11 | M11 | C20 |
| ViableCallable.cs:572:9:572:15 | call to method M12 | M12 | C20 |
| ViableCallable.cs:572:9:572:15 | call to method M12 | M12 | I3`1 |
| ViableCallable.cs:575:9:575:15 | call to method M13 | M13 | I3`1 |
| ViableCallable.cs:149:9:149:14 | dynamic call to method M5 | M5 | C8 |
| ViableCallable.cs:149:9:149:14 | dynamic call to method M5 | M5 | C9`1 |
| ViableCallable.cs:150:9:150:15 | dynamic call to method M5 | M5 | C8 |
| ViableCallable.cs:150:9:150:15 | dynamic call to method M5 | M5 | C9`1 |
| ViableCallable.cs:151:9:151:20 | dynamic call to method M5 | M5 | C8 |
| ViableCallable.cs:151:9:151:20 | dynamic call to method M5 | M5 | C9`1 |
| ViableCallable.cs:154:9:154:16 | dynamic call to method M3 | M3 | C8 |
| ViableCallable.cs:154:9:154:16 | dynamic call to method M3 | M3 | C9`1 |
| ViableCallable.cs:154:9:154:16 | dynamic call to method M3 | M3 | C10 |
| ViableCallable.cs:155:9:155:17 | dynamic call to method M3 | M3 | C8 |
| ViableCallable.cs:155:9:155:17 | dynamic call to method M3 | M3 | C9`1 |
| ViableCallable.cs:155:9:155:17 | dynamic call to method M3 | M3 | C10 |
| ViableCallable.cs:156:9:156:22 | dynamic call to method M3 | M3 | C8 |
| ViableCallable.cs:156:9:156:22 | dynamic call to method M3 | M3 | C9`1 |
| ViableCallable.cs:156:9:156:22 | dynamic call to method M3 | M3 | C10 |
| ViableCallable.cs:158:9:158:16 | dynamic call to method M5 | M5 | C8 |
| ViableCallable.cs:158:9:158:16 | dynamic call to method M5 | M5 | C9`1 |
| ViableCallable.cs:158:9:158:16 | dynamic call to method M5 | M5 | C10 |
| ViableCallable.cs:159:9:159:17 | dynamic call to method M5 | M5 | C8 |
| ViableCallable.cs:159:9:159:17 | dynamic call to method M5 | M5 | C9`1 |
| ViableCallable.cs:159:9:159:17 | dynamic call to method M5 | M5 | C10 |
| ViableCallable.cs:160:9:160:22 | dynamic call to method M5 | M5 | C8 |
| ViableCallable.cs:160:9:160:22 | dynamic call to method M5 | M5 | C9`1 |
| ViableCallable.cs:160:9:160:22 | dynamic call to method M5 | M5 | C10 |
| ViableCallable.cs:162:9:162:17 | dynamic access to member Prop1 | set_Prop1 | C8 |
| ViableCallable.cs:162:9:162:17 | dynamic access to member Prop1 | set_Prop1 | C9`1 |
| ViableCallable.cs:162:9:162:17 | dynamic access to member Prop1 | set_Prop1 | C10 |
| ViableCallable.cs:162:21:162:29 | dynamic access to member Prop1 | get_Prop1 | C8 |
| ViableCallable.cs:162:21:162:29 | dynamic access to member Prop1 | get_Prop1 | C9`1 |
| ViableCallable.cs:162:21:162:29 | dynamic access to member Prop1 | get_Prop1 | C10 |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | set_Item | C2`1 |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | set_Item | C3 |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | set_Item | C6`2 |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | set_Item | C7`1 |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | set_Item | C8 |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | set_Item | C9`1 |
| ViableCallable.cs:164:9:164:14 | dynamic access to element | set_Item | C10 |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | get_Item | C2`1 |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | get_Item | C3 |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | get_Item | C6`2 |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | get_Item | C7`1 |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | get_Item | C8 |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | get_Item | C9`1 |
| ViableCallable.cs:164:18:164:23 | dynamic access to element | get_Item | C10 |
| ViableCallable.cs:166:9:166:54 | ... += ... | add_Event | C2`1 |
| ViableCallable.cs:166:9:166:54 | ... += ... | add_Event | C3 |
| ViableCallable.cs:166:9:166:54 | ... += ... | add_Event | C5 |
| ViableCallable.cs:166:9:166:54 | ... += ... | add_Event | C6`2 |
| ViableCallable.cs:166:9:166:54 | ... += ... | add_Event | C7`1 |
| ViableCallable.cs:166:9:166:54 | ... += ... | add_Event | C8 |
| ViableCallable.cs:166:9:166:54 | ... += ... | add_Event | C9`1 |
| ViableCallable.cs:167:9:167:54 | ... -= ... | remove_Event | C2`1 |
| ViableCallable.cs:167:9:167:54 | ... -= ... | remove_Event | C3 |
| ViableCallable.cs:167:9:167:54 | ... -= ... | remove_Event | C5 |
| ViableCallable.cs:167:9:167:54 | ... -= ... | remove_Event | C6`2 |
| ViableCallable.cs:167:9:167:54 | ... -= ... | remove_Event | C7`1 |
| ViableCallable.cs:167:9:167:54 | ... -= ... | remove_Event | C8 |
| ViableCallable.cs:167:9:167:54 | ... -= ... | remove_Event | C9`1 |
| ViableCallable.cs:170:9:170:40 | dynamic call to method M4 | M4 | C8 |
| ViableCallable.cs:171:9:171:38 | dynamic call to method M4 | M4 | C8 |
| ViableCallable.cs:174:9:174:17 | dynamic access to member Prop1 | set_Prop1 | C10 |
| ViableCallable.cs:184:9:184:15 | dynamic access to element | set_Item | C2`1 |
| ViableCallable.cs:184:9:184:15 | dynamic access to element | set_Item | C6`2 |
| ViableCallable.cs:184:19:184:25 | dynamic access to element | get_Item | C2`1 |
| ViableCallable.cs:184:19:184:25 | dynamic access to element | get_Item | C6`2 |
| ViableCallable.cs:188:13:188:17 | dynamic call to operator + | + | Decimal |
| ViableCallable.cs:188:13:188:17 | dynamic call to operator + | + | Double |
| ViableCallable.cs:188:13:188:17 | dynamic call to operator + | + | Int32 |
| ViableCallable.cs:188:13:188:17 | dynamic call to operator + | + | Int64 |
| ViableCallable.cs:188:13:188:17 | dynamic call to operator + | + | Int128 |
| ViableCallable.cs:188:13:188:17 | dynamic call to operator + | + | NFloat |
| ViableCallable.cs:188:13:188:17 | dynamic call to operator + | + | Single |
| ViableCallable.cs:190:13:190:17 | dynamic call to operator - | - | Decimal |
| ViableCallable.cs:190:13:190:17 | dynamic call to operator - | - | Double |
| ViableCallable.cs:190:13:190:17 | dynamic call to operator - | - | Int32 |
| ViableCallable.cs:190:13:190:17 | dynamic call to operator - | - | Int64 |
| ViableCallable.cs:190:13:190:17 | dynamic call to operator - | - | Int128 |
| ViableCallable.cs:190:13:190:17 | dynamic call to operator - | - | NFloat |
| ViableCallable.cs:190:13:190:17 | dynamic call to operator - | - | Single |
| ViableCallable.cs:192:13:192:18 | dynamic call to operator + | + | Decimal |
| ViableCallable.cs:192:13:192:18 | dynamic call to operator + | + | Double |
| ViableCallable.cs:192:13:192:18 | dynamic call to operator + | + | Int32 |
| ViableCallable.cs:192:13:192:18 | dynamic call to operator + | + | Int64 |
| ViableCallable.cs:192:13:192:18 | dynamic call to operator + | + | Int128 |
| ViableCallable.cs:192:13:192:18 | dynamic call to operator + | + | NFloat |
| ViableCallable.cs:192:13:192:18 | dynamic call to operator + | + | Single |
| ViableCallable.cs:195:17:195:25 | object creation of type C10 | C10 | C10 |
| ViableCallable.cs:196:9:196:153 | call to method InvokeMember | + | C10 |
| ViableCallable.cs:199:9:199:143 | call to method InvokeMember | get_Prop3 | C10 |
| ViableCallable.cs:200:9:200:149 | call to method InvokeMember | set_Prop3 | C10 |
| ViableCallable.cs:203:9:203:146 | call to method InvokeMember | get_Item | C10 |
| ViableCallable.cs:204:9:204:152 | call to method InvokeMember | set_Item | C10 |
| ViableCallable.cs:208:9:208:147 | call to method InvokeMember | add_Event | C10 |
| ViableCallable.cs:209:9:209:150 | call to method InvokeMember | remove_Event | C10 |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | M`1 | C2`1 |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | M`1 | C3 |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | M`1 | C4`1 |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | M`1 | C5 |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:244:9:244:15 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:293:9:293:15 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:293:9:293:15 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:296:9:296:20 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:296:9:296:20 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:310:9:310:15 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:313:9:313:20 | call to method M<Int32> | M`1 | C7`1 |
| ViableCallable.cs:316:9:316:20 | call to method M<Int32> | M`1 | C6`2 |
| ViableCallable.cs:366:9:366:14 | dynamic call to method M | M | C11 |
| ViableCallable.cs:368:9:368:18 | dynamic object creation of type C11 | C11 | C11 |
| ViableCallable.cs:391:9:391:13 | call to method M | M | C13 |
| ViableCallable.cs:424:9:424:18 | call to method M<Int32> | M`1 | A1 |
| ViableCallable.cs:424:9:424:18 | call to method M<Int32> | M`1 | A4 |
| ViableCallable.cs:424:9:424:18 | call to method M<Int32> | M`1 | A5 |
| ViableCallable.cs:426:13:426:20 | object creation of type A3 | A3 | A3 |
| ViableCallable.cs:428:9:428:19 | call to method M<Boolean> | M`1 | A1 |
| ViableCallable.cs:430:13:430:20 | object creation of type A4 | A4 | A4 |
| ViableCallable.cs:432:9:432:21 | call to method M<String> | M`1 | A4 |
| ViableCallable.cs:436:9:436:21 | call to method M<String> | M`1 | A4 |
| ViableCallable.cs:436:9:436:21 | call to method M<String> | M`1 | A5 |
| ViableCallable.cs:491:9:491:14 | call to method M1 | M1 | C18 |
| ViableCallable.cs:494:9:494:14 | call to method M2 | M2 | I2 |
| ViableCallable.cs:508:18:508:22 | call to operator + | + | C19 |
| ViableCallable.cs:511:26:511:30 | call to operator checked + | checked + | C19 |
| ViableCallable.cs:514:18:514:23 | call to operator explicit conversion | explicit conversion | C19 |
| ViableCallable.cs:517:26:517:31 | call to operator checked explicit conversion | checked explicit conversion | C19 |
| ViableCallable.cs:558:18:558:22 | call to operator + | + | C20 |
| ViableCallable.cs:561:26:561:30 | call to operator checked + | checked + | C20 |
| ViableCallable.cs:564:18:564:22 | call to operator - | - | C20 |
| ViableCallable.cs:567:26:567:30 | call to operator checked - | checked - | I3`1 |
| ViableCallable.cs:570:18:570:22 | call to operator * | * | I3`1 |
| ViableCallable.cs:573:26:573:30 | call to operator checked * | checked * | I3`1 |
| ViableCallable.cs:576:18:576:22 | call to operator / | / | C20 |
| ViableCallable.cs:576:18:576:22 | call to operator / | / | I3`1 |
| ViableCallable.cs:579:26:579:30 | call to operator checked / | checked / | C20 |
| ViableCallable.cs:579:26:579:30 | call to operator checked / | checked / | I3`1 |
| ViableCallable.cs:582:9:582:15 | call to method M11 | M11 | C20 |
| ViableCallable.cs:585:9:585:15 | call to method M12 | M12 | C20 |
| ViableCallable.cs:585:9:585:15 | call to method M12 | M12 | I3`1 |
| ViableCallable.cs:588:9:588:15 | call to method M13 | M13 | I3`1 |

View File

@@ -33,6 +33,7 @@
| StringBuilder | AppendFormat(string, object, object, object) | arg2 |
| StringBuilder | AppendFormat(string, params Object[]) | args |
| StringBuilder | AppendFormat(string, params ReadOnlySpan<object>) | args |
| Strings | MyReadOnlyStringFormat(string, params ReadOnlySpan<object>) | args |
| Strings | MyStringFormat(string, params Object[]) | args |
| TextWriter | Write(string, object) | arg0 |
| TextWriter | Write(string, object, object) | arg0 |

View File

@@ -38,4 +38,9 @@ class Strings
{
return string.Format(s, args);
}
string MyReadOnlyStringFormat(string s, params ReadOnlySpan<object> args)
{
return string.Format(s, args);
}
}

View File

@@ -3,6 +3,7 @@
*/
import csharp
import semmle.code.csharp.commons.Collections
where forall(Parameter p | p.isParams() and p.fromSource() | p.getType() instanceof ArrayType)
where forall(Parameter p | p.isParams() | p.getType() instanceof ParamsCollectionType)
select 1

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
public class ParameterModifiers
{
@@ -15,4 +16,6 @@ public class ParameterModifiers
public void M5(params object[] p5) { }
public void M6(ref readonly object p6) { }
public void M7(params IEnumerable<object> p7) { }
}

View File

@@ -1,19 +1,21 @@
parameterModifier
| ParameterModifiers.cs:5:27:5:28 | p1 | 0 |
| ParameterModifiers.cs:6:30:6:31 | p2 | 5 |
| ParameterModifiers.cs:8:31:8:32 | p3 | 2 |
| ParameterModifiers.cs:13:31:13:32 | p4 | 1 |
| ParameterModifiers.cs:15:36:15:37 | p5 | 3 |
| ParameterModifiers.cs:17:40:17:41 | p6 | 6 |
| ParameterModifiers.cs:6:27:6:28 | p1 | 0 |
| ParameterModifiers.cs:7:30:7:31 | p2 | 5 |
| ParameterModifiers.cs:9:31:9:32 | p3 | 2 |
| ParameterModifiers.cs:14:31:14:32 | p4 | 1 |
| ParameterModifiers.cs:16:36:16:37 | p5 | 3 |
| ParameterModifiers.cs:18:40:18:41 | p6 | 6 |
| ParameterModifiers.cs:20:47:20:48 | p7 | 3 |
parameterIsValue
| ParameterModifiers.cs:5:27:5:28 | p1 |
| ParameterModifiers.cs:6:27:6:28 | p1 |
parameterIsIn
| ParameterModifiers.cs:6:30:6:31 | p2 |
| ParameterModifiers.cs:7:30:7:31 | p2 |
parameterIsOut
| ParameterModifiers.cs:8:31:8:32 | p3 |
| ParameterModifiers.cs:9:31:9:32 | p3 |
parameterIsRef
| ParameterModifiers.cs:13:31:13:32 | p4 |
| ParameterModifiers.cs:14:31:14:32 | p4 |
parameterIsParams
| ParameterModifiers.cs:15:36:15:37 | p5 |
| ParameterModifiers.cs:16:36:16:37 | p5 |
| ParameterModifiers.cs:20:47:20:48 | p7 |
parameterIsReadonlyRef
| ParameterModifiers.cs:17:40:17:41 | p6 |
| ParameterModifiers.cs:18:40:18:41 | p6 |