From 933a455f6cb88c08337133c926589e1081187a53 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 18 Mar 2013 16:50:19 +0400 Subject: [PATCH] Capable of changing owner. --- .../kotlinSignature/AlternativeMethodSignatureData.java | 2 +- .../java/kotlinSignature/SignaturesPropagationData.java | 2 +- .../lang/resolve/java/kotlinSignature/SignaturesUtil.java | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java index 42c2bf8bbb5..b54fd7b7593 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java @@ -70,7 +70,7 @@ public class AlternativeMethodSignatureData extends ElementAlternativeSignatureD Project project = method.getPsiMethod().getProject(); altFunDeclaration = JetPsiFactory.createFunction(project, signature); - originalToAltTypeParameters = SignaturesUtil.recreateTypeParametersAndReturnMapping(methodTypeParameters); + originalToAltTypeParameters = SignaturesUtil.recreateTypeParametersAndReturnMapping(methodTypeParameters, null); try { checkForSyntaxErrors(altFunDeclaration); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagationData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagationData.java index c8d2e5ea7b7..2d2b947acbb 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagationData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagationData.java @@ -71,7 +71,7 @@ public class SignaturesPropagationData { this.containingClass = containingClass; superFunctions = getSuperFunctionsForMethod(method, trace, containingClass); - autoTypeParameterToModified = SignaturesUtil.recreateTypeParametersAndReturnMapping(autoTypeParameters); + autoTypeParameterToModified = SignaturesUtil.recreateTypeParametersAndReturnMapping(autoTypeParameters, null); modifiedTypeParameters = modifyTypeParametersAccordingToSuperMethods(autoTypeParameters); modifiedReturnType = modifyReturnTypeAccordingToSuperMethods(autoReturnType); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesUtil.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesUtil.java index 63d50666898..9eb20713fcc 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesUtil.java @@ -18,6 +18,8 @@ package org.jetbrains.jet.lang.resolve.java.kotlinSignature; import com.google.common.collect.Maps; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl; import org.jetbrains.jet.lang.types.TypeConstructor; @@ -29,13 +31,14 @@ import java.util.Map; public class SignaturesUtil { public static Map recreateTypeParametersAndReturnMapping( - @NotNull List originalParameters + @NotNull List originalParameters, + @Nullable DeclarationDescriptor newOwner ) { Map result = Maps.newHashMap(); for (TypeParameterDescriptor typeParameter : originalParameters) { result.put(typeParameter, TypeParameterDescriptorImpl.createForFurtherModification( - typeParameter.getContainingDeclaration(), + newOwner == null ? typeParameter.getContainingDeclaration() : newOwner, typeParameter.getAnnotations(), typeParameter.isReified(), typeParameter.getVariance(),