Move method from JavaDescriptorResolver to FunctionResolver
This commit is contained in:
+1
-26
@@ -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;
|
||||
|
||||
+27
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user