@@ -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+
281352public abstract class BaseClassFlow
282353{
283354 // heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;df-generated
0 commit comments