mirror of
https://github.com/github/codeql.git
synced 2026-04-22 23:35:14 +02:00
Merge pull request #16477 from michaelnebel/csharp/madinlinetest
C#: Inline expectation for model generator test.
This commit is contained in:
18
csharp/ql/test/TestUtilities/InlineMadTest.qll
Normal file
18
csharp/ql/test/TestUtilities/InlineMadTest.qll
Normal file
@@ -0,0 +1,18 @@
|
||||
private import csharp as Cs
|
||||
private import codeql.mad.test.InlineMadTest
|
||||
|
||||
private module InlineMadTestLang implements InlineMadTestLangSig {
|
||||
class Callable = Cs::Callable;
|
||||
|
||||
string getComment(Callable c) {
|
||||
exists(Cs::CommentBlock block, Cs::Element after | after = block.getAfter() |
|
||||
(
|
||||
after = c or
|
||||
after = c.(Cs::Accessor).getDeclaration()
|
||||
) and
|
||||
result = block.getALine()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
import InlineMadTestImpl<InlineMadTestLang>
|
||||
@@ -1,24 +1,2 @@
|
||||
| NoSummaries;BaseClass;M1;(System.String);summary;df-generated |
|
||||
| NoSummaries;BaseClass;M2;(System.String);summary;df-generated |
|
||||
| NoSummaries;CollectionFlow;ReturnSimpleTypeArray;(System.Int32[]);summary;df-generated |
|
||||
| NoSummaries;CollectionFlow;ReturnSimpleTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.Int32>);summary;df-generated |
|
||||
| NoSummaries;CollectionFlow;ReturnSimpleTypeList;(System.Collections.Generic.List<System.Int32>);summary;df-generated |
|
||||
| NoSummaries;EquatableBound;Equals;(System.Object);summary;df-generated |
|
||||
| NoSummaries;EquatableUnBound<T>;Equals;(T);summary;df-generated |
|
||||
| NoSummaries;SimpleTypes;M1;(System.Boolean);summary;df-generated |
|
||||
| NoSummaries;SimpleTypes;M2;(System.Boolean);summary;df-generated |
|
||||
| NoSummaries;SimpleTypes;M3;(System.Int32);summary;df-generated |
|
||||
| NoSummaries;SimpleTypes;M4;(System.Int32);summary;df-generated |
|
||||
| Sinks;NewSinks;WrapFieldResponseWriteFile;();summary;df-generated |
|
||||
| Sinks;NewSinks;WrapPrivateFieldResponseWriteFile;();summary;df-generated |
|
||||
| Sinks;NewSinks;WrapPrivatePropResponseWriteFile;();summary;df-generated |
|
||||
| Sinks;NewSinks;WrapPropPrivateSetResponseWriteFile;();summary;df-generated |
|
||||
| Sinks;NewSinks;WrapPropResponseWriteFile;();summary;df-generated |
|
||||
| Sinks;NewSinks;WrapResponseWrite;(System.Object);summary;df-generated |
|
||||
| Sinks;NewSinks;WrapResponseWriteFile;(System.String);summary;df-generated |
|
||||
| Sources;NewSources;WrapConsoleReadKey;();summary;df-generated |
|
||||
| Sources;NewSources;WrapConsoleReadLine;();summary;df-generated |
|
||||
| Sources;NewSources;WrapConsoleReadLineAndProcees;(System.String);summary;df-generated |
|
||||
| Summaries;EqualsGetHashCodeNoFlow;Equals;(System.Object);summary;df-generated |
|
||||
| Summaries;EqualsGetHashCodeNoFlow;GetHashCode;();summary;df-generated |
|
||||
| Summaries;OperatorFlow;op_Increment;(Summaries.OperatorFlow);summary;df-generated |
|
||||
unexpectedModel
|
||||
expectedModel
|
||||
|
||||
@@ -3,4 +3,4 @@ extensions:
|
||||
pack: codeql/csharp-all
|
||||
extensible: neutralModel
|
||||
data:
|
||||
- [ "NoSummaries", "ManuallyModelled", "HasNeutralSummaryNoFlow", "(System.Object)", "summary", "manual"]
|
||||
- [ "Models", "ManuallyModelled", "HasNeutralSummaryNoFlow", "(System.Object)", "summary", "manual"]
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import csharp
|
||||
import utils.modelgenerator.internal.CaptureSummaryFlowQuery
|
||||
import TestUtilities.InlineMadTest
|
||||
|
||||
module InlineMadTestConfig implements InlineMadTestConfigSig {
|
||||
string getCapturedModel(Callable c) { result = captureNoFlow(c) }
|
||||
|
||||
string getKind() { result = "neutral" }
|
||||
}
|
||||
|
||||
import InlineMadTest<InlineMadTestConfig>
|
||||
@@ -1 +0,0 @@
|
||||
utils/modelgenerator/CaptureNeutralModels.ql
|
||||
@@ -1,4 +1,2 @@
|
||||
| Sinks;NewSinks;false;WrapFieldResponseWriteFile;();;Argument[this];html-injection;df-generated |
|
||||
| Sinks;NewSinks;false;WrapPropResponseWriteFile;();;Argument[this];html-injection;df-generated |
|
||||
| Sinks;NewSinks;false;WrapResponseWrite;(System.Object);;Argument[0];html-injection;df-generated |
|
||||
| Sinks;NewSinks;false;WrapResponseWriteFile;(System.String);;Argument[0];html-injection;df-generated |
|
||||
unexpectedModel
|
||||
expectedModel
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import csharp
|
||||
import utils.modelgenerator.internal.CaptureModels
|
||||
import TestUtilities.InlineMadTest
|
||||
|
||||
module InlineMadTestConfig implements InlineMadTestConfigSig {
|
||||
string getCapturedModel(Callable c) { result = captureSink(c) }
|
||||
|
||||
string getKind() { result = "sink" }
|
||||
}
|
||||
|
||||
import InlineMadTest<InlineMadTestConfig>
|
||||
@@ -1 +0,0 @@
|
||||
utils/modelgenerator/CaptureSinkModels.ql
|
||||
@@ -1,3 +1,2 @@
|
||||
| Sources;NewSources;false;WrapConsoleReadKey;();;ReturnValue;local;df-generated |
|
||||
| Sources;NewSources;false;WrapConsoleReadLine;();;ReturnValue;local;df-generated |
|
||||
| Sources;NewSources;false;WrapConsoleReadLineAndProcees;(System.String);;ReturnValue;local;df-generated |
|
||||
unexpectedModel
|
||||
expectedModel
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import csharp
|
||||
import utils.modelgenerator.internal.CaptureModels
|
||||
import TestUtilities.InlineMadTest
|
||||
|
||||
module InlineMadTestConfig implements InlineMadTestConfigSig {
|
||||
string getCapturedModel(Callable c) { result = captureSource(c) }
|
||||
|
||||
string getKind() { result = "source" }
|
||||
}
|
||||
|
||||
import InlineMadTest<InlineMadTestConfig>
|
||||
@@ -1 +0,0 @@
|
||||
utils/modelgenerator/CaptureSourceModels.ql
|
||||
@@ -1,40 +1,2 @@
|
||||
| NoSummaries;PublicClassFlow;false;PublicReturn;(System.Object);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;BasicFlow;false;ReturnField;();;Argument[this];ReturnValue;taint;df-generated |
|
||||
| Summaries;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;df-generated |
|
||||
| Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;df-generated |
|
||||
| Summaries;BasicFlow;false;ReturnSubstring;(System.String);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;BasicFlow;false;ReturnThis;(System.Object);;Argument[this];ReturnValue;value;df-generated |
|
||||
| Summaries;BasicFlow;false;SetField;(System.String);;Argument[0];Argument[this];taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;AddFieldToList;(System.Collections.Generic.List<System.String>);;Argument[this];Argument[0].Element;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;AddToList;(System.Collections.Generic.List<System.Object>,System.Object);;Argument[1];Argument[0].Element;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;AssignFieldToArray;(System.Object[]);;Argument[this];Argument[0].Element;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;AssignToArray;(System.Object,System.Object[]);;Argument[0];Argument[1].Element;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;ReturnArrayElement;(System.Object[]);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;ReturnFieldInAList;();;Argument[this];ReturnValue;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;ReturnListElement;(System.Collections.Generic.List<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated |
|
||||
| Summaries;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;DerivedClass2Flow;false;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;GenericFlow<T>;false;AddFieldToGenericList;(System.Collections.Generic.List<T>);;Argument[this];Argument[0].Element;taint;df-generated |
|
||||
| Summaries;GenericFlow<T>;false;AddToGenericList<S>;(System.Collections.Generic.List<S>,S);;Argument[1];Argument[0].Element;taint;df-generated |
|
||||
| Summaries;GenericFlow<T>;false;ReturnFieldInGenericList;();;Argument[this];ReturnValue;taint;df-generated |
|
||||
| Summaries;GenericFlow<T>;false;ReturnGenericElement<S>;(System.Collections.Generic.List<S>);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;GenericFlow<T>;false;ReturnGenericField;();;Argument[this];ReturnValue;taint;df-generated |
|
||||
| Summaries;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;GenericFlow<T>;false;SetGenericField;(T);;Argument[0];Argument[this];taint;df-generated |
|
||||
| Summaries;IEnumerableFlow;false;ReturnFieldInIEnumerable;();;Argument[this];ReturnValue;taint;df-generated |
|
||||
| Summaries;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated |
|
||||
| Summaries;OperatorFlow;false;OperatorFlow;(System.Object);;Argument[0];Argument[this];taint;df-generated |
|
||||
| Summaries;OperatorFlow;false;op_Addition;(Summaries.OperatorFlow,Summaries.OperatorFlow);;Argument[0];ReturnValue;taint;df-generated |
|
||||
| Summaries;Properties;false;get_Prop1;();;Argument[this];ReturnValue;taint;df-generated |
|
||||
| Summaries;Properties;false;set_Prop2;(System.String);;Argument[0];Argument[this];taint;df-generated |
|
||||
unexpectedModel
|
||||
expectedModel
|
||||
|
||||
@@ -3,10 +3,10 @@ extensions:
|
||||
pack: codeql/csharp-all
|
||||
extensible: summaryModel
|
||||
data:
|
||||
- [ "NoSummaries", "ManuallyModelled", False, "HasSummary", "(System.Object)", "", "Argument[0]", "ReturnValue", "value", "manual"]
|
||||
- [ "Models", "ManuallyModelled", False, "HasSummary", "(System.Object)", "", "Argument[0]", "ReturnValue", "value", "manual"]
|
||||
|
||||
- addsTo:
|
||||
pack: codeql/csharp-all
|
||||
extensible: neutralModel
|
||||
data:
|
||||
- [ "NoSummaries", "ManuallyModelled", "HasNeutralSummary", "(System.Object)", "summary", "manual"]
|
||||
- [ "Models", "ManuallyModelled", "HasNeutralSummary", "(System.Object)", "summary", "manual"]
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import csharp
|
||||
import utils.modelgenerator.internal.CaptureSummaryFlowQuery
|
||||
import TestUtilities.InlineMadTest
|
||||
|
||||
module InlineMadTestConfig implements InlineMadTestConfigSig {
|
||||
string getCapturedModel(Callable c) { result = captureFlow(c) }
|
||||
|
||||
string getKind() { result = "summary" }
|
||||
}
|
||||
|
||||
import InlineMadTest<InlineMadTestConfig>
|
||||
@@ -1 +0,0 @@
|
||||
utils/modelgenerator/CaptureSummaryModels.ql
|
||||
@@ -1,174 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NoSummaries;
|
||||
|
||||
// Single class with a method that produces a flow summary.
|
||||
// Just to prove that, if a method like this is correctly exposed, a flow summary will be captured.
|
||||
public class PublicClassFlow
|
||||
{
|
||||
public object PublicReturn(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PublicClassNoFlow
|
||||
{
|
||||
private object PrivateReturn(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
|
||||
internal object InternalReturn(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
|
||||
private class PrivateClassNoFlow
|
||||
{
|
||||
public object ReturnParam(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
}
|
||||
|
||||
private class PrivateClassNestedPublicClassNoFlow
|
||||
{
|
||||
public class NestedPublicClassFlow
|
||||
{
|
||||
public object ReturnParam(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EquatableBound : IEquatable<object>
|
||||
{
|
||||
public readonly bool tainted;
|
||||
public bool Equals(object other)
|
||||
{
|
||||
return tainted;
|
||||
}
|
||||
}
|
||||
|
||||
public class EquatableUnBound<T> : IEquatable<T>
|
||||
{
|
||||
public readonly bool tainted;
|
||||
public bool Equals(T? other)
|
||||
{
|
||||
return tainted;
|
||||
}
|
||||
}
|
||||
|
||||
// No methods in this class will have generated flow summaries as
|
||||
// simple types are used.
|
||||
public class SimpleTypes
|
||||
{
|
||||
public bool M1(bool b)
|
||||
{
|
||||
return b;
|
||||
}
|
||||
|
||||
public Boolean M2(Boolean b)
|
||||
{
|
||||
return b;
|
||||
}
|
||||
|
||||
public int M3(int i)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
|
||||
public Int32 M4(Int32 i)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
public class HigherOrderParameters
|
||||
{
|
||||
public string M1(string s, Func<string, string> map)
|
||||
{
|
||||
return s;
|
||||
}
|
||||
|
||||
public object M2(Func<object, object> map, object o)
|
||||
{
|
||||
return map(o);
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class BaseClass
|
||||
{
|
||||
// Negative summary.
|
||||
public virtual string M1(string s)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
// Negative summary.
|
||||
public abstract string M2(string s);
|
||||
}
|
||||
|
||||
// No methods in this class will have generated flow as
|
||||
// the simple types used in the collection are not bulk data types.
|
||||
public class CollectionFlow
|
||||
{
|
||||
public int[] ReturnSimpleTypeArray(int[] a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
public List<int> ReturnSimpleTypeList(List<int> a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
public Dictionary<int, int> ReturnSimpleTypeDictionary(Dictionary<int, int> a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
}
|
||||
|
||||
// A neutral model should not be created for a parameterless constructor.
|
||||
public class ParameterlessConstructor
|
||||
{
|
||||
public bool IsInitialized;
|
||||
|
||||
public ParameterlessConstructor()
|
||||
{
|
||||
IsInitialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
// No models should be created, if there exist either a manual summary or neutral summary.
|
||||
public class ManuallyModelled
|
||||
{
|
||||
public object HasSummary(object o)
|
||||
{
|
||||
return o;
|
||||
}
|
||||
|
||||
public object HasNeutralSummary(object o)
|
||||
{
|
||||
return o;
|
||||
}
|
||||
|
||||
public object HasNeutralSummaryNoFlow(object o)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public class Properties
|
||||
{
|
||||
public object backingField;
|
||||
public object Prop
|
||||
{
|
||||
get { return backingField; }
|
||||
set { backingField = value; }
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,8 @@ public class NewSinks
|
||||
public string PrivateSetTaintedProp { get; private set; }
|
||||
|
||||
// New sink
|
||||
// sink=Sinks;NewSinks;false;WrapResponseWrite;(System.Object);;Argument[0];html-injection;df-generated
|
||||
// neutral=Sinks;NewSinks;WrapResponseWrite;(System.Object);summary;df-generated
|
||||
public void WrapResponseWrite(object o)
|
||||
{
|
||||
var response = new HttpResponse();
|
||||
@@ -27,6 +29,8 @@ public class NewSinks
|
||||
}
|
||||
|
||||
// New sink
|
||||
// sink=Sinks;NewSinks;false;WrapResponseWriteFile;(System.String);;Argument[0];html-injection;df-generated
|
||||
// neutral=Sinks;NewSinks;WrapResponseWriteFile;(System.String);summary;df-generated
|
||||
public void WrapResponseWriteFile(string s)
|
||||
{
|
||||
var response = new HttpResponse();
|
||||
@@ -34,6 +38,8 @@ public class NewSinks
|
||||
}
|
||||
|
||||
// New sink
|
||||
// sink=Sinks;NewSinks;false;WrapFieldResponseWriteFile;();;Argument[this];html-injection;df-generated
|
||||
// neutral=Sinks;NewSinks;WrapFieldResponseWriteFile;();summary;df-generated
|
||||
public void WrapFieldResponseWriteFile()
|
||||
{
|
||||
var response = new HttpResponse();
|
||||
@@ -41,6 +47,7 @@ public class NewSinks
|
||||
}
|
||||
|
||||
// NOT new sink as field is private
|
||||
// neutral=Sinks;NewSinks;WrapPrivateFieldResponseWriteFile;();summary;df-generated
|
||||
public void WrapPrivateFieldResponseWriteFile()
|
||||
{
|
||||
var response = new HttpResponse();
|
||||
@@ -48,6 +55,8 @@ public class NewSinks
|
||||
}
|
||||
|
||||
// New sink
|
||||
// sink=Sinks;NewSinks;false;WrapPropResponseWriteFile;();;Argument[this];html-injection;df-generated
|
||||
// neutral=Sinks;NewSinks;WrapPropResponseWriteFile;();summary;df-generated
|
||||
public void WrapPropResponseWriteFile()
|
||||
{
|
||||
var response = new HttpResponse();
|
||||
@@ -55,6 +64,7 @@ public class NewSinks
|
||||
}
|
||||
|
||||
// NOT new sink as property is private
|
||||
// neutral=Sinks;NewSinks;WrapPrivatePropResponseWriteFile;();summary;df-generated
|
||||
public void WrapPrivatePropResponseWriteFile()
|
||||
{
|
||||
var response = new HttpResponse();
|
||||
@@ -62,9 +72,10 @@ public class NewSinks
|
||||
}
|
||||
|
||||
// NOT new sink as property setter is private
|
||||
// neutral=Sinks;NewSinks;WrapPropPrivateSetResponseWriteFile;();summary;df-generated
|
||||
public void WrapPropPrivateSetResponseWriteFile()
|
||||
{
|
||||
var response = new HttpResponse();
|
||||
response.WriteFile(PrivateSetTaintedProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,12 +5,16 @@ namespace Sources;
|
||||
public class NewSources
|
||||
{
|
||||
// New source
|
||||
// source=Sources;NewSources;false;WrapConsoleReadLine;();;ReturnValue;local;df-generated
|
||||
// neutral=Sources;NewSources;WrapConsoleReadLine;();summary;df-generated
|
||||
public string? WrapConsoleReadLine()
|
||||
{
|
||||
return Console.ReadLine();
|
||||
}
|
||||
|
||||
// New source
|
||||
// source=Sources;NewSources;false;WrapConsoleReadLineAndProcees;(System.String);;ReturnValue;local;df-generated
|
||||
// neutral=Sources;NewSources;WrapConsoleReadLineAndProcees;(System.String);summary;df-generated
|
||||
public string WrapConsoleReadLineAndProcees(string prompt)
|
||||
{
|
||||
var s = Console.ReadLine();
|
||||
@@ -24,8 +28,10 @@ public class NewSources
|
||||
}
|
||||
|
||||
// New source
|
||||
// source=Sources;NewSources;false;WrapConsoleReadKey;();;ReturnValue;local;df-generated
|
||||
// neutral=Sources;NewSources;WrapConsoleReadKey;();summary;df-generated
|
||||
public ConsoleKeyInfo WrapConsoleReadKey()
|
||||
{
|
||||
return Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,45 +3,53 @@ using System.Linq;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Summaries;
|
||||
namespace Models;
|
||||
|
||||
public class BasicFlow
|
||||
{
|
||||
// No flow summary and no negative summary either.
|
||||
// No model as destructors are excluded from model generation.
|
||||
~BasicFlow() { }
|
||||
|
||||
private string tainted;
|
||||
|
||||
// summary=Models;BasicFlow;false;ReturnThis;(System.Object);;Argument[this];ReturnValue;value;df-generated
|
||||
public BasicFlow ReturnThis(object input)
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
// summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated
|
||||
public string ReturnParam0(string input0, object input1)
|
||||
{
|
||||
return input0;
|
||||
}
|
||||
|
||||
// summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;df-generated
|
||||
public object ReturnParam1(string input0, object input1)
|
||||
{
|
||||
return input1;
|
||||
}
|
||||
|
||||
// summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated
|
||||
// summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;df-generated
|
||||
public object ReturnParamMultiple(object input0, object input1)
|
||||
{
|
||||
return (System.DateTime.Now.DayOfWeek == System.DayOfWeek.Monday) ? input0 : input1;
|
||||
}
|
||||
|
||||
// summary=Models;BasicFlow;false;ReturnSubstring;(System.String);;Argument[0];ReturnValue;taint;df-generated
|
||||
public string ReturnSubstring(string s)
|
||||
{
|
||||
return s.Substring(0, 1);
|
||||
}
|
||||
|
||||
// summary=Models;BasicFlow;false;SetField;(System.String);;Argument[0];Argument[this];taint;df-generated
|
||||
public void SetField(string s)
|
||||
{
|
||||
tainted = s;
|
||||
}
|
||||
|
||||
// summary=Models;BasicFlow;false;ReturnField;();;Argument[this];ReturnValue;taint;df-generated
|
||||
public string ReturnField()
|
||||
{
|
||||
return tainted;
|
||||
@@ -52,81 +60,118 @@ public class CollectionFlow
|
||||
{
|
||||
private string tainted;
|
||||
|
||||
// summary=Models;CollectionFlow;false;ReturnArrayElement;(System.Object[]);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public object ReturnArrayElement(object[] input)
|
||||
{
|
||||
return input[0];
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;AssignToArray;(System.Object,System.Object[]);;Argument[0];Argument[1].Element;taint;df-generated
|
||||
public void AssignToArray(object data, object[] target)
|
||||
{
|
||||
target[0] = data;
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;AssignFieldToArray;(System.Object[]);;Argument[this];Argument[0].Element;taint;df-generated
|
||||
public void AssignFieldToArray(object[] target)
|
||||
{
|
||||
target[0] = tainted;
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;ReturnListElement;(System.Collections.Generic.List<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public object ReturnListElement(List<object> input)
|
||||
{
|
||||
return input[0];
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;AddToList;(System.Collections.Generic.List<System.Object>,System.Object);;Argument[1];Argument[0].Element;taint;df-generated
|
||||
public void AddToList(List<object> input, object data)
|
||||
{
|
||||
input.Add(data);
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;AddFieldToList;(System.Collections.Generic.List<System.String>);;Argument[this];Argument[0].Element;taint;df-generated
|
||||
public void AddFieldToList(List<string> input)
|
||||
{
|
||||
input.Add(tainted);
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;ReturnFieldInAList;();;Argument[this];ReturnValue;taint;df-generated
|
||||
public List<string> ReturnFieldInAList()
|
||||
{
|
||||
return new List<string> { tainted };
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public string[] ReturnComplexTypeArray(string[] a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public List<byte> ReturnBulkTypeList(List<byte> a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public Dictionary<int, string> ReturnComplexTypeDictionary(Dictionary<int, string> a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public Array ReturnUntypedArray(Array a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
// summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public IList ReturnUntypedList(IList a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
// No flow as this is collection is of simple types.
|
||||
// neutral=Models;CollectionFlow;ReturnSimpleTypeArray;(System.Int32[]);summary;df-generated
|
||||
public int[] ReturnSimpleTypeArray(int[] a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
// No flow as this is collection is of simple types.
|
||||
// neutral=Models;CollectionFlow;ReturnSimpleTypeList;(System.Collections.Generic.List<System.Int32>);summary;df-generated
|
||||
public List<int> ReturnSimpleTypeList(List<int> a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
// No flow as this is collection is of simple types.
|
||||
// neutral=Models;CollectionFlow;ReturnSimpleTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.Int32>);summary;df-generated
|
||||
public Dictionary<int, int> ReturnSimpleTypeDictionary(Dictionary<int, int> a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class IEnumerableFlow
|
||||
{
|
||||
private string tainted;
|
||||
|
||||
// summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public IEnumerable<string> ReturnIEnumerable(IEnumerable<string> input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
|
||||
// summary=Models;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public object ReturnIEnumerableElement(IEnumerable<object> input)
|
||||
{
|
||||
return input.First();
|
||||
}
|
||||
|
||||
// summary=Models;IEnumerableFlow;false;ReturnFieldInIEnumerable;();;Argument[this];ReturnValue;taint;df-generated
|
||||
public IEnumerable<string> ReturnFieldInIEnumerable()
|
||||
{
|
||||
return new List<string> { tainted };
|
||||
@@ -137,36 +182,43 @@ public class GenericFlow<T>
|
||||
{
|
||||
private T tainted;
|
||||
|
||||
// summary=Models;GenericFlow<T>;false;SetGenericField;(T);;Argument[0];Argument[this];taint;df-generated
|
||||
public void SetGenericField(T t)
|
||||
{
|
||||
tainted = t;
|
||||
}
|
||||
|
||||
// summary=Models;GenericFlow<T>;false;ReturnGenericField;();;Argument[this];ReturnValue;taint;df-generated
|
||||
public T ReturnGenericField()
|
||||
{
|
||||
return tainted;
|
||||
}
|
||||
|
||||
// summary=Models;GenericFlow<T>;false;AddFieldToGenericList;(System.Collections.Generic.List<T>);;Argument[this];Argument[0].Element;taint;df-generated
|
||||
public void AddFieldToGenericList(List<T> input)
|
||||
{
|
||||
input.Add(tainted);
|
||||
}
|
||||
|
||||
// summary=Models;GenericFlow<T>;false;ReturnFieldInGenericList;();;Argument[this];ReturnValue;taint;df-generated
|
||||
public List<T> ReturnFieldInGenericList()
|
||||
{
|
||||
return new List<T> { tainted };
|
||||
}
|
||||
|
||||
// summary=Models;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;taint;df-generated
|
||||
public S ReturnGenericParam<S>(S input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
|
||||
// summary=Models;GenericFlow<T>;false;ReturnGenericElement<S>;(System.Collections.Generic.List<S>);;Argument[0].Element;ReturnValue;taint;df-generated
|
||||
public S ReturnGenericElement<S>(List<S> input)
|
||||
{
|
||||
return input[0];
|
||||
}
|
||||
|
||||
// summary=Models;GenericFlow<T>;false;AddToGenericList<S>;(System.Collections.Generic.List<S>,S);;Argument[1];Argument[0].Element;taint;df-generated
|
||||
public void AddToGenericList<S>(List<S> input, S data)
|
||||
{
|
||||
input.Add(data);
|
||||
@@ -175,6 +227,7 @@ public class GenericFlow<T>
|
||||
|
||||
public abstract class BaseClassFlow
|
||||
{
|
||||
// summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated
|
||||
public virtual object ReturnParam(object input)
|
||||
{
|
||||
return input;
|
||||
@@ -183,6 +236,7 @@ public abstract class BaseClassFlow
|
||||
|
||||
public class DerivedClass1Flow : BaseClassFlow
|
||||
{
|
||||
// summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated
|
||||
public string ReturnParam1(string input0, string input1)
|
||||
{
|
||||
return input1;
|
||||
@@ -191,11 +245,13 @@ public class DerivedClass1Flow : BaseClassFlow
|
||||
|
||||
public class DerivedClass2Flow : BaseClassFlow
|
||||
{
|
||||
// summary=Models;DerivedClass2Flow;false;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated
|
||||
public override object ReturnParam(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
|
||||
// summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;df-generated
|
||||
public string ReturnParam0(string input0, int input1)
|
||||
{
|
||||
return input0;
|
||||
@@ -206,30 +262,35 @@ public class OperatorFlow
|
||||
{
|
||||
public readonly object Field;
|
||||
|
||||
// summary=Models;OperatorFlow;false;OperatorFlow;(System.Object);;Argument[0];Argument[this];taint;df-generated
|
||||
public OperatorFlow(object o)
|
||||
{
|
||||
Field = o;
|
||||
}
|
||||
|
||||
// Flow Summary.
|
||||
// summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;taint;df-generated
|
||||
public static OperatorFlow operator +(OperatorFlow a, OperatorFlow b)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
// No flow summary.
|
||||
// neutral=Models;OperatorFlow;op_Increment;(Models.OperatorFlow);summary;df-generated
|
||||
public static OperatorFlow operator ++(OperatorFlow a)
|
||||
{
|
||||
return new OperatorFlow(new object());
|
||||
}
|
||||
|
||||
// No flow summary as this is an implicit conversion operator.
|
||||
// No model as user defined conversion operators are excluded
|
||||
// from model generation.
|
||||
public static implicit operator OperatorFlow(string s)
|
||||
{
|
||||
return new OperatorFlow(s);
|
||||
}
|
||||
|
||||
// No flow summary as this is an explicit conversion operator.
|
||||
// No model as user defined conversion operators are excluded
|
||||
// from model generation.
|
||||
public static explicit operator OperatorFlow(string[] b)
|
||||
{
|
||||
return new OperatorFlow(b);
|
||||
@@ -242,19 +303,19 @@ public class EqualsGetHashCodeNoFlow
|
||||
public readonly bool boolTainted;
|
||||
public readonly int intTainted;
|
||||
|
||||
// No flow summary as this is an override of the Equals method.
|
||||
// neutral=Models;EqualsGetHashCodeNoFlow;Equals;(System.Object);summary;df-generated
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return boolTainted;
|
||||
}
|
||||
|
||||
// Flow summary as this is not an override of the object Equals method.
|
||||
// summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;df-generated
|
||||
public string Equals(string s)
|
||||
{
|
||||
return s;
|
||||
}
|
||||
|
||||
// No flow summary as this is an override of the GetHashCode method.
|
||||
// neutral=Models;EqualsGetHashCodeNoFlow;GetHashCode;();summary;df-generated
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return intTainted;
|
||||
@@ -265,13 +326,167 @@ public class Properties
|
||||
{
|
||||
private string tainted;
|
||||
|
||||
// summary=Models;Properties;false;get_Prop1;();;Argument[this];ReturnValue;taint;df-generated
|
||||
public string Prop1
|
||||
{
|
||||
get { return tainted; }
|
||||
}
|
||||
|
||||
// summary=Models;Properties;false;set_Prop2;(System.String);;Argument[0];Argument[this];taint;df-generated
|
||||
public string Prop2
|
||||
{
|
||||
set { tainted = value; }
|
||||
}
|
||||
|
||||
public object backingField;
|
||||
// No model as properties with public getters and setters are excluded from
|
||||
// model generation as these are handled directly by the dataflow library.
|
||||
public object Prop
|
||||
{
|
||||
get { return backingField; }
|
||||
set { backingField = value; }
|
||||
}
|
||||
}
|
||||
|
||||
// No models as the methods are not public.
|
||||
public sealed class PublicClassNoFlow
|
||||
{
|
||||
private object PrivateReturn(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
|
||||
internal object InternalReturn(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
|
||||
private class PrivateClassNoFlow
|
||||
{
|
||||
public object ReturnParam(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
}
|
||||
|
||||
private class PrivateClassNestedPublicClassNoFlow
|
||||
{
|
||||
public class NestedPublicClassFlow
|
||||
{
|
||||
public object ReturnParam(object input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EquatableBound : IEquatable<object>
|
||||
{
|
||||
public readonly bool tainted;
|
||||
|
||||
// neutral=Models;EquatableBound;Equals;(System.Object);summary;df-generated
|
||||
public bool Equals(object other)
|
||||
{
|
||||
return tainted;
|
||||
}
|
||||
}
|
||||
|
||||
public class EquatableUnBound<T> : IEquatable<T>
|
||||
{
|
||||
public readonly bool tainted;
|
||||
|
||||
// neutral=Models;EquatableUnBound<T>;Equals;(T);summary;df-generated
|
||||
public bool Equals(T? other)
|
||||
{
|
||||
return tainted;
|
||||
}
|
||||
}
|
||||
|
||||
// No methods in this class will have generated flow summaries as
|
||||
// simple types are used.
|
||||
public class SimpleTypes
|
||||
{
|
||||
// neutral=Models;SimpleTypes;M1;(System.Boolean);summary;df-generated
|
||||
public bool M1(bool b)
|
||||
{
|
||||
return b;
|
||||
}
|
||||
|
||||
// neutral=Models;SimpleTypes;M2;(System.Boolean);summary;df-generated
|
||||
public Boolean M2(Boolean b)
|
||||
{
|
||||
return b;
|
||||
}
|
||||
|
||||
// neutral=Models;SimpleTypes;M3;(System.Int32);summary;df-generated
|
||||
public int M3(int i)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
|
||||
// neutral=Models;SimpleTypes;M4;(System.Int32);summary;df-generated
|
||||
public Int32 M4(Int32 i)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
// No models as higher order methods are excluded
|
||||
// from model generation.
|
||||
public class HigherOrderParameters
|
||||
{
|
||||
public string M1(string s, Func<string, string> map)
|
||||
{
|
||||
return s;
|
||||
}
|
||||
|
||||
public object M2(Func<object, object> map, object o)
|
||||
{
|
||||
return map(o);
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class BaseClass
|
||||
{
|
||||
// neutral=Models;BaseClass;M1;(System.String);summary;df-generated
|
||||
public virtual string M1(string s)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
// neutral=Models;BaseClass;M2;(System.String);summary;df-generated
|
||||
public abstract string M2(string s);
|
||||
}
|
||||
|
||||
// No models as manually modelled methods are excluded from
|
||||
// model generation.
|
||||
public class ManuallyModelled
|
||||
{
|
||||
public object HasSummary(object o)
|
||||
{
|
||||
return o;
|
||||
}
|
||||
|
||||
public object HasNeutralSummary(object o)
|
||||
{
|
||||
return o;
|
||||
}
|
||||
|
||||
public object HasNeutralSummaryNoFlow(object o)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public class ParameterlessConstructor
|
||||
{
|
||||
public bool IsInitialized;
|
||||
|
||||
// No model as parameterless constructors
|
||||
// are excluded from model generation.
|
||||
public ParameterlessConstructor()
|
||||
{
|
||||
IsInitialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,162 +1,2 @@
|
||||
| Summaries;IGrouping<TKey,TElement>;true;get_Key;();;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated |
|
||||
| Summaries;IOrderedEnumerable<TElement>;true;CreateOrderedEnumerable<TKey>;(System.Func<TElement,TKey>,System.Collections.Generic.IComparer<TKey>,System.Boolean);;Argument[this].Element;Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;IOrderedEnumerable<TElement>;true;CreateOrderedEnumerable<TKey>;(System.Func<TElement,TKey>,System.Collections.Generic.IComparer<TKey>,System.Boolean);;Argument[this].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[0].Element;Argument[2].Parameter[1];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[1];Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[1];Argument[3].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[2].ReturnValue;Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[2].ReturnValue;Argument[3].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[3].ReturnValue;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[0].Element;Argument[2].Parameter[1];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[1];Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[1];ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[2].ReturnValue;Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[2].ReturnValue;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[0].Element;Argument[1].Parameter[1];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[1].ReturnValue;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[1].ReturnValue;Argument[1].Parameter[1];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[1].ReturnValue;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;All<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Any<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Append<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Append<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;AsEnumerable<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Average<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Decimal>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Concat<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Concat<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[1].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Count<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;DefaultIfEmpty<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;DefaultIfEmpty<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;DefaultIfEmpty<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Distinct<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;DistinctBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;DistinctBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;ElementAt<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;ElementAtOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;First<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;First<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;First<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Intersect<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Intersect<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[1].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;IntersectBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TKey>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;IntersectBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TKey>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[0].Element;Argument[4].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[1].Element;Argument[3].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[1].Element;Argument[4].Parameter[1];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[4].ReturnValue;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Last<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Last<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Last<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;LongCount<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Max<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Max<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[1].ReturnValue;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Max<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Max<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Decimal>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;MaxBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;MaxBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Min<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Min<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[1].ReturnValue;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Min<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;MinBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;MinBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;OrderBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;OrderBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;OrderByDescending<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;OrderByDescending<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Prepend<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Prepend<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Repeat<TResult>;(TResult,System.Int32);;Argument[0];ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Reverse<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Select<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Select<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[1].ReturnValue;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TCollection,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TCollection>>,System.Func<TSource,TCollection,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TCollection,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TCollection>>,System.Func<TSource,TCollection,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TCollection,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TCollection>>,System.Func<TSource,TCollection,TResult>);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TCollection,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TCollection>>,System.Func<TSource,TCollection,TResult>);;Argument[2].ReturnValue;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TResult>>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TResult>>);;Argument[1].ReturnValue.Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Single<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Single<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Single<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Skip<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SkipLast<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SkipWhile<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;SkipWhile<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Take<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;TakeLast<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;TakeWhile<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;TakeWhile<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;ThenBy<TSource,TKey>;(Summaries.IOrderedEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;ThenBy<TSource,TKey>;(Summaries.IOrderedEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;ThenByDescending<TSource,TKey>;(Summaries.IOrderedEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;ThenByDescending<TSource,TKey>;(Summaries.IOrderedEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;ToHashSet<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;ToList<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Union<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Union<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[1].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;UnionBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;UnionBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;UnionBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[1].Element;Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;UnionBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[1].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Where<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Where<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Zip<TFirst,TSecond,TResult>;(System.Collections.Generic.IEnumerable<TFirst>,System.Collections.Generic.IEnumerable<TSecond>,System.Func<TFirst,TSecond,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Zip<TFirst,TSecond,TResult>;(System.Collections.Generic.IEnumerable<TFirst>,System.Collections.Generic.IEnumerable<TSecond>,System.Func<TFirst,TSecond,TResult>);;Argument[1].Element;Argument[2].Parameter[1];value;tb-generated |
|
||||
| Summaries;SystemLinqEnumerable;false;Zip<TFirst,TSecond,TResult>;(System.Collections.Generic.IEnumerable<TFirst>,System.Collections.Generic.IEnumerable<TSecond>,System.Func<TFirst,TSecond,TResult>);;Argument[2].ReturnValue;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;TypeBasedCollection<T>;false;Add;(T);;Argument[0];Argument[this].Element;value;tb-generated |
|
||||
| Summaries;TypeBasedCollection<T>;false;AddMany;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;tb-generated |
|
||||
| Summaries;TypeBasedCollection<T>;false;First;();;Argument[this].Element;ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedCollection<T>;false;GetMany;();;Argument[this].Element;ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;AddMany;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Apply;(System.Func<T,System.Int32>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Apply<S>;(System.Func<T,S>);;Argument[0].ReturnValue;ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Apply<S>;(System.Func<T,S>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Apply<T1,T2>;(T1,System.Func<T1,T2>);;Argument[0];Argument[1].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Apply<T1,T2>;(T1,System.Func<T1,T2>);;Argument[1].ReturnValue;ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[0].ReturnValue.Element;Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[0].ReturnValue.Element;Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[0].ReturnValue.Element;ReturnValue.SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[this].SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;FlatMap<S>;(System.Func<T,System.Collections.Generic.IEnumerable<S>>);;Argument[0].ReturnValue.Element;ReturnValue.SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;FlatMap<S>;(System.Func<T,System.Collections.Generic.IEnumerable<S>>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;GetMany;();;Argument[this].SyntheticField[ArgType0];ReturnValue.Element;value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Map<S>;(System.Func<T,S>);;Argument[0].ReturnValue;ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Map<S>;(System.Func<T,S>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;MapComplex<S>;(System.Func<T,S>);;Argument[0].ReturnValue;ReturnValue.SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;MapComplex<S>;(System.Func<T,S>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[0].ReturnValue.SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[0].ReturnValue.SyntheticField[ArgType0];Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[0].ReturnValue.SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[this].SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedComplex<T>;false;Set;(System.Int32,System.Func<System.Int32,T>);;Argument[1].ReturnValue;Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedNoCollection<T>;false;Get;();;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedNoCollection<T>;false;Set;(T);;Argument[0];Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;Get;();;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;Get;(System.Object);;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;Id;(T);;Argument[0];Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;Id;(T);;Argument[0];ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;Id;(T);;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;Id<S>;(S);;Argument[0];ReturnValue;value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;Set;(System.Int32,T);;Argument[1];Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;Set;(T);;Argument[0];Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
| Summaries;TypeBasedSimple<T>;false;TypeBasedSimple;(T);;Argument[0];Argument[this].SyntheticField[ArgType0];value;tb-generated |
|
||||
unexpectedModel
|
||||
expectedModel
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import csharp
|
||||
import TestUtilities.InlineMadTest
|
||||
import utils.modelgenerator.internal.CaptureTypeBasedSummaryModels
|
||||
|
||||
module InlineMadTestConfig implements InlineMadTestConfigSig {
|
||||
string getCapturedModel(Callable c) { result = captureFlow(c) }
|
||||
|
||||
string getKind() { result = "summary" }
|
||||
}
|
||||
|
||||
import InlineMadTest<InlineMadTestConfig>
|
||||
@@ -1 +0,0 @@
|
||||
utils/modelgenerator/CaptureTypeBasedSummaryModels.ql
|
||||
@@ -5,75 +5,119 @@ using System.Collections.Generic;
|
||||
|
||||
namespace Summaries;
|
||||
|
||||
public class TypeBasedSimple<T> {
|
||||
|
||||
public T Prop {
|
||||
public class TypeBasedSimple<T>
|
||||
{
|
||||
|
||||
public T Prop
|
||||
{
|
||||
get { throw null; }
|
||||
set { throw null; }
|
||||
}
|
||||
|
||||
public TypeBasedSimple(T t) { throw null; }
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;TypeBasedSimple;(T);;Argument[0];Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
public TypeBasedSimple(T t) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;Get;();;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated
|
||||
public T Get() { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;Get;(System.Object);;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated
|
||||
public T Get(object x) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;Id;(T);;Argument[0];Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;Id;(T);;Argument[0];ReturnValue;value;tb-generated
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;Id;(T);;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated
|
||||
public T Id(T x) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;Id<S>;(S);;Argument[0];ReturnValue;value;tb-generated
|
||||
public S Id<S>(S x) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;Set;(T);;Argument[0];Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
public void Set(T x) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedSimple<T>;false;Set;(System.Int32,T);;Argument[1];Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
public void Set(int x, T y) { throw null; }
|
||||
|
||||
public void Set<S>(S x) { throw null; } // No summary as S is unrelated to T
|
||||
// No summary as S is unrelated to T
|
||||
public void Set<S>(S x) { throw null; }
|
||||
}
|
||||
|
||||
public class TypeBasedComplex<T> {
|
||||
|
||||
public class TypeBasedComplex<T>
|
||||
{
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;AddMany;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
public void AddMany(IEnumerable<T> xs) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Apply;(System.Func<T,System.Int32>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated
|
||||
public int Apply(Func<T, int> f) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Apply<S>;(System.Func<T,S>);;Argument[0].ReturnValue;ReturnValue;value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Apply<S>;(System.Func<T,S>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated
|
||||
public S Apply<S>(Func<T, S> f) { throw null; }
|
||||
|
||||
public T2 Apply<T1,T2>(T1 x, Func<T1, T2> f) { throw null; }
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Apply<T1,T2>;(T1,System.Func<T1,T2>);;Argument[0];Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Apply<T1,T2>;(T1,System.Func<T1,T2>);;Argument[1].ReturnValue;ReturnValue;value;tb-generated
|
||||
public T2 Apply<T1, T2>(T1 x, Func<T1, T2> f) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[0].ReturnValue.Element;Argument[0].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[0].ReturnValue.Element;Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[0].ReturnValue.Element;ReturnValue.SyntheticField[ArgType0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;FlatMap;(System.Func<T,System.Collections.Generic.IEnumerable<T>>);;Argument[this].SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;tb-generated
|
||||
public TypeBasedComplex<T> FlatMap(Func<T, IEnumerable<T>> f) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;FlatMap<S>;(System.Func<T,System.Collections.Generic.IEnumerable<S>>);;Argument[0].ReturnValue.Element;ReturnValue.SyntheticField[ArgType0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;FlatMap<S>;(System.Func<T,System.Collections.Generic.IEnumerable<S>>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated
|
||||
public TypeBasedComplex<S> FlatMap<S>(Func<T, IEnumerable<S>> f) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;GetMany;();;Argument[this].SyntheticField[ArgType0];ReturnValue.Element;value;tb-generated
|
||||
public IList<T> GetMany() { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Map<S>;(System.Func<T,S>);;Argument[0].ReturnValue;ReturnValue;value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Map<S>;(System.Func<T,S>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated
|
||||
public S Map<S>(Func<T, S> f) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;MapComplex<S>;(System.Func<T,S>);;Argument[0].ReturnValue;ReturnValue.SyntheticField[ArgType0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;MapComplex<S>;(System.Func<T,S>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated
|
||||
public TypeBasedComplex<S> MapComplex<S>(Func<T, S> f) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[0].ReturnValue.SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[0].ReturnValue.SyntheticField[ArgType0];Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[0].ReturnValue.SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Return;(System.Func<T,Summaries.TypeBasedComplex<T>>);;Argument[this].SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;tb-generated
|
||||
public TypeBasedComplex<T> Return(Func<T, TypeBasedComplex<T>> f) { throw null; }
|
||||
|
||||
public void Set(int x, Func<int, T> f) { throw null;}
|
||||
|
||||
// summary=Summaries;TypeBasedComplex<T>;false;Set;(System.Int32,System.Func<System.Int32,T>);;Argument[1].ReturnValue;Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
public void Set(int x, Func<int, T> f) { throw null; }
|
||||
}
|
||||
|
||||
// It is assumed that this is a collection with elements of type T.
|
||||
public class TypeBasedCollection<T> : IEnumerable<T> {
|
||||
public class TypeBasedCollection<T> : IEnumerable<T>
|
||||
{
|
||||
IEnumerator<T> IEnumerable<T>.GetEnumerator() { throw null; }
|
||||
IEnumerator IEnumerable.GetEnumerator() { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedCollection<T>;false;Add;(T);;Argument[0];Argument[this].Element;value;tb-generated
|
||||
public void Add(T x) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedCollection<T>;false;AddMany;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;tb-generated
|
||||
public void AddMany(IEnumerable<T> x) { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedCollection<T>;false;First;();;Argument[this].Element;ReturnValue;value;tb-generated
|
||||
public T First() { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedCollection<T>;false;GetMany;();;Argument[this].Element;ReturnValue.Element;value;tb-generated
|
||||
public ICollection<T> GetMany() { throw null; }
|
||||
}
|
||||
|
||||
// It is assumed that this is NOT a collection with elements of type T.
|
||||
public class TypeBasedNoCollection<T> : IEnumerable {
|
||||
public class TypeBasedNoCollection<T> : IEnumerable
|
||||
{
|
||||
IEnumerator IEnumerable.GetEnumerator() { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedNoCollection<T>;false;Get;();;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated
|
||||
public T Get() { throw null; }
|
||||
|
||||
// summary=Summaries;TypeBasedNoCollection<T>;false;Set;(T);;Argument[0];Argument[this].SyntheticField[ArgType0];value;tb-generated
|
||||
public void Set(T x) { throw null; }
|
||||
}
|
||||
|
||||
@@ -85,108 +129,307 @@ public class TypeBasedNoCollection<T> : IEnumerable {
|
||||
* In some cases we will not be able correctly generate a summary based purely on the
|
||||
* type information.
|
||||
*/
|
||||
public static class SystemLinqEnumerable {
|
||||
|
||||
public static class SystemLinqEnumerable
|
||||
{
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[0].Element;Argument[1].Parameter[1];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[1].ReturnValue;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[1].ReturnValue;Argument[1].Parameter[1];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TSource,TSource>);;Argument[1].ReturnValue;ReturnValue;value;tb-generated
|
||||
public static TSource Aggregate<TSource>(this IEnumerable<TSource> source, Func<TSource, TSource, TSource> func) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[0].Element;Argument[2].Parameter[1];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[1];Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[1];ReturnValue;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[2].ReturnValue;Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>);;Argument[2].ReturnValue;ReturnValue;value;tb-generated
|
||||
public static TAccumulate Aggregate<TSource, TAccumulate>(this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[0].Element;Argument[2].Parameter[1];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[1];Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[1];Argument[3].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[2].ReturnValue;Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[2].ReturnValue;Argument[3].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Aggregate<TSource,TAccumulate,TResult>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[3].ReturnValue;ReturnValue;value;tb-generated
|
||||
public static TResult Aggregate<TSource, TAccumulate, TResult>(this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func, Func<TAccumulate, TResult> resultSelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;All<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
public static bool All<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
public static bool Any<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Any<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
public static bool Any<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Append<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Append<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Append<TSource>(this IEnumerable<TSource> source, TSource element) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;AsEnumerable<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Average<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Decimal>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
public static decimal Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector) { throw null; }
|
||||
|
||||
// Summary will not be derivables based on type information.
|
||||
// public static IEnumerable<TResult> Cast<TResult>(this IEnumerable source) { throw null; }
|
||||
public static IEnumerable<TSource[]> Chunk<TSource>(this IEnumerable<TSource> source, int size) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Concat<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Concat<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[1].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Concat<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second) { throw null; }
|
||||
|
||||
public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value) { throw null; }
|
||||
|
||||
public static int Count<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Count<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
public static int Count<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;DefaultIfEmpty<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource?> DefaultIfEmpty<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;DefaultIfEmpty<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;DefaultIfEmpty<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> DefaultIfEmpty<TSource>(this IEnumerable<TSource> source, TSource defaultValue) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;DistinctBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;DistinctBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Distinct<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Distinct<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;ElementAtOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? ElementAtOrDefault<TSource>(this IEnumerable<TSource> source, int index) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;ElementAt<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource ElementAt<TSource>(this IEnumerable<TSource> source, int index) { throw null; }
|
||||
|
||||
public static IEnumerable<TResult> Empty<TResult>() { throw null; }
|
||||
|
||||
// These summaries will not be derivable based on type information.
|
||||
// public static IEnumerable<TSource> ExceptBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TKey> second, Func<TSource, TKey> keySelector) { throw null; }
|
||||
// public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? FirstOrDefault<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue;value;tb-generated
|
||||
public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source, TSource defaultValue) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;FirstOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? FirstOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// Summary will not be correctly derivable based on type information.
|
||||
// public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate, TSource defaultValue) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;First<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource First<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;First<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;First<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource First<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// Missing summary for Argument[0].Element -> Argument[2].Parameter[1].Element and similar problem for GroupJoin (issue with generator)
|
||||
// public static IEnumerable<TResult> GroupBy<TSource, TKey, TResult>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TKey, IEnumerable<TSource>, TResult> resultSelector) { throw null; }
|
||||
// public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, IEnumerable<TInner>, TResult> resultSelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;IntersectBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TKey>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;IntersectBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TKey>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> IntersectBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TKey> second, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Intersect<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Intersect<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[1].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[0].Element;Argument[4].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[1].Element;Argument[3].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[1].Element;Argument[4].Parameter[1];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Join<TOuter,TInner,TKey,TResult>;(System.Collections.Generic.IEnumerable<TOuter>,System.Collections.Generic.IEnumerable<TInner>,System.Func<TOuter,TKey>,System.Func<TInner,TKey>,System.Func<TOuter,TInner,TResult>);;Argument[4].ReturnValue;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? LastOrDefault<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue;value;tb-generated
|
||||
public static TSource LastOrDefault<TSource>(this IEnumerable<TSource> source, TSource defaultValue) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;LastOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? LastOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// Summary will not be correctly derivable based on type information (same problem as for FirstOrDefault)
|
||||
// public static TSource LastOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate, TSource defaultValue) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Last<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource Last<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Last<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Last<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource Last<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;LongCount<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
public static long LongCount<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;MaxBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;MaxBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? MaxBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Max<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? Max<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Max<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Decimal>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
public static decimal Max<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Max<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Max<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[1].ReturnValue;ReturnValue;value;tb-generated
|
||||
public static TResult? Max<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;MinBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;MinBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? MinBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Min<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? Min<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Min<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Min<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[1].ReturnValue;ReturnValue;value;tb-generated
|
||||
public static TResult? Min<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) { throw null; }
|
||||
|
||||
// These summaries will not be derivable based on type information.
|
||||
// public static IEnumerable<TResult> OfType<TResult>(this IEnumerable source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;OrderByDescending<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;OrderByDescending<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IOrderedEnumerable<TSource> OrderByDescending<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;OrderBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;OrderBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Prepend<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Prepend<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Prepend<TSource>(this IEnumerable<TSource> source, TSource element) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Repeat<TResult>;(TResult,System.Int32);;Argument[0];ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TResult> Repeat<TResult>(TResult element, int count) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Reverse<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Reverse<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TResult>>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TResult>>);;Argument[1].ReturnValue.Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TResult> SelectMany<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TResult>> selector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TCollection,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TCollection>>,System.Func<TSource,TCollection,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TCollection,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TCollection>>,System.Func<TSource,TCollection,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TCollection,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TCollection>>,System.Func<TSource,TCollection,TResult>);;Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SelectMany<TSource,TCollection,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Collections.Generic.IEnumerable<TCollection>>,System.Func<TSource,TCollection,TResult>);;Argument[2].ReturnValue;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TResult> SelectMany<TSource, TCollection, TResult>(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Select<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Select<TSource,TResult>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TResult>);;Argument[1].ReturnValue;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) { throw null; }
|
||||
|
||||
public static bool SequenceEqual<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? SingleOrDefault<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,TSource);;Argument[1];ReturnValue;value;tb-generated
|
||||
public static TSource SingleOrDefault<TSource>(this IEnumerable<TSource> source, TSource defaultValue) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SingleOrDefault<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource? SingleOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// Summary will not be correctly derivable based on type information (same problem as for FirstOrDefault)
|
||||
// public static TSource SingleOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate, TSource defaultValue) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Single<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource Single<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Single<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Single<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue;value;tb-generated
|
||||
public static TSource Single<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SkipLast<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> SkipLast<TSource>(this IEnumerable<TSource> source, int count) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SkipWhile<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;SkipWhile<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> SkipWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Skip<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Skip<TSource>(this IEnumerable<TSource> source, int count) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;TakeLast<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> TakeLast<TSource>(this IEnumerable<TSource> source, int count) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;TakeWhile<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;TakeWhile<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> TakeWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Take<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Int32);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source, int count) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;ThenByDescending<TSource,TKey>;(Summaries.IOrderedEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;ThenByDescending<TSource,TKey>;(Summaries.IOrderedEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IOrderedEnumerable<TSource> ThenByDescending<TSource, TKey>(this IOrderedEnumerable<TSource> source, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;ThenBy<TSource,TKey>;(Summaries.IOrderedEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;ThenBy<TSource,TKey>;(Summaries.IOrderedEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IOrderedEnumerable<TSource> ThenBy<TSource, TKey>(this IOrderedEnumerable<TSource> source, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// Missing summary for Argument[0].Element -> ReturnValue.Element (issue with generator)
|
||||
// public static TSource[] ToArray<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
// Summaries related to dictionaries is not generated correctly as dictionaries are not identified as collections of keys and values (issue with generator).
|
||||
// public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) where TKey : notnull { throw null; }
|
||||
// public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector) where TKey : notnull { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;ToHashSet<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static HashSet<TSource> ToHashSet<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;ToList<TSource>;(System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static List<TSource> ToList<TSource>(this IEnumerable<TSource> source) { throw null; }
|
||||
|
||||
// Type to complicated to be handled by the generator (issue with generator).
|
||||
// public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) { throw null; }
|
||||
// public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;UnionBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;UnionBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;UnionBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[1].Element;Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;UnionBy<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>);;Argument[1].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> UnionBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TSource> second, Func<TSource, TKey> keySelector) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Union<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Union<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Generic.IEnumerable<TSource>);;Argument[1].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Where<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;Argument[1].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Where<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,System.Boolean>);;Argument[0].Element;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { throw null; }
|
||||
|
||||
// Type to complicated to be handled by the generator (issue with generator).
|
||||
// public static IEnumerable<(TFirst First, TSecond Second)> Zip<TFirst, TSecond>(this IEnumerable<TFirst> first, IEnumerable<TSecond> second) { throw null; }
|
||||
// public static IEnumerable<(TFirst First, TSecond Second, TThird Third)> Zip<TFirst, TSecond, TThird>(this IEnumerable<TFirst> first, IEnumerable<TSecond> second, IEnumerable<TThird> third) { throw null; }
|
||||
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Zip<TFirst,TSecond,TResult>;(System.Collections.Generic.IEnumerable<TFirst>,System.Collections.Generic.IEnumerable<TSecond>,System.Func<TFirst,TSecond,TResult>);;Argument[0].Element;Argument[2].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Zip<TFirst,TSecond,TResult>;(System.Collections.Generic.IEnumerable<TFirst>,System.Collections.Generic.IEnumerable<TSecond>,System.Func<TFirst,TSecond,TResult>);;Argument[1].Element;Argument[2].Parameter[1];value;tb-generated
|
||||
// summary=Summaries;SystemLinqEnumerable;false;Zip<TFirst,TSecond,TResult>;(System.Collections.Generic.IEnumerable<TFirst>,System.Collections.Generic.IEnumerable<TSecond>,System.Func<TFirst,TSecond,TResult>);;Argument[2].ReturnValue;ReturnValue.Element;value;tb-generated
|
||||
public static IEnumerable<TResult> Zip<TFirst, TSecond, TResult>(this IEnumerable<TFirst> first, IEnumerable<TSecond> second, Func<TFirst, TSecond, TResult> resultSelector) { throw null; }
|
||||
}
|
||||
|
||||
public interface IGrouping<out TKey, out TElement> : IEnumerable<TElement>, IEnumerable {
|
||||
public interface IGrouping<out TKey, out TElement> : IEnumerable<TElement>, IEnumerable
|
||||
{
|
||||
// summary=Summaries;IGrouping<TKey,TElement>;true;get_Key;();;Argument[this].SyntheticField[ArgType0];ReturnValue;value;tb-generated
|
||||
TKey Key { get; }
|
||||
}
|
||||
|
||||
@@ -195,7 +438,10 @@ public interface IGrouping<out TKey, out TElement> : IEnumerable<TElement>, IEnu
|
||||
// bool Contains(TKey key);
|
||||
// }
|
||||
|
||||
public interface IOrderedEnumerable<out TElement> : IEnumerable<TElement>, IEnumerable {
|
||||
public interface IOrderedEnumerable<out TElement> : IEnumerable<TElement>, IEnumerable
|
||||
{
|
||||
// summary=Summaries;IOrderedEnumerable<TElement>;true;CreateOrderedEnumerable<TKey>;(System.Func<TElement,TKey>,System.Collections.Generic.IComparer<TKey>,System.Boolean);;Argument[this].Element;Argument[0].Parameter[0];value;tb-generated
|
||||
// summary=Summaries;IOrderedEnumerable<TElement>;true;CreateOrderedEnumerable<TKey>;(System.Func<TElement,TKey>,System.Collections.Generic.IComparer<TKey>,System.Boolean);;Argument[this].Element;ReturnValue.Element;value;tb-generated
|
||||
IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey>(Func<TElement, TKey> keySelector, IComparer<TKey>? comparer, bool descending);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,54 +1,5 @@
|
||||
import java as J
|
||||
|
||||
private signature module InlineMadTestLangSig {
|
||||
/**
|
||||
* A base class of callables for modeling.
|
||||
*/
|
||||
class Callable;
|
||||
|
||||
/**
|
||||
* Gets a relevant code comment for `c`, if any.
|
||||
*/
|
||||
string getComment(Callable c);
|
||||
}
|
||||
|
||||
private module InlineMadTestImpl<InlineMadTestLangSig Lang> {
|
||||
private class Callable = Lang::Callable;
|
||||
|
||||
signature module InlineMadTestConfigSig {
|
||||
/**
|
||||
* Gets the kind of a captured model.
|
||||
*/
|
||||
string getKind();
|
||||
|
||||
/**
|
||||
* Gets a captured model for `c`, if any.
|
||||
*/
|
||||
string getCapturedModel(Callable c);
|
||||
}
|
||||
|
||||
module InlineMadTest<InlineMadTestConfigSig Input> {
|
||||
private string expects(Callable c) {
|
||||
Lang::getComment(c).regexpCapture(" *(SPURIOUS-)?" + Input::getKind() + "=(.*)", 2) = result
|
||||
}
|
||||
|
||||
query predicate unexpectedModel(string msg) {
|
||||
exists(Callable c, string flow |
|
||||
flow = Input::getCapturedModel(c) and
|
||||
not flow = expects(c) and
|
||||
msg = "Unexpected " + Input::getKind() + " found: " + flow
|
||||
)
|
||||
}
|
||||
|
||||
query predicate expectedModel(string msg) {
|
||||
exists(Callable c, string e |
|
||||
e = expects(c) and
|
||||
not e = Input::getCapturedModel(c) and
|
||||
msg = "Expected " + Input::getKind() + " missing: " + e
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
private import java as J
|
||||
private import codeql.mad.test.InlineMadTest
|
||||
|
||||
private module InlineMadTestLang implements InlineMadTestLangSig {
|
||||
class Callable = J::Callable;
|
||||
|
||||
53
shared/mad/codeql/mad/test/InlineMadTest.qll
Normal file
53
shared/mad/codeql/mad/test/InlineMadTest.qll
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Provides some simple predicates for models as data related tests using
|
||||
* inline expectations (as comments in the source code).
|
||||
*/
|
||||
signature module InlineMadTestLangSig {
|
||||
/**
|
||||
* A base class of callables for modeling.
|
||||
*/
|
||||
class Callable;
|
||||
|
||||
/**
|
||||
* Gets a relevant code comment for `c`, if any.
|
||||
*/
|
||||
string getComment(Callable c);
|
||||
}
|
||||
|
||||
module InlineMadTestImpl<InlineMadTestLangSig Lang> {
|
||||
private class Callable = Lang::Callable;
|
||||
|
||||
signature module InlineMadTestConfigSig {
|
||||
/**
|
||||
* Gets a captured model for `c`, if any.
|
||||
*/
|
||||
string getCapturedModel(Callable c);
|
||||
|
||||
/**
|
||||
* Gets the kind of a captured model.
|
||||
*/
|
||||
string getKind();
|
||||
}
|
||||
|
||||
module InlineMadTest<InlineMadTestConfigSig Input> {
|
||||
private string expects(Callable c) {
|
||||
Lang::getComment(c).regexpCapture(" *(SPURIOUS-)?" + Input::getKind() + "=(.*)", 2) = result
|
||||
}
|
||||
|
||||
query predicate unexpectedModel(string msg) {
|
||||
exists(Callable c, string flow |
|
||||
flow = Input::getCapturedModel(c) and
|
||||
not flow = expects(c) and
|
||||
msg = "Unexpected " + Input::getKind() + " found: " + flow
|
||||
)
|
||||
}
|
||||
|
||||
query predicate expectedModel(string msg) {
|
||||
exists(Callable c, string e |
|
||||
e = expects(c) and
|
||||
not e = Input::getCapturedModel(c) and
|
||||
msg = "Expected " + Input::getKind() + " missing: " + e
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user