The static dependency scanning of generic types needs to handle substituted base types. The following example should reproduce the problem:
using Mono.Linker.Tests.Cases.Expectations.Assertions;
namespace Mono.Linker.Tests.Cases.Basic
{
[Kept]
class GenericType
{
[Kept]
public static void Main()
{
var c = new C();
}
}
class A<T>
{
}
class B<T> : A<string>
{
}
class C : B<int>
{
}
}
The static dependency scanning of generic types needs to handle substituted base types. The following example should reproduce the problem: