Using signature propagation only if function is owned by class.

This commit is contained in:
Evgeny Gerashchenko
2012-11-30 20:35:36 +04:00
parent f220024308
commit aef96e93cf
@@ -142,15 +142,21 @@ public final class JavaFunctionResolver {
final List<String> signatureErrors = Lists.newArrayList(); final List<String> signatureErrors = Lists.newArrayList();
SignaturesPropagationData signaturesPropagationData = List<FunctionDescriptor> superFunctions;
new SignaturesPropagationData(returnType, valueParameterDescriptors, methodTypeParameters, method, trace); if (ownerDescriptor instanceof ClassDescriptor) {
List<FunctionDescriptor> superFunctions = signaturesPropagationData.getSuperFunctions(); SignaturesPropagationData signaturesPropagationData =
new SignaturesPropagationData(returnType, valueParameterDescriptors, methodTypeParameters, method, trace);
superFunctions = signaturesPropagationData.getSuperFunctions();
returnType = signaturesPropagationData.getModifiedReturnType(); returnType = signaturesPropagationData.getModifiedReturnType();
valueParameterDescriptors = signaturesPropagationData.getModifiedValueParameters(); valueParameterDescriptors = signaturesPropagationData.getModifiedValueParameters();
methodTypeParameters = signaturesPropagationData.getModifiedTypeParameters(); methodTypeParameters = signaturesPropagationData.getModifiedTypeParameters();
signatureErrors.addAll(signaturesPropagationData.getSignatureErrors()); signatureErrors.addAll(signaturesPropagationData.getSignatureErrors());
}
else {
superFunctions = Collections.emptyList();
}
// TODO consider better place for this check // TODO consider better place for this check
AlternativeMethodSignatureData alternativeMethodSignatureData = AlternativeMethodSignatureData alternativeMethodSignatureData =