/// <summary>
 /// Verify all type parameters from the type
 /// are from that type or containing types.
 /// </summary>
 internal static void VerifyTypeParameters(NamedTypeSymbol type)
 {
     AssertEx.All(type.TypeParameters, typeParameter => type.IsContainingSymbolOfAllTypeParameters(typeParameter));
     AssertEx.All(type.TypeArguments, typeArgument => type.IsContainingSymbolOfAllTypeParameters(typeArgument));
     var container = type.ContainingType;
     if ((object)container != null)
     {
         VerifyTypeParameters(container);
     }
 }