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 ConstructorResolver constructorResolver = new ConstructorResolver(this);
|
||||||
private final CompileTimeConstResolver compileTimeConstResolver = new CompileTimeConstResolver(this);
|
private final CompileTimeConstResolver compileTimeConstResolver = new CompileTimeConstResolver(this);
|
||||||
private final AnnotationResolver annotationResolver = new AnnotationResolver(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);
|
public final NamespaceResolver namespaceResolver = new NamespaceResolver(this);
|
||||||
|
|
||||||
@Inject
|
@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) {
|
public static Modality resolveModality(PsiMemberWrapper memberWrapper, boolean isFinal) {
|
||||||
if (memberWrapper instanceof PsiMethodWrapper) {
|
if (memberWrapper instanceof PsiMethodWrapper) {
|
||||||
PsiMethodWrapper method = (PsiMethodWrapper) memberWrapper;
|
PsiMethodWrapper method = (PsiMethodWrapper) memberWrapper;
|
||||||
|
|||||||
+27
-1
@@ -100,7 +100,7 @@ public class FunctionResolver {
|
|||||||
|
|
||||||
JavaDescriptorResolver.ValueParameterDescriptors valueParameterDescriptors = javaDescriptorResolver
|
JavaDescriptorResolver.ValueParameterDescriptors valueParameterDescriptors = javaDescriptorResolver
|
||||||
.resolveParameterDescriptors(functionDescriptorImpl, method.getParameters(), methodTypeVariableResolver);
|
.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
|
// TODO consider better place for this check
|
||||||
AlternativeMethodSignatureData alternativeMethodSignatureData =
|
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(
|
public static Set<SimpleFunctionDescriptor> getFunctionsFromSupertypes(
|
||||||
JavaDescriptorResolveData.ResolverScopeData scopeData,
|
JavaDescriptorResolveData.ResolverScopeData scopeData,
|
||||||
Name methodName
|
Name methodName
|
||||||
|
|||||||
Reference in New Issue
Block a user