public void setTypeParameterDescriptors(@NotNull List<TypeParameterDescriptor> typeParameters) { if (this.typeParameters != null) { throw new IllegalStateException("Type parameters are already set for " + getName()); } this.typeParameters = new ArrayList<TypeParameterDescriptor>(typeParameters); for (TypeParameterDescriptor typeParameterDescriptor : typeParameters) { scopeForSupertypeResolution.addTypeParameterDescriptor(typeParameterDescriptor); } scopeForSupertypeResolution.changeLockLevel(WritableScope.LockLevel.READING); }