From aef96e93cfb0a84419aac6d9dc01958f9f23c73d Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Fri, 30 Nov 2012 20:35:36 +0400 Subject: [PATCH] Using signature propagation only if function is owned by class. --- .../java/resolver/JavaFunctionResolver.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java index 40d312dd6e8..fb1c73aca45 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java @@ -142,15 +142,21 @@ public final class JavaFunctionResolver { final List signatureErrors = Lists.newArrayList(); - SignaturesPropagationData signaturesPropagationData = - new SignaturesPropagationData(returnType, valueParameterDescriptors, methodTypeParameters, method, trace); - List superFunctions = signaturesPropagationData.getSuperFunctions(); + List superFunctions; + if (ownerDescriptor instanceof ClassDescriptor) { + SignaturesPropagationData signaturesPropagationData = + new SignaturesPropagationData(returnType, valueParameterDescriptors, methodTypeParameters, method, trace); + superFunctions = signaturesPropagationData.getSuperFunctions(); - returnType = signaturesPropagationData.getModifiedReturnType(); - valueParameterDescriptors = signaturesPropagationData.getModifiedValueParameters(); - methodTypeParameters = signaturesPropagationData.getModifiedTypeParameters(); + returnType = signaturesPropagationData.getModifiedReturnType(); + valueParameterDescriptors = signaturesPropagationData.getModifiedValueParameters(); + methodTypeParameters = signaturesPropagationData.getModifiedTypeParameters(); - signatureErrors.addAll(signaturesPropagationData.getSignatureErrors()); + signatureErrors.addAll(signaturesPropagationData.getSignatureErrors()); + } + else { + superFunctions = Collections.emptyList(); + } // TODO consider better place for this check AlternativeMethodSignatureData alternativeMethodSignatureData =