Compile and run the attached VB code.
The program is trying to compile the following VB code:
Class C1(Of Y)
Class C2(Of Z)
Inherits C1(Of Z)
Sub M1(Of A As New)()
Sub M2(Of B)()
Note that the resulting exception is talking about the type argument 'B' on TypeParameter1.C1`1[A], but A and B are method type parameters in class C3... the exception really does not make any sense.
I have also included 10 ways to make the code run, from the more logical ones (remove the constraint on A) to other weirder ones (comment out any of the 3 constructors, move any of the 2 methods to any of the other types, or even reorganize the code so that the emission is done in another order).