void (@NotNull PyTypeParameterListOwner parameterListOwner, @NotNull PyFile file) { PyTypeParameter firstTypeParameter = parameterListOwner.getTypeParameterList().getTypeParameters().get(0); PyTypeParameter secondTypeParameter = parameterListOwner.getTypeParameterList().getTypeParameters().get(1); PyTypeParameter typeVarTupleTypeParameter = parameterListOwner.getTypeParameterList().getTypeParameters().get(2); PyTypeParameter paramSpecTypeParameter = parameterListOwner.getTypeParameterList().getTypeParameters().get(3); assertNotNull(firstTypeParameter); assertNotNull(secondTypeParameter); assertNotNull(typeVarTupleTypeParameter); assertNotNull(paramSpecTypeParameter); assertEquals("T", firstTypeParameter.getName()); assertEquals(PyTypeParameter.Kind.TypeVar, firstTypeParameter.getKind()); assertEquals("U", secondTypeParameter.getName()); assertEquals(PyTypeParameter.Kind.TypeVar, secondTypeParameter.getKind()); assertEquals("Ts", typeVarTupleTypeParameter.getName()); assertEquals(PyTypeParameter.Kind.TypeVarTuple, typeVarTupleTypeParameter.getKind()); assertEquals("P", paramSpecTypeParameter.getName()); assertEquals(PyTypeParameter.Kind.ParamSpec, paramSpecTypeParameter.getKind()); assertNull(firstTypeParameter.getBoundExpressionText()); assertEquals(secondTypeParameter.getBoundExpressionText(), "str"); assertNotParsed(file); }