Ignoring alternative signature annotation if it has syntax errors.

This commit is contained in:
Evgeny Gerashchenko
2012-06-06 16:16:31 +04:00
parent 0d47bf5472
commit b1ba730ebb
@@ -1622,6 +1622,11 @@ 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);
List<PsiErrorElement> syntaxErrors = AnalyzingUtils.getSyntaxErrorRanges(altFunDeclaration);
if (!syntaxErrors.isEmpty()) {
// TODO report syntax error as diagnostic when method is used
}
else {
valueParameterDescriptors = AlternativeSignatureParsing valueParameterDescriptors = AlternativeSignatureParsing
.computeAlternativeValueParameters(valueParameterDescriptors, altFunDeclaration); .computeAlternativeValueParameters(valueParameterDescriptors, altFunDeclaration);
JetTypeReference returnTypeRef = altFunDeclaration.getReturnTypeRef(); JetTypeReference returnTypeRef = altFunDeclaration.getReturnTypeRef();
@@ -1630,6 +1635,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
} }
methodTypeParameters = AlternativeSignatureParsing.computeAlternativeTypeParameters(methodTypeParameters, altFunDeclaration); methodTypeParameters = AlternativeSignatureParsing.computeAlternativeTypeParameters(methodTypeParameters, altFunDeclaration);
} }
}
functionDescriptorImpl.initialize( functionDescriptorImpl.initialize(
valueParameterDescriptors.receiverType, valueParameterDescriptors.receiverType,