Supported several load from Java errors per declaration.
This commit is contained in:
+2
-2
@@ -198,8 +198,8 @@ public final class JavaConstructorResolver {
|
||||
valueParameterDescriptors = alternativeMethodSignatureData.getValueParameters();
|
||||
}
|
||||
else if (alternativeMethodSignatureData.hasErrors()) {
|
||||
trace.record(BindingContext.LOAD_FROM_JAVA_SIGNATURE_ERROR, constructorDescriptor,
|
||||
alternativeMethodSignatureData.getError());
|
||||
trace.record(BindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS, constructorDescriptor,
|
||||
Collections.singletonList(alternativeMethodSignatureData.getError()));
|
||||
}
|
||||
|
||||
constructorDescriptor.initialize(classDescriptor.getTypeConstructor().getParameters(),
|
||||
|
||||
+8
-4
@@ -140,10 +140,12 @@ public final class JavaFunctionResolver {
|
||||
.resolveParameterDescriptors(functionDescriptorImpl, method.getParameters(), methodTypeVariableResolver);
|
||||
JetType returnType = makeReturnType(returnPsiType, method, methodTypeVariableResolver);
|
||||
|
||||
final List<String> signatureErrors = Lists.newArrayList();
|
||||
|
||||
returnType = SignaturesPropagation.modifyReturnTypeAccordingToSuperMethods(returnType, method, trace, new Function1<String, Void>() {
|
||||
@Override
|
||||
public Void invoke(String error) {
|
||||
trace.record(BindingContext.LOAD_FROM_JAVA_SIGNATURE_ERROR, functionDescriptorImpl, error);
|
||||
signatureErrors.add(error);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
@@ -157,8 +159,7 @@ public final class JavaFunctionResolver {
|
||||
methodTypeParameters = alternativeMethodSignatureData.getTypeParameters();
|
||||
}
|
||||
else if (alternativeMethodSignatureData.hasErrors()) {
|
||||
trace.record(BindingContext.LOAD_FROM_JAVA_SIGNATURE_ERROR, functionDescriptorImpl,
|
||||
alternativeMethodSignatureData.getError());
|
||||
signatureErrors.add(alternativeMethodSignatureData.getError());
|
||||
}
|
||||
|
||||
functionDescriptorImpl.initialize(
|
||||
@@ -184,7 +185,10 @@ public final class JavaFunctionResolver {
|
||||
throw new IllegalStateException("non-static method in subclass");
|
||||
}
|
||||
|
||||
if (trace.get(BindingContext.LOAD_FROM_JAVA_SIGNATURE_ERROR, functionDescriptorImpl) == null) {
|
||||
if (!signatureErrors.isEmpty()) {
|
||||
trace.record(BindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS, functionDescriptorImpl, signatureErrors);
|
||||
}
|
||||
if (signatureErrors.isEmpty()) {
|
||||
List<FunctionDescriptor> superFunctions = SignaturesPropagation.getSuperFunctionsForMethod(method, trace);
|
||||
for (FunctionDescriptor superFunction : superFunctions) {
|
||||
TypeSubstitutor substitutor = SubstitutionUtils.buildDeepSubstitutor(((ClassDescriptor) ownerDescriptor).getDefaultType());
|
||||
|
||||
+2
-1
@@ -269,7 +269,8 @@ public final class JavaPropertyResolver {
|
||||
}
|
||||
}
|
||||
else {
|
||||
trace.record(BindingContext.LOAD_FROM_JAVA_SIGNATURE_ERROR, propertyDescriptor, signatureData.getError());
|
||||
trace.record(BindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS, propertyDescriptor,
|
||||
Collections.singletonList(signatureData.getError()));
|
||||
}
|
||||
return propertyType;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user