Ignoring alternative signature annotation if it has syntax errors.
This commit is contained in:
+12
-6
@@ -1622,13 +1622,19 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
String signature = method.getSignatureAnnotation().signature();
|
String signature = method.getSignatureAnnotation().signature();
|
||||||
if (!signature.isEmpty()) {
|
if (!signature.isEmpty()) {
|
||||||
JetNamedFunction altFunDeclaration = JetPsiFactory.createFunction(project, signature);
|
JetNamedFunction altFunDeclaration = JetPsiFactory.createFunction(project, signature);
|
||||||
valueParameterDescriptors = AlternativeSignatureParsing
|
List<PsiErrorElement> syntaxErrors = AnalyzingUtils.getSyntaxErrorRanges(altFunDeclaration);
|
||||||
.computeAlternativeValueParameters(valueParameterDescriptors, altFunDeclaration);
|
if (!syntaxErrors.isEmpty()) {
|
||||||
JetTypeReference returnTypeRef = altFunDeclaration.getReturnTypeRef();
|
// TODO report syntax error as diagnostic when method is used
|
||||||
if (returnTypeRef != null) {
|
}
|
||||||
returnType = AlternativeSignatureParsing.computeAlternativeTypeFromAnnotation(returnTypeRef.getTypeElement(), returnType);
|
else {
|
||||||
|
valueParameterDescriptors = AlternativeSignatureParsing
|
||||||
|
.computeAlternativeValueParameters(valueParameterDescriptors, altFunDeclaration);
|
||||||
|
JetTypeReference returnTypeRef = altFunDeclaration.getReturnTypeRef();
|
||||||
|
if (returnTypeRef != null) {
|
||||||
|
returnType = AlternativeSignatureParsing.computeAlternativeTypeFromAnnotation(returnTypeRef.getTypeElement(), returnType);
|
||||||
|
}
|
||||||
|
methodTypeParameters = AlternativeSignatureParsing.computeAlternativeTypeParameters(methodTypeParameters, altFunDeclaration);
|
||||||
}
|
}
|
||||||
methodTypeParameters = AlternativeSignatureParsing.computeAlternativeTypeParameters(methodTypeParameters, altFunDeclaration);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
functionDescriptorImpl.initialize(
|
functionDescriptorImpl.initialize(
|
||||||
|
|||||||
Reference in New Issue
Block a user