From 04223f5711fd6e356738e7559b169735e3e72e1d Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Thu, 9 Apr 2020 00:57:34 +0300 Subject: [PATCH] Extract Java specific check from common method out This is needed for further refactoring --- .../load/java/sam/JavaSingleAbstractMethodUtils.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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 660043e94c6c0..22b92eca5b66f 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 @@ private static SamAdapterDescriptor initSamAda @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 @@ private static TypeParameters recreateAndInitializeTypeParameters( @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);