public SignaturesPropagationData( @NotNull ClassDescriptor containingClass, @NotNull JetType autoReturnType, // type built by JavaTypeTransformer from Java signature and @NotNull // annotations @NotNull JavaDescriptorResolver.ValueParameterDescriptors autoValueParameters, // descriptors built by parameters resolver @NotNull List<TypeParameterDescriptor> autoTypeParameters, // descriptors built by signature resolver @NotNull PsiMethodWrapper method, @NotNull BindingTrace trace) { this.containingClass = containingClass; superFunctions = getSuperFunctionsForMethod(method, trace, containingClass); autoTypeParameterToModified = SignaturesUtil.recreateTypeParametersAndReturnMapping(autoTypeParameters); modifiedTypeParameters = modifyTypeParametersAccordingToSuperMethods(autoTypeParameters); modifiedReturnType = modifyReturnTypeAccordingToSuperMethods(autoReturnType); modifiedValueParameters = modifyValueParametersAccordingToSuperMethods(autoValueParameters); }