Skip to content

Commit 62408d8

Browse files
committed
C#: Add some generic override modelgenerator test cases.
1 parent 2eb0158 commit 62408d8

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,77 @@ public void AddToGenericList<S>(List<S> input, S data)
278278
}
279279
}
280280

281+
public class GenericWithVirtual1<T>
282+
{
283+
// heuristic-summary=Models;GenericWithVirtual1<T>;true;ReturnParam;(T);;Argument[0];ReturnValue;value;df-generated
284+
// contentbased-summary=Models;GenericWithVirtual1<T>;true;ReturnParam;(T);;Argument[0];ReturnValue;value;dfc-generated
285+
public virtual T ReturnParam(T input)
286+
{
287+
return input;
288+
}
289+
290+
// Missing model. Should have been lifted.
291+
// SPURIOUS-neutral=Models;GenericWithVirtual1<T>;StubImplementation;(T);summary;df-generated
292+
public virtual T StubImplementation(T input)
293+
{
294+
throw null;
295+
}
296+
}
297+
298+
public class DerivedGenericWithVirtual : GenericWithVirtual1<string>
299+
{
300+
// SPURIOUS-heuristic-summary=Models;DerivedGenericWithVirtual;true;ReturnParam;(System.String);;Argument[0];ReturnValue;value;df-generated
301+
// SPURIOUS-contentbased-summary=Models;DerivedGenericWithVirtual;true;ReturnParam;(System.String);;Argument[0];ReturnValue;value;dfc-generated
302+
public override string ReturnParam(string input)
303+
{
304+
return input;
305+
}
306+
307+
// SPURIOUS-heuristic-summary=Models;DerivedGenericWithVirtual;true;StubImplementation;(System.String);;Argument[0];ReturnValue;value;df-generated
308+
// SPURIOUS-contentbased-summary=Models;DerivedGenericWithVirtual;true;StubImplementation;(System.String);;Argument[0];ReturnValue;value;dfc-generated
309+
public override string StubImplementation(string input)
310+
{
311+
return input;
312+
}
313+
}
314+
315+
public class GenericWithVirtual2<T>
316+
{
317+
// heuristic-summary=Models;GenericWithVirtual2<T>;true;ReturnParam;(T);;Argument[0];ReturnValue;value;df-generated
318+
// contentbased-summary=Models;GenericWithVirtual2<T>;true;ReturnParam;(T);;Argument[0];ReturnValue;value;dfc-generated
319+
public virtual T ReturnParam(T input)
320+
{
321+
return input;
322+
}
323+
324+
// Missing model. Should have been lifted.
325+
// SPURIOUS-neutral=Models;GenericWithVirtual2<T>;StubImplementation;(T);summary;df-generated
326+
327+
public virtual T StubImplementation(T input)
328+
{
329+
throw null;
330+
}
331+
}
332+
333+
public class NestedGenericWithVirtual<T> : GenericWithVirtual2<string> { }
334+
335+
public class DerivedNestedGenericWithVirtual : NestedGenericWithVirtual<int>
336+
{
337+
// SPURIOUS-heuristic-summary=Models;DerivedNestedGenericWithVirtual;true;ReturnParam;(System.String);;Argument[0];ReturnValue;value;df-generated
338+
// SPURIOUS-contentbased-summary=Models;DerivedNestedGenericWithVirtual;true;ReturnParam;(System.String);;Argument[0];ReturnValue;value;dfc-generated
339+
public override string ReturnParam(string input)
340+
{
341+
return input;
342+
}
343+
344+
// SPURIOUS-heuristic-summary=Models;DerivedNestedGenericWithVirtual;true;StubImplementation;(System.String);;Argument[0];ReturnValue;value;df-generated
345+
// SPURIOUS-contentbased-summary=Models;DerivedNestedGenericWithVirtual;true;StubImplementation;(System.String);;Argument[0];ReturnValue;value;dfc-generated
346+
public override string StubImplementation(string input)
347+
{
348+
return input;
349+
}
350+
}
351+
281352
public abstract class BaseClassFlow
282353
{
283354
// heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;df-generated

0 commit comments

Comments
 (0)