diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/JavaSingleAbstractMethodUtils.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/JavaSingleAbstractMethodUtils.java index 660043e94c6..22b92eca5b6 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/JavaSingleAbstractMethodUtils.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/JavaSingleAbstractMethodUtils.java @@ -195,7 +195,12 @@ public class JavaSingleAbstractMethodUtils { @NotNull SamConversionResolver samResolver, @NotNull SamConversionOracle samConversionOracle ) { - TypeParameters typeParameters = recreateAndInitializeTypeParameters(original.getTypeParameters(), adapter); + TypeParameters typeParameters; + if (adapter instanceof SamAdapterClassConstructorDescriptor) { + typeParameters = new TypeParameters(original.getTypeParameters(), TypeSubstitutor.EMPTY); + } else { + typeParameters = recreateAndInitializeTypeParameters(original.getTypeParameters(), adapter); + } KotlinType returnTypeUnsubstituted = original.getReturnType(); assert returnTypeUnsubstituted != null : "Creating SAM adapter for not initialized original: " + original; @@ -248,10 +253,6 @@ public class JavaSingleAbstractMethodUtils { @NotNull List originalParameters, @Nullable DeclarationDescriptor newOwner ) { - if (newOwner instanceof SamAdapterClassConstructorDescriptor) { - return new TypeParameters(originalParameters, TypeSubstitutor.EMPTY); - } - Map traitToFunTypeParameters = JavaResolverUtils.recreateTypeParametersAndReturnMapping(originalParameters, newOwner); TypeSubstitutor typeParametersSubstitutor = JavaResolverUtils.createSubstitutorForTypeParameters(traitToFunTypeParameters);