Move method from JavaDescriptorResolver to FunctionResolver

This commit is contained in:
Pavel V. Talanov
2012-10-06 19:54:12 +04:00
parent bf76fa665e
commit e3d631fb63
2 changed files with 28 additions and 27 deletions
@@ -107,7 +107,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
private final ConstructorResolver constructorResolver = new ConstructorResolver(this);
private final CompileTimeConstResolver compileTimeConstResolver = new CompileTimeConstResolver(this);
private final AnnotationResolver annotationResolver = new AnnotationResolver(this);
private final FunctionResolver functionResolver = new FunctionResolver(this);
public final FunctionResolver functionResolver = new FunctionResolver(this);
public final NamespaceResolver namespaceResolver = new NamespaceResolver(this);
@Inject
@@ -499,31 +499,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
}
}
public JetType makeReturnType(
PsiType returnType, PsiMethodWrapper method,
@NotNull TypeVariableResolver typeVariableResolver
) {
String returnTypeFromAnnotation = method.getJetMethod().returnType();
JetType transformedType;
if (returnTypeFromAnnotation.length() > 0) {
transformedType = semanticServices.getTypeTransformer().transformToType(returnTypeFromAnnotation, typeVariableResolver);
}
else {
transformedType = semanticServices.getTypeTransformer().transformToType(
returnType, JavaTypeTransformer.TypeUsage.MEMBER_SIGNATURE_COVARIANT, typeVariableResolver);
}
if (AnnotationResolver.findAnnotation(method.getPsiMethod(), JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().getFqName()) !=
null) {
return TypeUtils.makeNullableAsSpecified(transformedType, false);
}
else {
return transformedType;
}
}
public static Modality resolveModality(PsiMemberWrapper memberWrapper, boolean isFinal) {
if (memberWrapper instanceof PsiMethodWrapper) {
PsiMethodWrapper method = (PsiMethodWrapper) memberWrapper;
@@ -100,7 +100,7 @@ public class FunctionResolver {
JavaDescriptorResolver.ValueParameterDescriptors valueParameterDescriptors = javaDescriptorResolver
.resolveParameterDescriptors(functionDescriptorImpl, method.getParameters(), methodTypeVariableResolver);
JetType returnType = javaDescriptorResolver.makeReturnType(returnPsiType, method, methodTypeVariableResolver);
JetType returnType = makeReturnType(returnPsiType, method, methodTypeVariableResolver);
// TODO consider better place for this check
AlternativeMethodSignatureData alternativeMethodSignatureData =
@@ -208,6 +208,32 @@ public class FunctionResolver {
}
}
public JetType makeReturnType(
PsiType returnType, PsiMethodWrapper method,
@NotNull TypeVariableResolver typeVariableResolver
) {
String returnTypeFromAnnotation = method.getJetMethod().returnType();
JetType transformedType;
if (returnTypeFromAnnotation.length() > 0) {
transformedType = javaDescriptorResolver.getSemanticServices()
.getTypeTransformer().transformToType(returnTypeFromAnnotation, typeVariableResolver);
}
else {
transformedType = javaDescriptorResolver.getSemanticServices().getTypeTransformer().transformToType(
returnType, JavaTypeTransformer.TypeUsage.MEMBER_SIGNATURE_COVARIANT, typeVariableResolver);
}
if (AnnotationResolver.findAnnotation(method.getPsiMethod(), JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().getFqName()) !=
null) {
return TypeUtils.makeNullableAsSpecified(transformedType, false);
}
else {
return transformedType;
}
}
public static Set<SimpleFunctionDescriptor> getFunctionsFromSupertypes(
JavaDescriptorResolveData.ResolverScopeData scopeData,
Name methodName