mirror of
https://github.com/github/codeql.git
synced 2026-04-26 01:05:15 +02:00
Data flow nodes for expressions do not take CFG splitting into account. Example:
```
if (b)
x = tainted;
x = x.ToLower();
if (!b)
Use(x);
```
Flow is incorrectly reported from `tainted` to `x` in `Use(x)`, because the step
from `tainted` to `x.ToLower()` throws away the information that `b = true`.
The solution is to remember the splitting in data flow expression nodes, that is,
to represent the exact control flow node instead of just the expression. With that
we get flow from `tainted` to `[b = true] x.ToLower()`, but not from `tainted` to
`[b = false] x.ToLower()`.
The data flow API remains unchanged, but in order for analyses to fully benefit from
CFG splitting, sanitizers in particular should be CFG-based instead of expression-based:
```
if (b)
x = tainted;
if (IsInvalid(x))
return;
Use(x);
```
If the call to `IsInvalid()` is a sanitizer, then defining an expression node to be
a sanitizer using `GuardedExpr` will be too conservative (`x` in `Use(x)` is in fact
not guarded). However, `[b = true] x` in `[b = true] Use(x)` is guarded, and to help
defining guard-based sanitizers, the class `GuardedDataFlowNode` has been introduced.
404 lines
35 KiB
Plaintext
404 lines
35 KiB
Plaintext
| Dynamic.cs:44:9:44:18 | dynamic call to method Method | Dynamic.C1.Method() |
|
|
| Dynamic.cs:44:9:44:18 | dynamic call to method Method | Dynamic.C2.Method() |
|
|
| Dynamic.cs:44:9:44:18 | dynamic call to method Method | Dynamic.C3.Method() |
|
|
| Dynamic.cs:44:9:44:18 | dynamic call to method Method | Dynamic.C4.Method() |
|
|
| Dynamic.cs:44:9:44:18 | dynamic call to method Method | Dynamic.C5.Method() |
|
|
| Dynamic.cs:44:9:44:18 | dynamic call to method Method | Dynamic.C6.Method() |
|
|
| Dynamic.cs:44:9:44:18 | dynamic call to method Method | TypeFlow.C1.Method() |
|
|
| Dynamic.cs:44:9:44:18 | dynamic call to method Method | TypeFlow.C2.Method() |
|
|
| Dynamic.cs:47:9:47:24 | dynamic call to method Method | Dynamic.C1.Method() |
|
|
| Dynamic.cs:47:9:47:24 | dynamic call to method Method | Dynamic.C2.Method() |
|
|
| Dynamic.cs:47:9:47:24 | dynamic call to method Method | Dynamic.C3.Method() |
|
|
| Dynamic.cs:47:9:47:24 | dynamic call to method Method | Dynamic.C4.Method() |
|
|
| Dynamic.cs:47:9:47:24 | dynamic call to method Method | TypeFlow.C1.Method() |
|
|
| Dynamic.cs:47:9:47:24 | dynamic call to method Method | TypeFlow.C2.Method() |
|
|
| Dynamic.cs:51:9:51:26 | dynamic call to method Method | Dynamic.C3.Method() |
|
|
| Dynamic.cs:54:9:54:30 | dynamic call to method Method | Dynamic.C3.Method() |
|
|
| Dynamic.cs:54:9:54:30 | dynamic call to method Method | Dynamic.C4.Method() |
|
|
| Dynamic.cs:58:9:58:32 | dynamic call to method Method | Dynamic.C3.Method() |
|
|
| ExactCallable.cs:10:13:10:53 | call to method Run | Test.MainClass.Tests<ImplBeta>.Run<Tests<ImplBeta>, ImplBeta>(Tests<ImplBeta>) |
|
|
| ExactCallable.cs:19:17:19:29 | call to method M | Test.MainClass.ImplAlpha.M() |
|
|
| ExactCallable.cs:23:17:23:28 | call to method M | Test.MainClass.ImplBeta.M() |
|
|
| ExactCallable.cs:27:17:27:31 | call to method M | Test.MainClass.ImplAlpha.M() |
|
|
| ExactCallable.cs:32:17:32:28 | call to method M | Test.MainClass.ImplBeta.M() |
|
|
| ExactCallable.cs:36:17:36:38 | call to method M | Test.MainClass.ImplBeta.M() |
|
|
| ExactCallable.cs:39:17:39:30 | call to method UnqualifiedM | Test.MainClass.UnqualifiedM() |
|
|
| ExactCallable.cs:43:17:43:39 | call to method M | Test.MainClass.SecondLevelImpl.M() |
|
|
| ExactCallable.cs:46:17:46:35 | call to method M | Test.MainClass.OnlyStaticClass.M() |
|
|
| ExactCallable.cs:49:17:49:30 | call to method AlphaFactory | Test.MainClass.AlphaFactory() |
|
|
| ExactCallable.cs:49:17:49:34 | call to method M | Test.MainClass.ImplAlpha.M() |
|
|
| ExactCallable.cs:49:17:49:34 | call to method M | Test.MainClass.SecondLevelImpl.M() |
|
|
| ExactCallable.cs:49:17:49:34 | call to method M | Test.MainClass.Tests<>.M() |
|
|
| ExactCallable.cs:49:17:49:34 | call to method M | Test.MainClass.Tests<ImplBeta>.M() |
|
|
| ExactCallable.cs:49:17:49:34 | call to method M | Test.MainClass.Tests<T3>.M() |
|
|
| ExactCallable.cs:52:17:52:29 | call to method BetaFactory | Test.MainClass.BetaFactory() |
|
|
| ExactCallable.cs:52:17:52:33 | call to method M | Test.MainClass.ImplBeta.M() |
|
|
| ExactCallable.cs:55:17:55:34 | call to method InterfaceFactory | Test.MainClass.InterfaceFactory() |
|
|
| ExactCallable.cs:55:17:55:38 | call to method M | Test.MainClass.ImplAlpha.M() |
|
|
| ExactCallable.cs:55:17:55:38 | call to method M | Test.MainClass.ImplBeta.M() |
|
|
| ExactCallable.cs:55:17:55:38 | call to method M | Test.MainClass.SecondLevelImpl.M() |
|
|
| ExactCallable.cs:55:17:55:38 | call to method M | Test.MainClass.Tests<>.M() |
|
|
| ExactCallable.cs:55:17:55:38 | call to method M | Test.MainClass.Tests<ImplBeta>.M() |
|
|
| ExactCallable.cs:55:17:55:38 | call to method M | Test.MainClass.Tests<T3>.M() |
|
|
| ExactCallable.cs:58:17:58:24 | call to method M | Test.MainClass.ImplAlpha.M() |
|
|
| ExactCallable.cs:61:17:61:24 | call to method M | Test.MainClass.Tests<>.M() |
|
|
| ExactCallable.cs:64:17:64:19 | call to method M | Test.MainClass.Tests<>.M() |
|
|
| ExactCallable.cs:67:17:67:20 | call to method M2 | Test.MainClass.ImplAlpha.M2() |
|
|
| ExactCallable.cs:70:17:70:20 | call to method M3 | Test.MainClass.ImplAlpha.M3() |
|
|
| ExactCallable.cs:73:17:73:124 | call to method InvokeMember | Test.MainClass.ImplAlpha.M() |
|
|
| ExactCallable.cs:79:17:79:52 | call to method Invoke | Test.MainClass.ImplAlpha.M(int, int) |
|
|
| ExactCallable.cs:82:17:82:161 | call to method Invoke | Test.MainClass.ImplAlpha.M() |
|
|
| ExactCallable.cs:85:17:85:128 | call to method InvokeMember | Test.MainClass.UnqualifiedM() |
|
|
| ExactCallable.cs:91:17:91:55 | call to method Invoke | Test.MainClass.UnqualifiedM() |
|
|
| ExactCallable.cs:94:17:94:155 | call to method Invoke | Test.MainClass.UnqualifiedM() |
|
|
| ExactCallable.cs:98:17:98:120 | call to method InvokeMember | Test.MainClass.MethodWithOut(int, out bool) |
|
|
| ExactCallable.cs:101:17:101:121 | call to method InvokeMember | Test.MainClass.MethodWithOut2(int, out object) |
|
|
| ExactCallable.cs:104:17:104:23 | call to method M | Test.MainClass.Tests<T3>.M() |
|
|
| ExactCallable.cs:107:17:107:28 | call to method M | Test.MainClass.ImplBeta.M() |
|
|
| ExactCallable.cs:184:13:184:16 | call to method M2 | Test.MainClass.M2() |
|
|
| ExactCallable.cs:191:13:191:16 | call to method M1 | Test.MainClass.M1() |
|
|
| TypeFlow.cs:7:7:7:23 | call to method Run | TypeFlow.Run(C1, C1) |
|
|
| TypeFlow.cs:27:9:27:22 | call to method Method | TypeFlow.C2.Method() |
|
|
| TypeFlow.cs:30:9:30:12 | access to property Prop | TypeFlow.get_Prop() |
|
|
| TypeFlow.cs:30:9:30:21 | call to method Method | TypeFlow.C2.Method() |
|
|
| TypeFlow.cs:33:9:33:18 | call to method Method | TypeFlow.C1.Method() |
|
|
| TypeFlow.cs:33:9:33:18 | call to method Method | TypeFlow.C2.Method() |
|
|
| TypeFlow.cs:37:11:37:26 | call to method Method | TypeFlow.C2.Method() |
|
|
| TypeFlow.cs:40:9:40:18 | call to method Method | TypeFlow.C2.Method() |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C2<Boolean>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C2<Decimal>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C2<Int32>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C3.M<T3>(string, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C4<Int32>.M<T3>(int[], T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C5.M<T3>(string, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C6<Boolean,Byte>.M<T3>(bool, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C6<Int32[],Boolean>.M<T3>(int[], T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C6<String,Boolean>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C6<String,Decimal>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C6<String,Int32>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:12:9:12:28 | call to method M | C7<Boolean>.M<T3>(bool, T3) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C2<Boolean>.set_Prop(string) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C2<Decimal>.set_Prop(string) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C2<Int32>.set_Prop(string) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C3.set_Prop(string) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C4<Int32>.set_Prop(int[]) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C5.set_Prop(string) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<Boolean,Byte>.set_Prop(bool) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<Int32[],Boolean>.set_Prop(int[]) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<String,Boolean>.set_Prop(string) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<String,Decimal>.set_Prop(string) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C6<String,Int32>.set_Prop(string) |
|
|
| ViableCallable.cs:14:9:14:15 | access to property Prop | C7<Boolean>.set_Prop(bool) |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C2<Boolean>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C2<Decimal>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C2<Int32>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C3.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C4<Int32>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C5.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C6<Boolean,Byte>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C6<Int32[],Boolean>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C6<String,Boolean>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C6<String,Decimal>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C6<String,Int32>.get_Prop() |
|
|
| ViableCallable.cs:14:19:14:25 | access to property Prop | C7<Boolean>.get_Prop() |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C2<Boolean>.set_Item(bool, string) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C2<Decimal>.set_Item(decimal, string) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C2<Int32>.set_Item(int, string) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C3.set_Item(decimal, string) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C4<Int32>.set_Item(bool, int[]) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C5.set_Item(bool, string) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<Boolean,Byte>.set_Item(byte, bool) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<String,Boolean>.set_Item(bool, string) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<String,Decimal>.set_Item(decimal, string) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C6<String,Int32>.set_Item(int, string) |
|
|
| ViableCallable.cs:16:9:16:23 | access to indexer | C7<Boolean>.set_Item(byte, bool) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C2<Boolean>.get_Item(bool) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C2<Decimal>.get_Item(decimal) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C2<Int32>.get_Item(int) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C3.get_Item(decimal) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C4<Int32>.get_Item(bool) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C5.get_Item(bool) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C6<Boolean,Byte>.get_Item(byte) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C6<Int32[],Boolean>.get_Item(bool) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C6<String,Boolean>.get_Item(bool) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C6<String,Decimal>.get_Item(decimal) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C6<String,Int32>.get_Item(int) |
|
|
| ViableCallable.cs:16:27:16:41 | access to indexer | C7<Boolean>.get_Item(byte) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C2<Boolean>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C2<Decimal>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C2<Int32>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C3.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C4<Int32>.add_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C5.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<Boolean,Byte>.add_Event(EventHandler<bool>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<String,Boolean>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<String,Decimal>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C6<String,Int32>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:18:9:18:16 | access to event Event | C7<Boolean>.add_Event(EventHandler<bool>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C2<Boolean>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C2<Decimal>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C2<Int32>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C3.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C5.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<Boolean,Byte>.remove_Event(EventHandler<bool>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<String,Boolean>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<String,Decimal>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C6<String,Int32>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:19:9:19:16 | access to event Event | C7<Boolean>.remove_Event(EventHandler<bool>) |
|
|
| ViableCallable.cs:22:9:22:30 | call to method M | C4<Int32>.M<T3>(int[], T3) |
|
|
| ViableCallable.cs:22:9:22:30 | call to method M | C6<Int32[],Boolean>.M<T3>(int[], T3) |
|
|
| ViableCallable.cs:24:9:24:15 | access to property Prop | C4<Int32>.set_Prop(int[]) |
|
|
| ViableCallable.cs:24:9:24:15 | access to property Prop | C6<Int32[],Boolean>.set_Prop(int[]) |
|
|
| ViableCallable.cs:24:19:24:25 | access to property Prop | C4<Int32>.get_Prop() |
|
|
| ViableCallable.cs:24:19:24:25 | access to property Prop | C6<Int32[],Boolean>.get_Prop() |
|
|
| ViableCallable.cs:26:9:26:23 | access to indexer | C4<Int32>.set_Item(bool, int[]) |
|
|
| ViableCallable.cs:26:9:26:23 | access to indexer | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
|
| ViableCallable.cs:26:27:26:41 | access to indexer | C4<Int32>.get_Item(bool) |
|
|
| ViableCallable.cs:26:27:26:41 | access to indexer | C6<Int32[],Boolean>.get_Item(bool) |
|
|
| ViableCallable.cs:28:9:28:16 | access to event Event | C4<Int32>.add_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:28:9:28:16 | access to event Event | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:29:9:29:16 | access to event Event | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:29:9:29:16 | access to event Event | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:32:30:32:52 | call to method Mock | ViableCallable.Mock<C1<string, int>>() |
|
|
| ViableCallable.cs:33:9:33:23 | call to method M | C2<Int32>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:33:9:33:23 | call to method M | C6<String,Int32>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:35:9:35:15 | access to property Prop | C2<Int32>.set_Prop(string) |
|
|
| ViableCallable.cs:35:9:35:15 | access to property Prop | C6<String,Int32>.set_Prop(string) |
|
|
| ViableCallable.cs:35:19:35:25 | access to property Prop | C2<Int32>.get_Prop() |
|
|
| ViableCallable.cs:35:19:35:25 | access to property Prop | C6<String,Int32>.get_Prop() |
|
|
| ViableCallable.cs:37:9:37:13 | access to indexer | C2<Int32>.set_Item(int, string) |
|
|
| ViableCallable.cs:37:9:37:13 | access to indexer | C6<String,Int32>.set_Item(int, string) |
|
|
| ViableCallable.cs:37:17:37:21 | access to indexer | C2<Int32>.get_Item(int) |
|
|
| ViableCallable.cs:37:17:37:21 | access to indexer | C6<String,Int32>.get_Item(int) |
|
|
| ViableCallable.cs:39:9:39:16 | access to event Event | C2<Int32>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:39:9:39:16 | access to event Event | C6<String,Int32>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:40:9:40:16 | access to event Event | C2<Int32>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:40:9:40:16 | access to event Event | C6<String,Int32>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:43:34:43:60 | call to method Mock | ViableCallable.Mock<C1<string, decimal>>() |
|
|
| ViableCallable.cs:44:9:44:24 | call to method M | C2<Decimal>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:44:9:44:24 | call to method M | C3.M<T3>(string, T3) |
|
|
| ViableCallable.cs:44:9:44:24 | call to method M | C6<String,Decimal>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:46:9:46:15 | access to property Prop | C2<Decimal>.set_Prop(string) |
|
|
| ViableCallable.cs:46:9:46:15 | access to property Prop | C3.set_Prop(string) |
|
|
| ViableCallable.cs:46:9:46:15 | access to property Prop | C6<String,Decimal>.set_Prop(string) |
|
|
| ViableCallable.cs:46:19:46:25 | access to property Prop | C2<Decimal>.get_Prop() |
|
|
| ViableCallable.cs:46:19:46:25 | access to property Prop | C3.get_Prop() |
|
|
| ViableCallable.cs:46:19:46:25 | access to property Prop | C6<String,Decimal>.get_Prop() |
|
|
| ViableCallable.cs:48:9:48:14 | access to indexer | C2<Decimal>.set_Item(decimal, string) |
|
|
| ViableCallable.cs:48:9:48:14 | access to indexer | C3.set_Item(decimal, string) |
|
|
| ViableCallable.cs:48:9:48:14 | access to indexer | C6<String,Decimal>.set_Item(decimal, string) |
|
|
| ViableCallable.cs:48:18:48:23 | access to indexer | C2<Decimal>.get_Item(decimal) |
|
|
| ViableCallable.cs:48:18:48:23 | access to indexer | C3.get_Item(decimal) |
|
|
| ViableCallable.cs:48:18:48:23 | access to indexer | C6<String,Decimal>.get_Item(decimal) |
|
|
| ViableCallable.cs:50:9:50:16 | access to event Event | C2<Decimal>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:50:9:50:16 | access to event Event | C3.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:50:9:50:16 | access to event Event | C6<String,Decimal>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:51:9:51:16 | access to event Event | C2<Decimal>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:51:9:51:16 | access to event Event | C3.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:51:9:51:16 | access to event Event | C6<String,Decimal>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:54:30:54:52 | call to method Mock | ViableCallable.Mock<C1<int[], bool>>() |
|
|
| ViableCallable.cs:55:9:55:44 | call to method M | C4<Int32>.M<T3>(int[], T3) |
|
|
| ViableCallable.cs:55:9:55:44 | call to method M | C6<Int32[],Boolean>.M<T3>(int[], T3) |
|
|
| ViableCallable.cs:57:9:57:15 | access to property Prop | C4<Int32>.set_Prop(int[]) |
|
|
| ViableCallable.cs:57:9:57:15 | access to property Prop | C6<Int32[],Boolean>.set_Prop(int[]) |
|
|
| ViableCallable.cs:57:19:57:25 | access to property Prop | C4<Int32>.get_Prop() |
|
|
| ViableCallable.cs:57:19:57:25 | access to property Prop | C6<Int32[],Boolean>.get_Prop() |
|
|
| ViableCallable.cs:59:9:59:17 | access to indexer | C4<Int32>.set_Item(bool, int[]) |
|
|
| ViableCallable.cs:59:9:59:17 | access to indexer | C6<Int32[],Boolean>.set_Item(bool, int[]) |
|
|
| ViableCallable.cs:59:21:59:29 | access to indexer | C4<Int32>.get_Item(bool) |
|
|
| ViableCallable.cs:59:21:59:29 | access to indexer | C6<Int32[],Boolean>.get_Item(bool) |
|
|
| ViableCallable.cs:61:9:61:16 | access to event Event | C4<Int32>.add_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:61:9:61:16 | access to event Event | C6<Int32[],Boolean>.add_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:62:9:62:16 | access to event Event | C4<Int32>.remove_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:62:9:62:16 | access to event Event | C6<Int32[],Boolean>.remove_Event(EventHandler<int[]>) |
|
|
| ViableCallable.cs:65:31:65:54 | call to method Mock | ViableCallable.Mock<C1<string, bool>>() |
|
|
| ViableCallable.cs:66:9:66:30 | call to method M | C2<Boolean>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:66:9:66:30 | call to method M | C5.M<T3>(string, T3) |
|
|
| ViableCallable.cs:66:9:66:30 | call to method M | C6<String,Boolean>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:68:9:68:15 | access to property Prop | C2<Boolean>.set_Prop(string) |
|
|
| ViableCallable.cs:68:9:68:15 | access to property Prop | C5.set_Prop(string) |
|
|
| ViableCallable.cs:68:9:68:15 | access to property Prop | C6<String,Boolean>.set_Prop(string) |
|
|
| ViableCallable.cs:68:19:68:25 | access to property Prop | C2<Boolean>.get_Prop() |
|
|
| ViableCallable.cs:68:19:68:25 | access to property Prop | C5.get_Prop() |
|
|
| ViableCallable.cs:68:19:68:25 | access to property Prop | C6<String,Boolean>.get_Prop() |
|
|
| ViableCallable.cs:70:9:70:17 | access to indexer | C2<Boolean>.set_Item(bool, string) |
|
|
| ViableCallable.cs:70:9:70:17 | access to indexer | C5.set_Item(bool, string) |
|
|
| ViableCallable.cs:70:9:70:17 | access to indexer | C6<String,Boolean>.set_Item(bool, string) |
|
|
| ViableCallable.cs:70:21:70:29 | access to indexer | C2<Boolean>.get_Item(bool) |
|
|
| ViableCallable.cs:70:21:70:29 | access to indexer | C5.get_Item(bool) |
|
|
| ViableCallable.cs:70:21:70:29 | access to indexer | C6<String,Boolean>.get_Item(bool) |
|
|
| ViableCallable.cs:72:9:72:16 | access to event Event | C2<Boolean>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:72:9:72:16 | access to event Event | C5.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:72:9:72:16 | access to event Event | C6<String,Boolean>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:73:9:73:16 | access to event Event | C2<Boolean>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:73:9:73:16 | access to event Event | C5.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:73:9:73:16 | access to event Event | C6<String,Boolean>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:77:9:77:29 | call to method M | C6<T1,Boolean>.M<T3>(T1, T3) |
|
|
| ViableCallable.cs:79:9:79:15 | access to property Prop | C6<T1,Boolean>.set_Prop(T1) |
|
|
| ViableCallable.cs:79:19:79:25 | access to property Prop | C6<T1,Boolean>.get_Prop() |
|
|
| ViableCallable.cs:81:9:81:17 | access to indexer | C6<T1,Boolean>.set_Item(bool, T1) |
|
|
| ViableCallable.cs:81:21:81:29 | access to indexer | C6<T1,Boolean>.get_Item(bool) |
|
|
| ViableCallable.cs:83:9:83:16 | access to event Event | C6<T1,Boolean>.add_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:84:9:84:16 | access to event Event | C6<T1,Boolean>.remove_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:87:21:87:30 | call to method Mock | ViableCallable.Mock<C8>() |
|
|
| ViableCallable.cs:88:9:88:44 | dynamic call to method M | C8.M(IEnumerable<C1<string[], bool>>) |
|
|
| ViableCallable.cs:88:9:88:44 | dynamic call to method M | C9<>.M(IEnumerable<C1<string[], bool>>) |
|
|
| ViableCallable.cs:88:13:88:43 | call to method Mock | ViableCallable.Mock<IEnumerable<C4<string>>>() |
|
|
| ViableCallable.cs:90:9:90:15 | dynamic access to member Prop1 | C8.set_Prop1(string) |
|
|
| ViableCallable.cs:90:9:90:15 | dynamic access to member Prop1 | C9<>.set_Prop1(string) |
|
|
| ViableCallable.cs:90:19:90:25 | dynamic access to member Prop1 | C8.get_Prop1() |
|
|
| ViableCallable.cs:90:19:90:25 | dynamic access to member Prop1 | C9<>.get_Prop1() |
|
|
| ViableCallable.cs:92:9:92:12 | dynamic access to element | C8.set_Item(int, string) |
|
|
| ViableCallable.cs:92:9:92:12 | dynamic access to element | C9<>.set_Item(int, string) |
|
|
| ViableCallable.cs:92:16:92:19 | dynamic access to element | C8.get_Item(int) |
|
|
| ViableCallable.cs:92:16:92:19 | dynamic access to element | C9<>.get_Item(int) |
|
|
| ViableCallable.cs:95:13:95:40 | call to method Mock | ViableCallable.Mock<IEnumerable<C4<int>>>() |
|
|
| ViableCallable.cs:99:9:99:15 | dynamic call to method M | C5.M(int) |
|
|
| ViableCallable.cs:102:9:102:16 | access to property Prop2 | C5.set_Prop2(string) |
|
|
| ViableCallable.cs:105:9:105:17 | access to event Event2 | C5.add_Event2(EventHandler<string>) |
|
|
| ViableCallable.cs:106:9:106:17 | access to event Event2 | C5.remove_Event2(EventHandler<string>) |
|
|
| ViableCallable.cs:120:9:120:25 | dynamic call to method M2 | C8.M2<decimal>(decimal[]) |
|
|
| ViableCallable.cs:124:9:124:24 | dynamic call to method M2 | C8.M2<string>(string[]) |
|
|
| ViableCallable.cs:132:9:132:28 | dynamic call to method M | C6<T1,Byte>.M<T3>(T1, T3) |
|
|
| ViableCallable.cs:134:9:134:14 | dynamic access to member Prop | C6<T1,Byte>.set_Prop(T1) |
|
|
| ViableCallable.cs:134:18:134:23 | dynamic access to member Prop | C6<T1,Byte>.get_Prop() |
|
|
| ViableCallable.cs:136:9:136:18 | dynamic access to element | C6<T1,Byte>.set_Item(byte, T1) |
|
|
| ViableCallable.cs:136:22:136:31 | dynamic access to element | C6<T1,Byte>.get_Item(byte) |
|
|
| ViableCallable.cs:138:9:138:52 | ... += ... | C6<T1,Byte>.add_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:139:9:139:52 | ... -= ... | C6<T1,Byte>.remove_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:143:13:143:22 | call to method Mock | ViableCallable.Mock<C8>() |
|
|
| ViableCallable.cs:144:9:144:14 | dynamic call to method M3 | C8.M3(params double[]) |
|
|
| ViableCallable.cs:144:9:144:14 | dynamic call to method M3 | C9<>.M3(params T[]) |
|
|
| ViableCallable.cs:145:9:145:15 | dynamic call to method M3 | C8.M3(params double[]) |
|
|
| ViableCallable.cs:145:9:145:15 | dynamic call to method M3 | C9<>.M3(params T[]) |
|
|
| ViableCallable.cs:146:9:146:20 | dynamic call to method M3 | C8.M3(params double[]) |
|
|
| ViableCallable.cs:146:9:146:20 | dynamic call to method M3 | C9<>.M3(params T[]) |
|
|
| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | C8.M3(params double[]) |
|
|
| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | C9<>.M3(params T[]) |
|
|
| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | C10.M3(params double[]) |
|
|
| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | Test.MainClass.ImplAlpha.M3() |
|
|
| ViableCallable.cs:149:9:149:16 | dynamic call to method M3 | Test.MainClass.SecondLevelImpl.M3() |
|
|
| ViableCallable.cs:150:9:150:17 | dynamic call to method M3 | C8.M3(params double[]) |
|
|
| ViableCallable.cs:150:9:150:17 | dynamic call to method M3 | C9<>.M3(params T[]) |
|
|
| ViableCallable.cs:150:9:150:17 | dynamic call to method M3 | C10.M3(params double[]) |
|
|
| ViableCallable.cs:151:9:151:22 | dynamic call to method M3 | C8.M3(params double[]) |
|
|
| ViableCallable.cs:151:9:151:22 | dynamic call to method M3 | C9<>.M3(params T[]) |
|
|
| ViableCallable.cs:151:9:151:22 | dynamic call to method M3 | C10.M3(params double[]) |
|
|
| ViableCallable.cs:153:9:153:17 | dynamic access to member Prop1 | C8.set_Prop1(string) |
|
|
| ViableCallable.cs:153:9:153:17 | dynamic access to member Prop1 | C9<>.set_Prop1(string) |
|
|
| ViableCallable.cs:153:9:153:17 | dynamic access to member Prop1 | C10.set_Prop1(bool) |
|
|
| ViableCallable.cs:153:21:153:29 | dynamic access to member Prop1 | C8.get_Prop1() |
|
|
| ViableCallable.cs:153:21:153:29 | dynamic access to member Prop1 | C9<>.get_Prop1() |
|
|
| ViableCallable.cs:153:21:153:29 | dynamic access to member Prop1 | C10.get_Prop1() |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C2<>.set_Item(T, string) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C2<Decimal>.set_Item(decimal, string) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C2<Int32>.set_Item(int, string) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C3.set_Item(decimal, string) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C6<,>.set_Item(T2, T1) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C6<Boolean,Byte>.set_Item(byte, bool) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C6<String,Decimal>.set_Item(decimal, string) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C6<String,Int32>.set_Item(int, string) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C6<T1,Byte>.set_Item(byte, T1) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C7<>.set_Item(byte, T1) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C7<Boolean>.set_Item(byte, bool) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C8.set_Item(int, string) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C9<>.set_Item(int, string) |
|
|
| ViableCallable.cs:155:9:155:14 | dynamic access to element | C10.set_Item(int, bool) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C2<>.get_Item(T) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C2<Decimal>.get_Item(decimal) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C2<Int32>.get_Item(int) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C3.get_Item(decimal) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C6<,>.get_Item(T2) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C6<Boolean,Byte>.get_Item(byte) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C6<String,Decimal>.get_Item(decimal) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C6<String,Int32>.get_Item(int) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C6<T1,Byte>.get_Item(byte) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C7<>.get_Item(byte) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C7<Boolean>.get_Item(byte) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C8.get_Item(int) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C9<>.get_Item(int) |
|
|
| ViableCallable.cs:155:18:155:23 | dynamic access to element | C10.get_Item(int) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C2<>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C2<Boolean>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C2<Decimal>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C2<Int32>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C3.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C5.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C6<,>.add_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C6<String,Boolean>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C6<String,Decimal>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C6<String,Int32>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C6<T1,Boolean>.add_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C6<T1,Byte>.add_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C7<>.add_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C8.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:157:9:157:54 | ... += ... | C9<>.add_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C2<>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C2<Boolean>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C2<Decimal>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C2<Int32>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C3.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C5.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C6<,>.remove_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C6<String,Boolean>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C6<String,Decimal>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C6<String,Int32>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C6<T1,Boolean>.remove_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C6<T1,Byte>.remove_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C7<>.remove_Event(EventHandler<T1>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C8.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:158:9:158:54 | ... -= ... | C9<>.remove_Event(EventHandler<string>) |
|
|
| ViableCallable.cs:161:9:161:40 | dynamic call to method M4 | C8.M4(byte, IEnumerable<string>) |
|
|
| ViableCallable.cs:161:19:161:39 | call to method Mock | ViableCallable.Mock<IList<string>>() |
|
|
| ViableCallable.cs:162:9:162:38 | dynamic call to method M4 | C8.M4(byte, IEnumerable<string>) |
|
|
| ViableCallable.cs:165:9:165:17 | dynamic access to member Prop1 | C10.set_Prop1(bool) |
|
|
| ViableCallable.cs:175:9:175:15 | dynamic access to element | C2<>.set_Item(T, string) |
|
|
| ViableCallable.cs:175:9:175:15 | dynamic access to element | C6<,>.set_Item(T2, T1) |
|
|
| ViableCallable.cs:175:19:175:25 | dynamic access to element | C2<>.get_Item(T) |
|
|
| ViableCallable.cs:175:19:175:25 | dynamic access to element | C6<,>.get_Item(T2) |
|
|
| ViableCallable.cs:187:9:187:153 | call to method InvokeMember | C10.+(C10, C10) |
|
|
| ViableCallable.cs:190:9:190:143 | call to method InvokeMember | C10.get_Prop3() |
|
|
| ViableCallable.cs:191:9:191:149 | call to method InvokeMember | C10.set_Prop3(string) |
|
|
| ViableCallable.cs:194:9:194:146 | call to method InvokeMember | C10.get_Item(int) |
|
|
| ViableCallable.cs:195:9:195:152 | call to method InvokeMember | C10.set_Item(int, bool) |
|
|
| ViableCallable.cs:199:9:199:147 | call to method InvokeMember | C10.add_Event(EventHandler<bool>) |
|
|
| ViableCallable.cs:200:9:200:150 | call to method InvokeMember | C10.remove_Event(EventHandler<bool>) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C2<Boolean>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C2<Decimal>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C2<Int32>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C3.M<T3>(string, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C4<Int32>.M<T3>(int[], T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C5.M<T3>(string, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C6<Boolean,Byte>.M<T3>(bool, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C6<Int32[],Boolean>.M<T3>(int[], T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C6<String,Boolean>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C6<String,Decimal>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C6<String,Int32>.M<T3>(string, T3) |
|
|
| ViableCallable.cs:235:9:235:15 | call to method M | C7<Boolean>.M<T3>(bool, T3) |
|
|
| ViableCallable.cs:284:9:284:15 | call to method M | C6<,>.M<T3>(T1, T3) |
|
|
| ViableCallable.cs:284:9:284:15 | call to method M | C7<Boolean>.M<T3>(bool, T3) |
|
|
| ViableCallable.cs:287:9:287:20 | call to method M | C6<,>.M<T3>(T1, T3) |
|
|
| ViableCallable.cs:287:9:287:20 | call to method M | C7<Boolean>.M<T3>(bool, T3) |
|
|
| ViableCallable.cs:301:9:301:15 | call to method M | C7<>.M<T3>(T1, T3) |
|
|
| ViableCallable.cs:304:9:304:20 | call to method M | C7<>.M<T3>(T1, T3) |
|
|
| ViableCallable.cs:307:9:307:20 | call to method M | C6<T1,Byte>.M<T3>(T1, T3) |
|
|
| ViableCallable.cs:354:9:354:14 | dynamic call to method M | C11.M(dynamic) |
|
|
| ViableCallable.cs:356:9:356:18 | dynamic object creation of type C11 | C11.C11(C11) |
|
|
| ViableCallable.cs:379:9:379:13 | call to method M | C12.C13.M() |
|
|
| ViableCallable.cs:384:9:384:14 | call to method Run | C12.Run<T2>(T2) |
|
|
| ViableCallable.cs:389:9:389:23 | call to method Run2 | C12.Run2<C13>(C13) |
|
|
| ViableCallable.cs:412:9:412:18 | call to method M | C15.A1.M<T1>() |
|
|
| ViableCallable.cs:412:9:412:18 | call to method M | C15.A4.M<T1>() |
|
|
| ViableCallable.cs:412:9:412:18 | call to method M | C15.A5.M<T1>() |
|
|
| ViableCallable.cs:416:9:416:19 | call to method M | C15.A1.M<T1>() |
|
|
| ViableCallable.cs:420:9:420:21 | call to method M | C15.A4.M<T1>() |
|
|
| ViableCallable.cs:422:13:422:37 | call to method Mock | ViableCallable.Mock<A4>() |
|
|
| ViableCallable.cs:424:9:424:21 | call to method M | C15.A4.M<T1>() |
|
|
| ViableCallable.cs:424:9:424:21 | call to method M | C15.A5.M<T1>() |
|
|
| ViableCallable.cs:439:9:439:19 | call to method M1 | C16<String,Int32>.M1(string) |
|
|
| ViableCallable.cs:442:9:442:24 | call to method M2 | C16<String,Int32>.M2<T>(Func<T>) |
|